哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FPGA驗(yàn)證簡介之FPGA開發(fā)分析一個(gè)testbench

電子工程師 ? 來源:CSDN技術(shù)社區(qū) ? 作者:aaaaatiger ? 2021-04-11 10:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

很多FPGA/IC開發(fā)工具都提供設(shè)計(jì)例子,方便使用者學(xué)習(xí)和練習(xí),例如,Xilinx ISE提供了很多設(shè)計(jì)實(shí)例,放在ISE5.X的安裝目錄下的ISEexamples目錄下,例如CDMA匹配濾波器、Johnson計(jì)數(shù)器、PN碼發(fā)生器、頻率計(jì)等,這些例子是經(jīng)驗(yàn)豐富的工程師寫的,我們可以學(xué)到編程思想、代碼風(fēng)格等方面的知識和經(jīng)驗(yàn),這些東西可能從學(xué)校老師或一般書籍都學(xué)習(xí)不到。

如果你用的不是Xilinx的FPGA,也就是說不使用ISE,那也沒關(guān)系,HDL代碼和testbench的設(shè)計(jì)思想和方法是一樣的,你照樣可以從中學(xué)到很多東西。下面以其中一個(gè)例子――同步FIFO為例,分析一下我們的第一個(gè)testbench,設(shè)計(jì)的源代碼可以在ISEexamples目錄下找到,Xilinx還提供了Application Note詳細(xì)介紹了該FIFO的細(xì)節(jié),

1.511x8同步FIFO功能簡介

為了對這個(gè)511x8同步FIFO進(jìn)行功能驗(yàn)證,首先要清楚它的功能,只有這樣才能知道需要驗(yàn)證什么功能,以及如何進(jìn)行驗(yàn)證,圖1為該同步FIFO的原理框圖。

與異步FIFO相比,同步FIFO的讀、寫時(shí)鐘是同一個(gè)時(shí)鐘,簡化了FIFO的設(shè)計(jì),Empty和Full標(biāo)志的產(chǎn)生也比較容易,同步FIFO內(nèi)部使用二進(jìn)制計(jì)數(shù)器記錄讀地址和寫地址。在異步FIFO中,由于讀寫使用不同的時(shí)鐘,也就是說設(shè)計(jì)存在兩個(gè)時(shí)鐘域,為了減少出現(xiàn)亞穩(wěn)態(tài)時(shí)產(chǎn)生的錯(cuò)誤,記錄讀寫地址的計(jì)數(shù)器要使用格雷碼,Empty和Full標(biāo)志的產(chǎn)生也比較復(fù)雜。511x8同步FIFO(以下簡稱FIFO)的工作時(shí)序如圖2所示。

o4YBAGByZPuATShbAAFdQ1wC_ZQ738.png

讀FIFO數(shù)據(jù)時(shí),首先read_allow信號置高,時(shí)鐘上升沿到來時(shí)read_addr地址處的數(shù)據(jù)將出現(xiàn)在read_data處,同時(shí)read_addr加1。讓read_allow信號持續(xù)為高可以完成burst read操作。如果讀出的數(shù)據(jù)是FIFO的最后一個(gè)數(shù)據(jù),那么讀操作完成后Empty信號變高。Empty信號為高時(shí)讀出來的數(shù)據(jù)是無效的。

寫FIFO數(shù)據(jù)時(shí),首先write_allow信號置高,同時(shí)準(zhǔn)備好輸入數(shù)據(jù)write_data,時(shí)鐘上升沿到來時(shí),數(shù)據(jù)將寫入write_addr所指向的地址中,同時(shí)write_addr加1。讓write_allow信號持續(xù)為高可以完成burst write操作。如果某一個(gè)時(shí)鐘上升沿時(shí)寫入第511個(gè)數(shù),那么下一個(gè)時(shí)鐘沿到來的時(shí)候Full信號變高,表示FIFO已經(jīng)寫滿。

我們再詳細(xì)分析FIFO的工作時(shí)序圖。在圖2中,開始時(shí)FIFO的讀寫指針均為0,Empty為高表示FIFO處于空的狀態(tài),然后write_allow置高,時(shí)鐘上升沿到來時(shí)寫入第一個(gè)數(shù)據(jù),Empty變低;一個(gè)CLK之后,read_allow置高,時(shí)鐘上升沿到來時(shí),讀出數(shù)據(jù),由于是最后一個(gè)數(shù)據(jù),所以Empty信號又變?yōu)橛行Вǜ唠娖剑T跁r(shí)序圖的右半部分,寫入509個(gè)數(shù)據(jù)之后,再寫入兩個(gè)數(shù)據(jù),F(xiàn)ull信號變?yōu)橛行В硎綟IFO為滿。

這個(gè)FIFO還有一個(gè)名為fifo_count_out的輸出,從4’b0000~4’b1111,分別表示FIFO滿的程度從不足1/16到15/16,為某些應(yīng)用提供方便。

2.驗(yàn)證

清楚FIFO的功能之后,我們就可以開始驗(yàn)證工作了。驗(yàn)證工作的第一步是整理出FIFO需要驗(yàn)證的功能點(diǎn),這些功能點(diǎn)一般直接來源于FIFO應(yīng)該具有的功能,或者來源于它的使用方法。FIFO需要驗(yàn)證的功能點(diǎn)包括:

1)FIFO復(fù)位后,read_addr和write_addr為0,F(xiàn)ull為0,Empty為1。

2)讀FIFO數(shù)據(jù)時(shí),read_allow信號必須置高,時(shí)鐘上升沿到來時(shí)read_addr地址處的數(shù)據(jù)將出現(xiàn)在read_data處,同時(shí)read_addr加1。

3)讀出FIFO的最后一個(gè)數(shù)據(jù)后,Empty信號變高。

4)寫FIFO數(shù)據(jù)時(shí),write_allow信號必須置高,時(shí)鐘上升沿到來時(shí),輸入數(shù)據(jù)write_data將寫入write_addr所指向的地址中,同時(shí)write_addr加1。

5)如果某一個(gè)時(shí)鐘上升沿時(shí)寫入第511個(gè)數(shù),那么下一個(gè)時(shí)鐘沿到來的時(shí)候Full信號變高,表示FIFO已經(jīng)寫滿。

6)fifo_count_out端能正確的指示FIFO滿的程度。

分析Xilinx提供的testbench可以為我們編寫自己的testbench提供很好的參考。FIFO的RTL代碼和testbench代碼放在ISEexamplesfifo_ver_131和fifo_vhd_131下。以verilog代碼為例,fifo_ver_131中包括了兩個(gè)testbench文件,一個(gè)是功能仿真testbench文件fifoctlr_cc_tb.tf,另一個(gè)是時(shí)序仿真(后仿真)testbench文件fifoctlr_cc_tb_timing.tf,這里我們主要分析功能仿真文件,為了方便大家理解,以下(下一帖)為注釋過的功能仿真testbench。大家看testbench的代碼時(shí),對照FIFO需要驗(yàn)證的功能點(diǎn),檢查是不是所有功能點(diǎn)都經(jīng)過了驗(yàn)證。

FIFO的testbench主要包括初始化、驗(yàn)證initial塊、讀寫task等內(nèi)容,初始化部分主要完成復(fù)位信號、CLK信號等的初始化工作,讀寫task把讀寫、delay等操作模塊化,方便使用。這里主要介紹一下驗(yàn)證initial塊,也可以說是驗(yàn)證的主程序,如下所示。

initial begin

delay; //保證驗(yàn)證環(huán)境正確復(fù)位

writeburst128; //寫入512個(gè)數(shù),F(xiàn)ull信號應(yīng)該在寫入511個(gè)數(shù)后變高

writeburst128;

writeburst128;

writeburst128;

read_enable = 1; //讀出一個(gè)數(shù),F(xiàn)ull信號應(yīng)該變低

writeburst128; //同時(shí)讀寫,檢查FIFO操作是否正確

read_enable = 0; //讀操作結(jié)束

endwriteburst; //寫操作結(jié)束

delay;

readburst128; //連續(xù)讀512次,Empty信號應(yīng)在讀出511個(gè)數(shù)后變高

readburst128;

readburst128;

readburst128;

endreadburst;

end

這段程序首先延遲5個(gè)時(shí)鐘周期,等初始化完成之后再開始驗(yàn)證工作。驗(yàn)證時(shí),首先寫入512個(gè)數(shù),使用波形觀察器可以檢查寫入的過程是否正確,以及Full信號在寫入511個(gè)數(shù)后是否變高;然后read_enable = 1,讀出一個(gè)數(shù),F(xiàn)ull信號應(yīng)該變低,這樣寫操作和Full信號的驗(yàn)證就基本完成了;程序接著也啟動了寫操作,由于此時(shí)read_enable仍然為高,即讀寫同時(shí)進(jìn)行,這是對實(shí)際情況的模擬,可以對FIFO的功能進(jìn)行更嚴(yán)格的驗(yàn)證;最后,連續(xù)讀FIFO 512次,用波形觀察器檢查讀操作是否正確,Empty信號是否在讀出511個(gè)數(shù)后變高,如果這些操作都是正確的,那么FIFO的功能就基本正確了。

需要注意的一點(diǎn)是,以上的程序是不可綜合的,因?yàn)椴皇荝TL級描述,而是行為級描述(Behavioral Description)。行為級描述的特點(diǎn)是直接描述對象的功能,具有比較高的抽象層次,開發(fā)、運(yùn)行速度都比RTL代碼要快,因此testbench都是用行為級描述寫的。關(guān)于行為級描述的特點(diǎn)、寫法以后將有專門的章節(jié)論述。

這個(gè)testbench的特點(diǎn)是,輸入激勵(lì)由testbench產(chǎn)生,輸出響應(yīng)的檢查人工完成,這樣的testbench編寫相對容易,可以加快開發(fā)速度,作為開發(fā)人員自己驗(yàn)證是非常好的選擇。有些testbench能完成輸入激勵(lì)和輸出檢查,不用觀察波形也能完成驗(yàn)證工作,這樣的testbench具有更高的自動化程度,使用方便,可重復(fù)性好,當(dāng)設(shè)計(jì)比較復(fù)雜而且團(tuán)隊(duì)中有專門的驗(yàn)證工程師時(shí),一般會有驗(yàn)證工程師建立一套這樣的testbench,用于驗(yàn)證開發(fā)工程師的RTL級代碼,如果發(fā)現(xiàn)問題,開發(fā)工程師修改后在testbench再運(yùn)行一次所花的時(shí)間非常少,開發(fā)復(fù)雜項(xiàng)目時(shí)這樣做可以比用波形觀察器節(jié)省很多時(shí)間。

3.總結(jié)

驗(yàn)證一般要通過寫testbench實(shí)現(xiàn),testbench要完成向DUT施加激勵(lì)和檢查DUT相應(yīng)是否正確的功能,這就要求我們非常清楚待驗(yàn)證模塊(DUT)的功能,這樣才知道需要驗(yàn)證什么、如何施加激勵(lì)和如何檢查響應(yīng)是否正確。寫testbench時(shí), 首先要列出需要驗(yàn)證的功能,讓后再編寫testbench,這樣可以做到有的放矢,避免遺漏。

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • IC
    IC
    +關(guān)注

    關(guān)注

    36

    文章

    6459

    瀏覽量

    186256
  • fifo
    +關(guān)注

    關(guān)注

    3

    文章

    407

    瀏覽量

    45886
  • CLK
    CLK
    +關(guān)注

    關(guān)注

    0

    文章

    132

    瀏覽量

    18093

原文標(biāo)題:FPGA開發(fā)分析一個(gè)testbench

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    從網(wǎng)絡(luò)接口到 DMA,套面向工程師的 FPGA 網(wǎng)絡(luò)開發(fā)框架

    Development Kit,是由 Liberouter 研究團(tuán)隊(duì)開發(fā)套框架,用于在 FPGA 加速卡上快速實(shí)現(xiàn)高性能網(wǎng)絡(luò)應(yīng)用。它并不是個(gè)
    的頭像 發(fā)表于 02-12 11:28 ?501次閱讀
    從網(wǎng)絡(luò)接口到 DMA,<b class='flag-5'>一</b>套面向工程師的 <b class='flag-5'>FPGA</b> 網(wǎng)絡(luò)<b class='flag-5'>開發(fā)</b>框架

    探索VITA 57.1 FMC擴(kuò)展卡:FPGA開發(fā)的得力助手

    探索VITA 57.1 FMC擴(kuò)展卡:FPGA開發(fā)的得力助手 在電子工程師的日常工作中,FPGA(現(xiàn)場可編程門陣列)開發(fā)
    的頭像 發(fā)表于 12-18 11:25 ?454次閱讀

    智多晶EDA工具HqFpga軟件的主要重大進(jìn)展

    圖、時(shí)序分析等。HQ支持Windows、Linux操作系統(tǒng)利用HQ設(shè)計(jì)套件,設(shè)計(jì)人員能夠?qū)崿F(xiàn)高效率的FPGA工程開發(fā)與調(diào)試驗(yàn)證
    的頭像 發(fā)表于 11-08 10:15 ?3968次閱讀
    智多晶EDA工具Hq<b class='flag-5'>Fpga</b>軟件的主要重大進(jìn)展

    【開源FPGA硬件】硬件黑客集結(jié):開源FPGA開發(fā)板測評活動全網(wǎng)火熱招募中......

    開源活動簡介 近期,小眼睛科技聯(lián)合紫光同創(chuàng)及電子發(fā)燒友發(fā)起了 # 擁抱開源!起來做FPGA開發(fā)板活動 ,活動經(jīng)發(fā)布,得到了很多開源愛好者
    發(fā)表于 10-29 11:37

    硬件黑客集結(jié):開源FPGA開發(fā)板測評活動全網(wǎng)火熱招募中......

    開源活動簡介近期,小眼睛科技聯(lián)合紫光同創(chuàng)及電子發(fā)燒友發(fā)起了#擁抱開源!起來做FPGA開發(fā)板活動,活動
    的頭像 發(fā)表于 10-29 08:05 ?830次閱讀
    硬件黑客集結(jié):開源<b class='flag-5'>FPGA</b><b class='flag-5'>開發(fā)</b>板測評活動全網(wǎng)火熱招募中......

    Pico2-ICE FPGA開發(fā)板的應(yīng)用示例

    FPGA 和 MCU 結(jié)合的開發(fā)板不多,而 Pico2?ICE 則把小巧、靈活和易上手完美結(jié)合。搭載 RP2350 雙核 RISC-V MCU + Lattice iCE40UP5K FPGA,配合官方 SDK,你可以
    的頭像 發(fā)表于 09-06 10:02 ?1286次閱讀
    Pico2-ICE <b class='flag-5'>FPGA</b><b class='flag-5'>開發(fā)</b>板的應(yīng)用示例

    是否需要買個(gè)fpga開發(fā)板?

    糾結(jié)要不要買個(gè) FPGA 開發(fā)板?真心建議搞塊,尤其是想在數(shù)字電路、嵌入式領(lǐng)域扎根的同學(xué),這玩意兒可不是可有可無的擺設(shè)。入門級的選擇不少,全新的像 Cyclone IV、Artix 7 系列,幾百塊就能拿下,要是去二手平臺淘淘
    的頭像 發(fā)表于 07-31 10:32 ?872次閱讀
    是否需要買<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b><b class='flag-5'>fpga</b><b class='flag-5'>開發(fā)</b>板?

    西門子桌面級原型驗(yàn)證系統(tǒng)Veloce proFPGA介紹

    Veloce proFPGA 平臺提供三類主板:Uno、Duo 和 Quad。這些主板支持輕松插入和混用不同類型的現(xiàn)場可編程門陣列 (FPGA) 模塊以及外圍存儲器和協(xié)議接口板。作為使用案例的
    的頭像 發(fā)表于 06-30 13:53 ?1964次閱讀

    開源FPGA硬件,核心開發(fā)者招募中......

    01背景簡介近期,小眼睛科技聯(lián)合紫光同創(chuàng)及電子發(fā)燒友發(fā)起了#擁抱開源!起來做FPGA開發(fā)板活動,活動經(jīng)發(fā)布,得到了很多開源愛好者的熱烈響
    的頭像 發(fā)表于 06-20 08:03 ?1256次閱讀
    開源<b class='flag-5'>FPGA</b>硬件,核心<b class='flag-5'>開發(fā)</b>者招募中......

    FPGA與高速ADC接口簡介

    本文介紹FPGA與高速ADC接口方式和標(biāo)準(zhǔn)以及JESD204與FPGA高速串行接口。
    的頭像 發(fā)表于 06-12 14:18 ?3383次閱讀
    <b class='flag-5'>FPGA</b>與高速ADC接口<b class='flag-5'>簡介</b>

    【干貨分享】:開源小巧的FPGA開發(fā)板——Icepi Zero

    “IcepiZero是款經(jīng)濟(jì)實(shí)惠的FPGA開發(fā)板,和樹莓派Zero樣的外形尺寸。它搭載LatticeECP525F,可在保持小巧便攜尺寸的同時(shí)實(shí)現(xiàn)強(qiáng)大的設(shè)計(jì)。它還具有
    的頭像 發(fā)表于 06-10 08:05 ?1692次閱讀
    【干貨分享】:開源小巧的<b class='flag-5'>FPGA</b><b class='flag-5'>開發(fā)</b>板——Icepi Zero

    FPGA調(diào)試方式VIO/ILA的使用

    在Vivado中,VIO(Virtual Input/Output)是種用于調(diào)試和測試FPGA設(shè)計(jì)的IP核,它允許設(shè)計(jì)者通過JTAG接口實(shí)時(shí)讀取和寫入FPGA內(nèi)部的寄存器,從而檢查設(shè)計(jì)的運(yùn)行狀態(tài)并修改其行為。VIO IP核提供
    的頭像 發(fā)表于 06-09 09:32 ?4316次閱讀
    <b class='flag-5'>FPGA</b>調(diào)試方式<b class='flag-5'>之</b>VIO/ILA的使用

    擁抱開源!起來做FPGA開發(fā)板啦!

    !起來做FPGA開發(fā)板啦! 2、第二步:點(diǎn)擊前往報(bào)名>報(bào)名入口 3、第三步:加小助手微信進(jìn)群,備注 開源FPGA 注:完成上面三個(gè)
    發(fā)表于 06-06 14:05

    FPGA EDA軟件的位流驗(yàn)證

    位流驗(yàn)證,對于芯片研發(fā)是個(gè)非常重要的測試手段,對于純軟件開發(fā)人員,最難理解的就是位流驗(yàn)證。在FPGA
    的頭像 發(fā)表于 04-25 09:42 ?2613次閱讀
    <b class='flag-5'>FPGA</b> EDA軟件的位流<b class='flag-5'>驗(yàn)證</b>

    FPGA開發(fā)任務(wù)

    還原成數(shù)據(jù)流,通過2.5Gbps網(wǎng)口轉(zhuǎn)發(fā)至目標(biāo)服務(wù)器。 3、FPGA PS編程 提供接口用于狀態(tài)監(jiān)控、串口配置等; 4、完成PCB板級調(diào)試驗(yàn)證 FPGA電路調(diào)試、代碼聯(lián)調(diào)等工作。 5、完成上下位機(jī)通訊聯(lián)調(diào)
    發(fā)表于 04-22 18:46
    瑞安市| 永兴县| 开远市| 黄陵县| 石渠县| 揭东县| 胶南市| 陈巴尔虎旗| 永丰县| 霍林郭勒市| 津南区| 乐业县| 会昌县| 融水| 雷波县| 永春县| 阿合奇县| 蒲江县| 临漳县| 北流市| 藁城市| 邛崃市| 平顺县| 海口市| 房山区| 邹平县| 建水县| 新绛县| 高密市| 临沧市| 南京市| 浦县| 论坛| 阜宁县| 平昌县| 两当县| 缙云县| 信宜市| 陕西省| 友谊县| 寿宁县|