亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種FPGA中BRAM36k的設(shè)計(jì)方法

        2014-02-26 09:41:44叢紅艷
        電子與封裝 2014年5期
        關(guān)鍵詞:信號(hào)用戶

        劉 瑛,胡 凱,叢紅艷,萬 清

        (中國電子科技集團(tuán)公司第58研究所,江蘇 無錫 214035)

        1 引言

        本文采用基于SMIC 40 nm工藝的Artisan Memory Compiler[1]軟件編譯產(chǎn)生BRAM 18 kB真正雙端口RAM來實(shí)現(xiàn)最高680 MHz的讀寫操作速度。根據(jù)電路的各項(xiàng)指標(biāo)要求,用Verilog硬件描述語言對(duì)其進(jìn)行RTL設(shè)計(jì)和仿真,來實(shí)現(xiàn)配置為18 k或者36 k的存儲(chǔ)器。

        BRAM36k最多可以存儲(chǔ)36 kB數(shù)據(jù),并且可以配置成兩個(gè)獨(dú)立的18 kB RAM或者一個(gè)36 kB RAM[2]。每個(gè)SRAM36k,作為RAM使用時(shí),可以配置成一個(gè)32k×1、16k×2、8k×4、4k×8(9)、2k×16(18)、1k×32(36);作為FIFO使用時(shí),可以配置成8k×4、4k×9(8)、2k×18(16)、1k×36(32)的FIFO。每個(gè)SRAM18k作為RAM使用時(shí),可以配置成一個(gè)16k×1、8k×2、4k×4、2k×8(9)、1k×16(18)存儲(chǔ)器。作為FIFO使用時(shí),可以配置成一個(gè)4k×4、2k×9(8)、1k×18(16)的FIFO。同時(shí)該模塊作為RAM使用時(shí),也支持同一個(gè)端口,但是讀寫位寬不一樣的模式。

        2 BRAM36k 內(nèi)部結(jié)構(gòu)與實(shí)現(xiàn)

        真雙口36 kB BRAM 雙端口存儲(chǔ)器由兩個(gè)獨(dú)立的18 kB RAM組成,其具體結(jié)構(gòu)內(nèi)部圖如圖1所示。

        其中FIFO_U0完成FIFO讀寫訪問控制功能,支持以兩塊SRAM18k作為一個(gè)RAM構(gòu)成的FIFO讀寫訪問,也支持以SRAM18k_U0作為RAM構(gòu)成的FIFO讀寫訪問。FIFO_U1只支持以SRAM18k_U1作為RAM構(gòu)成的FIFO讀寫訪問。SRAM18k_U0完成對(duì)SRAM18k_U0以及SRAM18k_U1讀寫訪問控制功能,SRAM18k_U1完成對(duì)SRAM18k_U1讀寫訪問控制功能。

        由于Memory Compiler編譯產(chǎn)生的SRAM18k存儲(chǔ)容量為18 kB,定義為SRAM_DP。利用其支持bit MASK寫操作,可以根據(jù)當(dāng)前的地址信息產(chǎn)生寫使能MASK信號(hào),這樣就可以只改變一個(gè)地址中某個(gè)或者某些bit內(nèi)容,對(duì)外體現(xiàn)為不同的地址深度和位寬組合模式。其具體的組合模式如表1所示。

        同時(shí),在讀操作時(shí),通過地址信號(hào)寄存一拍的信號(hào)來選擇SRAM_DP的讀數(shù)據(jù)中比特位置(表2)。

        另外當(dāng)兩塊SRAM18k級(jí)聯(lián)作為BRAM36k使用時(shí),由于支持同一個(gè)端口讀寫位寬不同,在合理的讀寫位寬組合下,當(dāng)讀位寬或者寫位寬為32 bit或36 bit時(shí),需要特別處理。

        例子1是以1k×32模式寫,以4k×8模式讀,此時(shí)兩塊SRAM18k寫模式為1k×16,讀模式為2k×8,此時(shí)用戶邏輯發(fā)出的寫地址和讀地址映射關(guān)系為:

        寫地址是X,則讀地址X<<2+[0,1,2,3]。

        當(dāng)寫入操作時(shí),32 bit數(shù)據(jù)需要同時(shí)寫入SRAM18k_U1和SRAM18k_U0,此時(shí)SRAM18k_U1和SRAM18k_U0的寫地址信號(hào)相同,如地址為X。當(dāng)進(jìn)行讀操作時(shí),需要以2k×8模式先讀SRAM18k_U0,要讀兩次,然后再以2k×8模式讀SRAM18k_U1,要讀兩次;這樣交替進(jìn)行完成32 bit全部讀出,此時(shí)讀出的數(shù)據(jù)按位拼接后是與寫數(shù)據(jù)相同的。其地址關(guān)系如圖2所示。

        例子2是以4k×8模式寫,以1k×32模式讀,此時(shí)兩塊SRAM18k寫模式為2k×8,讀模式為1k×16。此時(shí)用戶邏輯發(fā)出的讀地址和寫地址映射關(guān)系為:

        寫地址是X、X+1、X+2、X+3,則讀地址X>>2。X需要與32 bit地址對(duì)齊。

        當(dāng)寫入操作時(shí),8 bit數(shù)據(jù)需要根據(jù)寫地址關(guān)系,如果地址是X、X+1則寫入SRAM18k_U0,如果地址是X+2、X+3則寫入SRAM18k_U1。當(dāng)進(jìn)行讀操作時(shí),需要以1k×16模式同時(shí)讀SRAM18k_U0和SRAM18k_U1;此時(shí)讀出的數(shù)據(jù)按位拼接后是與寫數(shù)據(jù)相同的。

        進(jìn)行寫操作時(shí),需要以2 k×8模式先寫SRAM18k_U0,要寫兩次,然后再以2k×8模式寫SRAM18k_U1,要寫兩次;這樣交替進(jìn)行完成32 bit全部寫入,進(jìn)行讀操作,則以1k×16模式同時(shí)讀取SRAM18k_U1和SRAM18k_U0,讀地址信號(hào)相同,將兩段16 bit讀數(shù)據(jù)拼接起來,SRAM18k_U1讀數(shù)據(jù)放在高位,這樣就讀出了之前以4k×8模式寫入的數(shù)據(jù)。其地址關(guān)系如圖3所示。

        表2 讀訪問操作關(guān)系

        圖2 SRAM18k_U0/U1 地址對(duì)應(yīng)關(guān)系

        3 BRAM36k整體仿真與實(shí)現(xiàn)

        仿真1:BRAM36k A口作為1k×32模式寫入時(shí),驗(yàn)證功能正確。

        仿真條件:實(shí)現(xiàn)一個(gè)A口按1k×32模式,從初始地址0,以初始寫數(shù)據(jù)32’h9ECAB63D,寫數(shù)據(jù)遞增,批量寫入BRAM中。其中0地址寫入數(shù)據(jù)為32’h9ECAB63D,1地址寫入數(shù)據(jù)為32’h9ECAB63E,2地址寫入數(shù)據(jù)為32’h9ECAB63F,3地址寫入數(shù)據(jù)為32’h9ECAB640,…。

        圖4中GROUP14為Testbench中構(gòu)造的用戶邏輯驅(qū)動(dòng)輸入激勵(lì)以及用戶的讀數(shù)據(jù)輸出。{di_a_u1[15:0],di_a_u0[15:0]}構(gòu)成32 bit寫數(shù)據(jù),初始寫數(shù)據(jù)為32’h9ECAB63D,每次寫操作依次遞增,{do_a_u1[15:0],do_a_u0[15:0]}構(gòu)成32 bit讀數(shù)據(jù),en_a_u0信號(hào)為BRAM36k訪問的片選信號(hào),高有效;{we_a_u1[1:0],we_a_u0[1:0]}構(gòu)成32 bit寫數(shù)據(jù)的byte寫使能,高有效,全零則表示此次訪問為讀操作;addr_a_u0[13:0]在寫操作時(shí)為寫地址,在讀操作時(shí)為讀地址,初始值為0,每次寫操作或者讀操作后依次遞增。

        圖3 SRAM18k_U0/U1 地址對(duì)應(yīng)關(guān)系

        GROUP16為內(nèi)部SRAM18k_U1 A端口訪問的接口信號(hào),ENA表示RAM A端口片選使能,高有效;ADDRA表示A端口訪問地址,WENA為18 bit寫數(shù)據(jù)的MASK信息,當(dāng)某一位置bit為0,表示寫數(shù)據(jù)中對(duì)應(yīng)bit位置的數(shù)據(jù)需要寫入RAM中;DIA和DOA分別為寫數(shù)據(jù)和讀數(shù)據(jù),實(shí)際還有DIPA、DOPA圖中未畫出,用于承載18 bit高2 bit,用于用戶的奇偶校驗(yàn)bit輸入和輸出;GROUP15為內(nèi)部SRAM18k_U0 A端口訪問的接口信號(hào),信號(hào)含義同SRAM18k_U1。

        由仿真波形可見,當(dāng)BRAM36k作為1k×32模式寫入時(shí),此時(shí)32 bit的寫數(shù)據(jù)需要同時(shí)寫入SRAM18k_U1、SRAM18k_U0,兩塊RAM的訪問地址是相同的,但數(shù)據(jù)不同,兩塊RAM的WENA[15:0]為0,表示要將各自輸入的DIA[15:0]寫入RAM中。

        仿真2:當(dāng)BRAM作為4k×8模式讀出時(shí),驗(yàn)證功能正確性。

        仿真條件:A口按4k×8模式,從初始地址0,批量讀出BRAM36K中的數(shù)據(jù)。期望從0地址讀出數(shù)據(jù)為8’h3D,1地址讀出數(shù)據(jù)為8’hB6,2地址讀出數(shù)據(jù)為8’hCA,3地址讀出數(shù)據(jù)為8’h9E;從4地址讀出數(shù)據(jù)為8’h3E,5地址讀出數(shù)據(jù)為8’hB6,6地址讀出數(shù)據(jù)為8’hCA,7地址讀出數(shù)據(jù)為8’h9E;從8地址讀出數(shù)據(jù)為8’h3F,9地址讀出數(shù)據(jù)為8’hB6,10地址讀出數(shù)據(jù)為8’hCA,11地址讀出數(shù)據(jù)為8’h9E…。

        圖5中GROUP14為TESTBENCH中構(gòu)造的用戶邏輯驅(qū)動(dòng)輸入激勵(lì)以及用戶的讀數(shù)據(jù)輸出。{do_a_u1[15:0],do_a_u0[15:0]}構(gòu)成32 bit讀數(shù)據(jù),en_a_u0信號(hào)為BRAM36K訪問的片選信號(hào),高有效;{we_a_u1[1:0],we_a_u0[1:0]}構(gòu)成32 bit寫數(shù)據(jù)的byte寫使能,高有效,全零則表示此次訪問為讀操作;addr_a_u0[13:0]在寫操作時(shí)為寫地址,在讀操作時(shí)為讀地址,初始值為0,每次寫操作或者讀操作后依次遞增。

        GROUP16為內(nèi)部SRAM18k_U1 A端口訪問的接口信號(hào),ENA表示RAM A端口片選使能,高有效;ADDRA表示A端口訪問地址,WENA為18 bit寫數(shù)據(jù)的MASK信息,當(dāng)某一位置bit為0,表示寫數(shù)據(jù)中對(duì)應(yīng)bit位置的數(shù)據(jù)需要寫入RAM中,在讀操作時(shí),必須全部為1;讀數(shù)據(jù)在ENA有效后的后一拍輸出。DIA和DOA分別為寫數(shù)據(jù)和讀數(shù)據(jù),實(shí)際還有DIPA、DOPA圖中未畫出,用于承載18 bit高2 bit,用于用戶的奇偶校驗(yàn)bit輸入和輸出;GROUP15為內(nèi)部SRAM18k_U0 A端口訪問的接口信號(hào),信號(hào)含義同SRAM18k_U1。

        圖4 BRAM36k A口作為1k×32模式寫入仿真結(jié)果

        圖5 BRAM作為4k×8模式讀出時(shí)仿真結(jié)果

        由仿真波形可見,當(dāng)BRAM36k作為4k×8模式讀出時(shí),此時(shí)原來按32 bit的寫入0地址(1k×32模式的地址0)的數(shù)據(jù)需要通過四次讀0、1、2、3(4k×8模式的地址0、1、2、3)才能全部回讀回來。兩塊RAM的訪問是交替進(jìn)行,先讀SRAM18k U0的0、1地址,再讀SRAM18k U1的0、1地址。兩塊RAM的WENA為全1,表示此時(shí)進(jìn)行的是讀操作。

        仿真3:當(dāng)B口按4k×8模式寫入時(shí),驗(yàn)證功能正確性。

        仿真條件:B口按4k×8模式,從初始地址0,批量寫入數(shù)據(jù)。

        圖6中GROUP11為TESTBENCH中構(gòu)造的用戶邏輯驅(qū)動(dòng)輸入激勵(lì)以及用戶的讀數(shù)據(jù)輸出。di_b_u0[7:0]}構(gòu)成8 bit寫數(shù)據(jù),每次寫操作依次遞增,以初始寫數(shù)據(jù)8’hDF,實(shí)際有效的寫數(shù)據(jù)承載在di_b_u0[7:0]上,批量寫入BRAM中。0地址寫入數(shù)據(jù)為8’hDF,1地址寫入數(shù)據(jù)為8’hE0,2地址寫入數(shù)據(jù)為8’hE1,3地址寫入數(shù)據(jù)為8’hE2,…。{do_b_u1[15:0],do_b_u0[15:0]}構(gòu)成32 bit讀數(shù)據(jù),en_b_u0信號(hào)為BRAM36k B端口訪問的片選信號(hào),高有效;we_b_u0[0]構(gòu)成8 bit寫數(shù)據(jù)的byte寫使能,高有效,we_b_u0[0]為零則表示此次訪問為讀操作;addr_b_u0[13:0]在寫操作時(shí)為寫地址,在讀操作時(shí)為讀地址,初始值為0,每次寫操作或者讀操作后依次遞增。

        GROUP13為內(nèi)部SRAM18k_U1 B端口訪問的接口信號(hào),ENB表示RAM B端口片選使能,高有效;ADDRB表示B端口訪問地址,WENB為18 bit寫數(shù)據(jù)的MASK信息,當(dāng)某一位置bit為0,表示寫數(shù)據(jù)中對(duì)應(yīng)bit位置的數(shù)據(jù)需要寫入RAM中;DIB和DOB分別為寫數(shù)據(jù)和讀數(shù)據(jù),實(shí)際還有DIPB、DOPB圖中未畫出,用于承載18 bit高2 bit,用于用戶的奇偶校驗(yàn)bit輸入和輸出;GROUP12為內(nèi)部SRAM18k_U0 B端口訪問的接口信號(hào),信號(hào)含義同SRAM18k_U1。

        圖6 B口按4k×8模式寫入仿真結(jié)果

        由仿真波形可見,當(dāng)BRAM作為4k×8模式寫入時(shí),此時(shí)8 bit的寫數(shù)據(jù)需要根據(jù)寫地址是屬于X、X+1還是X+2、X+3,選擇寫入SRAM18k_U0還是SRAM18k_U1,其中X為32 bit地址對(duì)齊。WENB[17:0]為18’h3FF00表示寫入低8 bit,即是18 bit的[7:0],WENB[17:0]為18’h300FF表示寫入高8 bit,即是18 bit的[15:8]。

        仿真4:當(dāng)B口按1k×32模式讀出數(shù)據(jù)時(shí),驗(yàn)證功能正確性。

        仿真條件: B口按1k×32模式,從初始地址0,批量讀出BRAM中的數(shù)據(jù)。期望從0地址讀出數(shù)據(jù)為32’hE2E1E0DF,1地址讀出數(shù)據(jù)為32’hE6E5E4E3。

        圖7中GROUP11為testbench中構(gòu)造的用戶邏輯驅(qū)動(dòng)輸入激勵(lì)以及用戶的讀數(shù)據(jù)輸出。{do_b_u1[15:0],do_b_u0[15:0]}構(gòu)成32 bit讀數(shù)據(jù),en_b_u0信號(hào)為BRAM36K訪問的片選信號(hào),高有效;{we_b_u1[1:0],we_b_u0[1:0]}構(gòu)成32 bit寫數(shù)據(jù)的byte寫使能,高有效,全零則表示此次訪問為讀操作;addr_b_u0[13:0]在寫操作時(shí)為寫地址,在讀操作時(shí)為讀地址,初始值為0,每次寫操作或者讀操作后依次遞增。GROUP13為內(nèi)部SRAM18k_U1 B端口訪問的接口信號(hào),ENB表示RAM片選使能,高有效;ADDRB表示B端口訪問地址,WENB為18 bit寫數(shù)據(jù)的MASK信息,當(dāng)某一位置bit為0,表示寫數(shù)據(jù)中對(duì)應(yīng)bit位置的數(shù)據(jù)需要寫入RAM中,在讀操作時(shí),必須全部為1;讀數(shù)據(jù)在ENB有效后的后一拍輸出。DIB和DOB分別為寫數(shù)據(jù)和讀數(shù)據(jù),實(shí)際還有DIPB、DOPB圖中未畫出,用于承載18 bit高2 bit,用于用戶的奇偶校驗(yàn)bit輸入和輸出;GROUP12為內(nèi)部SRAM18k_U0 B端口訪問的接口信號(hào),信號(hào)含義同SRAM18k_U1。

        由仿真波形可見,當(dāng)BRAM作為1k×32模式讀出時(shí),此時(shí)原來按8 bit寫入0、1、2、3地址(4k×32模式的地址0、1、2、3)的數(shù)據(jù)只需要通過一次讀0地址(1k×32模式的地址0)就能全部回讀回來。兩塊RAM的訪問同時(shí)進(jìn)行,地址變化相同,兩塊RAM的WENB為全1,表示此時(shí)進(jìn)行的是讀操作。

        圖7 B口按1k×32模式讀出數(shù)據(jù)仿真結(jié)果

        [1] Xilinx Inc. Xapp(130). Virtex中塊狀SelectRAM+特性的使用[Z]. 2000-12-18.

        [2] 王睿,劉布民. FPGA中BRAM設(shè)計(jì)研究[D]. 2009.

        猜你喜歡
        信號(hào)用戶
        信號(hào)
        鴨綠江(2021年35期)2021-04-19 12:24:18
        完形填空二則
        孩子停止長個(gè)的信號(hào)
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        基于LabVIEW的力加載信號(hào)采集與PID控制
        一種基于極大似然估計(jì)的信號(hào)盲抽取算法
        Camera360:拍出5億用戶
        100萬用戶
        午夜亚洲精品一区二区| 国产日韩久久久精品影院首页 | 亚洲男人第一av网站| 国产精品天堂avav在线| 国语对白嫖老妇胖老太| 黑人巨大av在线播放无码| 久久乐国产精品亚洲综合| 一二三四在线视频社区3| 97超级碰碰碰久久久观看| 国产精品女同一区二区久| 一区二区三区免费自拍偷拍视频| 性感美女脱内裤无遮挡| 娇小女人被黑人插免费视频| 欧美 日韩 人妻 高清 中文| 国产精品永久免费| 国产成人综合色在线观看网站| 色拍拍在线精品视频| 亚洲无码毛片免费视频在线观看 | 曝光无码有码视频专区| 亚洲肥老熟妇四十五十路在线| 日中文字幕在线| 久久精品国产只有精品96| 日本一区二区三区综合视频| 中文字幕日韩有码在线| 亚洲av成人无码一二三在线观看 | 国产精品制服| 熟妇人妻中文字幕无码老熟妇| 久久久一本精品99久久| 日韩少妇人妻一区二区| 国产一区二区三区精品乱码不卡| 国产精品女同久久久久电影院| 色吊丝中文字幕| 免费大片黄在线观看| 久草视频华人在线观看| 国产91九色免费视频| 亚洲精品中文字幕一二三区| 成人亚洲精品777777| 亚洲欧美日韩一区二区三区在线| 国产精品国产自线拍免费| 美腿丝袜在线观看视频| 97精品超碰一区二区三区|