新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 3系列FPGA中使用LUT構建分布式RAM(4)

        3系列FPGA中使用LUT構建分布式RAM(4)

        作者: 時間:2017-10-13 來源:網絡 收藏

        前面講了分布式的方方面面,下面以_16S為例,分別給出其在VHDL和Verilog HDL下面的模板代碼(在ISE Project Navigator中選擇 Edit--- Language Templates,然后選擇VHDL 或者Verilog, 最后是Synthesis Templates --- ,在中也有具體調用過程的描述)。CORE Generator可以產生類似的代碼以供行為仿真使用,它們可以在ISE Project Navigator中雙擊.coe文件看到。

        本文引用地址:http://www.104case.com/article/201710/365632.htm

        VHDL Template Example
        --
        -- Module: RAM_16S
        --
        -- DescripTIon: VHDL instanTIaTIon template
        -- Distributed RAM
        -- Single Port 16 x 1
        -- Can also be used for RAM16X1S_1
        --
        -- Device: Spartan-3 Family
        --
        ---------------------------------------------------------------------
        --
        -- Components DeclaraTIons:
        --
        component RAM16X1S
        -- pragma translate_off
        generic (
        -- RAM initialization (“0” by default) for functional simulation:
        INIT : bit_vector := X0000
        );
        -- pragma translate_on
        port (
        D : in std_logic;
        WE : in std_logic;
        WCLK : in std_logic;
        A0 : in std_logic;
        A1 : in std_logic;
        A2 : in std_logic;
        A3 : in std_logic;
        O : out std_logic
        );
        end component;
        --
        ---------------------------------------------------------------------
        --
        -- Architecture section:
        --
        -- Attributes for RAM initialization (0 by default):
        attribute INIT: string;
        --
        attribute INIT of U_RAM16X1S: label is 0000;
        --
        -- Distributed RAM Instantiation
        U_RAM16X1S: RAM16X1S
        port map (
        D => , -- insert Data input signal
        WE => , -- insert Write Enable signal
        WCLK => , -- insert Write Clock signal
        A0 => , -- insert Address 0 signal
        A1 => , -- insert Address 1 signal
        A2 => , -- insert Address 2 signal
        A3 => , -- insert Address 3 signal
        O => -- insert Data output signal
        );
        --
        ---------------------------------------------------------------------
        R
        Verilog Template Example
        //
        // Module: RAM_16S
        //
        // Description: Verilog instantiation template
        // Distributed RAM
        // Single Port 16 x 1
        // Can also be used for RAM16X1S_1
        //
        // Device: Spartan-3 Family
        //
        //-------------------------------------------------------------------
        //
        // Syntax for Synopsys Express
        // synopsys translate_off
        defparam
        //RAM initialization (“0” by default) for functional simulation:
        U_RAM16X1S.INIT = 16h0000;
        // synopsys translate_on
        //Distributed RAM Instantiation
        RAM16X1S U_RAM16X1S (
        .D(), // insert input signal
        .WE(), // insert Write Enable signal
        .WCLK(), // insert Write Clock signal
        .A0(), // insert Address 0 signal
        .A1(), // insert Address 1 signal
        .A2(), // insert Address 2 signal
        .A3(), // insert Address 3 signal
        .O() // insert output signal
        );
        // synthesis attribute declarations
        /* synopsys attribute
        INIT 0000
        */

        CORE Generator產生分布式RAM、同步FIFO和異步FIFO的說明文檔可以分別在如下網址找到。
        ? CORE Generator: 分布式RAM模塊

        ? CORE Generator: 同步FIFO模塊

        ? CORE Generator: 異步FIFO模塊



        關鍵詞: FPGA LUT RAM

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 深圳市| 瑞安市| 云南省| 蓬安县| 阳西县| 临泉县| 呼伦贝尔市| 阳新县| 玉屏| 屏东市| 红安县| 黎平县| 拉萨市| 花莲市| 永和县| 兰考县| 确山县| 榆林市| 深泽县| 绿春县| 道孚县| 株洲市| 呼玛县| 香河县| 尼玛县| 鄱阳县| 北宁市| 洛川县| 武城县| 辽阳市| 犍为县| 崇礼县| 潜江市| 新闻| 全南县| 大荔县| 新源县| 正阳县| 聊城市| 嘉祥县| 平度市|