FPGA攻略之Testbench篇
Testbench,就是測試平臺的意思,具體概念就多不介紹了,相信略懂FPGA的人都知道,編寫Testbench的主要目的是為了對使用硬件描述語言(HDL)設計的電路進行仿真驗證,測試設計電路的功能、部分性能是否與預期的目標相符。初學者往往把寫RTL代碼當成重點,不愿寫Testbench,包括小朱同學也是,僅僅使用QuartusII自帶的仿真產生幾個激勵,然后觀察一下最后輸出的波形就完事了,甚至某些時候直接忽視仿真,拿單片機在線調試那一套來對付FPGA,直接把代碼下載到板子里看效果,若與預期不符,再修改代碼,再次下載到板子,如此反復,直到某一天實在玩不下去了。
本文引用地址:http://www.eepw.com.cn/article/184677.htm同志們,FPGA真不帶這么玩的!趕緊禁止自己使用QuartusII自帶的仿真,甭畫波形圖了,你畫成大師也沒用(也成不了大師,QuartusII只能做極初級的仿真)!如果你立志從事FPGA行業(yè),那么會寫Testbench才你的敲門磚,而且別想著去公司寫RTL代碼了,向毛主席保證,公司一定是讓你來寫Testbench的。再趕緊把你的FPGA開發(fā)板有多遠扔多遠(別丟,還是要用的),FPGA不是單片機,學習FPGA并不那么需要開發(fā)板。打個比方,學習FPGA是兩萬五千里長征,那么使用開發(fā)板連三千里都占不到,遠遠不到。對于FPGA,仿真驗證才是核心,這么講吧,驗證占到整個設計工作的70%,前仿真、后仿真、功能仿真、時序仿真、行為級仿真、RTL級仿真、綜合后仿真、門級仿真、布局布線后仿真……好吧,別暈,本篇只講Testbench,Modelsim仿真咱們下篇再討論。
一個最基本的Testbench包含三個部分,信號定義、模塊接口和功能代碼。借用一下特權同學總結的編寫Testbench的三個基本步驟:
1、對被測試設計的頂層接口進行例化; 2、給被測試設計的輸入接口添加激勵; 3、判斷被測試設計的輸出相應是否滿足設計要求。
逐步解決編寫Testbench的這三點:
首先“對被測試設計的頂層接口進行例化”,這一步相對比較簡單,例化就是,但端口多時也夠喝一壺的,而且要分wire、reg,有時會弄錯,別難過,其實可以偷個懶,通過Quartus II自動生成一個Testbench的模板,選擇Processing -> Start -> Start Test Bench Template Writer,等待完成后打開剛才生成的Testbench,默認是保存在simulation\Modelsim文件夾下的.vt格式文件。這一步就不多講了,偷懶就挺好。
其次“給被測試設計的輸入接口添加激勵”,一般時序設計必然涉及到最基本的兩個信號——clk、rst_n(時鐘、復位),肯定有童鞋會講可以沒有rst_n,是可以沒有,但何必呢,讓代碼更健壯一點不很好嘛,別鉆牛角尖。下面攻克clk、rst_n的寫法:
首先先講一下timescale,因為想要進行仿真首先要規(guī)定時間單位,而且最好在Testbench里面統一規(guī)定時間單位,而不要在工程代碼里定義,因為不同的模塊如果時間單位不同可能會為仿真帶來一些問題,而timescale本身對綜合也就是實際電路沒有影響。 `timescale 1ns/ 1ps表示仿真的單位時間為1ns,精度為1ps。
clk大體上有三種寫法 :
上述三種代碼的目的就是產生系統時鐘,給clk一個初值后,不斷重復執(zhí)行:每10ns翻轉一次clk,從而生成一個周期為20ns,頻率50MHz的方波信號。第一、二種基本類似,第三種比較簡單,少了一個initial,放在了always里初始化。
三種方法都無一例外地給clk賦了初值,因為信號的缺省值為Z,如果不賦初值,則反相后還是Z,時鐘就一直處于高阻Z狀態(tài)。小朱同學一般選中第一種,看個人喜歡。
根據復位方式的不同,rst_n一般有兩種寫法:
您可能也感興趣:
今日熱點
為您推薦
8家險企股權被掛牌轉讓,為何險企股權不再被追捧?
深圳最低工資標準調整為2360元/月 失業(yè)保險金為2124元/月
遼寧實施失業(yè)保險省級統籌 對缺口核定等作出詳細規(guī)定
更多
- 蕪湖釋放創(chuàng)新“N次方”效應 數字賦能驅動產業(yè)升級
- 重慶:激發(fā)人才創(chuàng)新活力,到2025年創(chuàng)新要素活躍度顯著增強
- 西寧加快知識產權強市建設步伐 去年兌現資助資金200萬元
- 無錫錫山區(qū)全面啟動實施“雙招雙引” 引進高端創(chuàng)新資源
- 重慶巴南區(qū)落實創(chuàng)新驅動發(fā)展戰(zhàn)略 以科技創(chuàng)新引領五大產業(yè)集...
- 朝陽北票經開區(qū)加快推進數字經濟發(fā)展 推動體制機制創(chuàng)新
- 湖北省先進低碳冶金產業(yè)技術創(chuàng)新聯合體組建 打造五千億級產...
- 重慶渝北將優(yōu)化創(chuàng)新生態(tài)環(huán)境 培育打造一批引領型的科創(chuàng)載體
排行
最近更新
- 蕪湖釋放創(chuàng)新“N次方”效應 數字賦能驅動產業(yè)升級
- 去年快遞服務全程時限水平有較大提升 干線運輸時限縮短
- 住建部:推動長江經濟帶高質量發(fā)展,打造區(qū)域協調發(fā)展新樣板
- 江蘇發(fā)布重大項目清單 增資擴產項目明顯增多
- 山東抓投資抓項目 新興領域投資規(guī)模持續(xù)擴大
- Gucci在2月將投放 10 個“SuperGucci”NFT
- 美國銀行:美國CBDC將保持美元作為世界儲備貨幣的地位
- 美股三大指數尾盤集體轉漲
- 光伏發(fā)電概念股有哪些?光伏發(fā)電概念龍頭股一覽
- The new iPad屏幕對比評測
- 電源接通延時器
- 汽車電子穩(wěn)定系統(ESP)詳解
- 聯想B520一體機拆解
- 焦炭相關股票有哪些?焦炭概念股票龍頭一覽
- 增強信號 3G無線上網卡改裝拆解全攻略
- 盤點全球五大智能手機生產商 華為聯想入圍
- 三星新平板 Galaxy Note 10.1全拆解
- 智能監(jiān)控防盜報警系統
- 格力電器未來三年股東回報規(guī)劃:每年累計分紅不低于當年凈利潤50%
- 消息稱京東科技計劃2022年在港IPO,募資10億至20億美元
- 恒大集團:呼吁境外債權人不采取任何激進的法律行動
- 海航董事長劉璐因個人原因辭職,在海航已近28年
- 青青稞酒預計2021年營收增長30%-40%,四季度凈虧損超1500萬
- 2022年在港上市募資10億美元?京東科技:不予置評
- 財政部修訂出臺《財政行政處罰聽證實施辦法》
- 賣房子需要交什么稅?賣房子必須攜帶哪些證件?
- 醫(yī)保卡的使用范圍有哪些?補牙可以使用醫(yī)保報銷嗎?
- 小產權房能過戶嗎?購買小產權房有什么風險?
- 奕東電子的實際控制人是誰?奕東電子股票上市了嗎?
- 百合股份是一家什么公司?百合股份的股票何時上市?