FPGA之激勵文件(testbench)的簡單分析

今天忙了下論文的事,差點忘記發文……,開始對上次發的激勵文件作一個簡單的分析。
直接上圖開始一行行的講解其做用:

第1行是仿真的一個時間刻度,「/」前面的1ns表明的是時間單位,後面的1ns是時間精度,不少時候在使用工具生成模塊的代碼時,出現的是1ns/1ps,而我喜歡把1ps的精度改爲1ns進行,由於這樣能夠經過把精度下降從而將數據量下降,主要是以前有幾回作設計的時候,跑仿真就由於精度弄得過高了,而後數據量佔了幾十個G的空間,並且還相對費時,而本身根本不須要過高的精度,只是爲了作個設計的驗證,固然,若是之後要是遇到了須要高精度的設計,仍是不要亂改,儘可能根據本身須要來進行設置。

第3行是該模塊的名字,tb_adder,我習慣在激勵文件前面加上tb進行區分測試與被測試的模塊文件,激勵文件的模塊中不須要有輸入輸出的端口,只須要有相似第4行和第5行這樣的變量鏈接到須要的測試的模塊就能夠。微信

reg類型的寄存器一般是用來看成被測試模塊的輸入,能夠改變該類型的寄存的值,wire類型的用來鏈接被測試模塊的輸出,定義完被測試模塊所需的變量,就能夠開始對系統進行賦值。工具

第7行的initial是一個初始化的操做,咱們正常使用的FPGA都是並行操做,而這個語句是屬於串行的,而且只會運行一次,而後能夠看到接下來幾行都是對加法器的加數和被加數作初值,第10行和後面的幾行,有一個#10,這個就是至關於延遲了10個時間單位,而這個時間單位就是第一行設定的那個1ns,第17行的$stop表明開了run以後,會在這個時刻有一箇中止的響應,若是還想繼續運行仿真,就須要繼續點擊run;弄完這些固然不要忘記加個end表明初始化的完成。測試

第20行到26行都屬於咱們本身編輯的加法器模塊的例化,adder是加法器模塊的名字,adder_inst是例化的名字,能夠隨便取,根據本身的習慣進行名字的設置,而後在括號裏面的,好比「.num1(numa)」,「.num1」是對加法器模塊的端口進行例化,「(numa)」是將激勵文件產生的數據接入加法器模塊中進行測試;完成例化後,加一個endmodule表明模塊的結束。
  

閱讀本文共使用    spa

🔥更多精彩等你發現🔥
.net

長按識別二維碼關注電子狂人設計

本文分享自微信公衆號 - 電子狂人(DZKR666)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。orm

相關文章
相關標籤/搜索