<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 設計應用 > 編寫(xiě)高效的測試設計(testbenches)

編寫(xiě)高效的測試設計(testbenches)

作者: 時(shí)間:2008-06-26 來(lái)源:電子開(kāi)發(fā)網(wǎng) 收藏

  簡(jiǎn)介:

本文引用地址:http://dyxdggzs.com/article/84843.htm

  由于設計的規模越來(lái)越大和越來(lái)越復雜,數字設計的驗證已經(jīng)成為一個(gè)日益困難和繁瑣的事。面對挑戰,驗證工程師們依靠許多的驗證工具和方法。對于大的系統,如幾百萬(wàn)門(mén)的設計,工程師們一般使用一套可靠的驗證工具。當然,對于一些小的設計,設計工程師常常發(fā)現帶有的hdl仿真器就可以做得很好。

  設計已經(jīng)成為一個(gè)驗證高級語(yǔ)言設計 (High-Level Language) 的標準方法。

  典型的,設計完成以下任務(wù):

  實(shí)現測試設計;

  仿真通過(guò)使用模塊的測試向量來(lái)仿真測試設計;

  輸出結果到終端或波形窗口以檢視;

  可選擇的將實(shí)際結果和預期結果進(jìn)行比較。

  一般測試設計使用工業(yè)標準的VHDL或verilog硬件描述語(yǔ)言來(lái)編寫(xiě)。測試設計調用功能設計,然后仿真。復雜的測試設計完成一些附加的功能----如它們包含邏輯來(lái)為設計決定適當的設計激勵或比較實(shí)際結果和預期結果。

  后續的章節說(shuō)明了一個(gè)非常穩定的測試設計的結構,并且提供了一個(gè)自較驗測例子----它將自動(dòng)比較實(shí)際結果和測試設計的預期結果。

  圖1說(shuō)明一個(gè)基于以上基本要求的標準的hdl驗證流程。由于測試設計使用VHDL或verilogHDL來(lái)描述,測試設計的驗證過(guò)程可以在不同的平臺或不同公司的軟件工具環(huán)境完成。另外,由于VHDL或verilogHDL是公開(kāi)的通用標準語(yǔ)言,使用VHDL或verilogHDL來(lái)描述驗證設計可以毫無(wú)困難的在將來(lái)重用。

圖1使用測試設計的HDL測試驗證流程

  構建測試設計:

  測試設計可以用VHDL或verilogHDL來(lái)描述.因為測試設計只用來(lái)進(jìn)行仿真,它們沒(méi)有那些適應綜合中僅應用的rtl語(yǔ)言子集的語(yǔ)法約束的限制.而是所有的行為結構都可以使用。從而測試設計可以編寫(xiě)的更為通用,使得它們可以更容易維護。

  所有的測試設計包含了如表1的基本程序段塊。正如上面所提到的,測試設計一般包含更多的附加功能,如在終端上可視的結果和內建的錯誤檢測。

測試設計的基本程序段

  下面的例子說(shuō)明經(jīng)常使用的測試設計的結構。

  產(chǎn)生時(shí)鐘信號

  使用系統時(shí)鐘來(lái)的時(shí)序邏輯設計必須產(chǎn)生時(shí)鐘。重復的時(shí)鐘信號可以很容易的在vhdl或verilog源碼中實(shí)現。以下是vhdl和verilog的時(shí)鐘發(fā)生示例。

   VHDL:

  -- Declare a clock period constant.

  Constant ClockPeriod : TIME := 10 ns;

  -- Clock Generation method 1:

  Clock <= not Clock after ClockPeriod / 2;

  -- Clock Generation method 2:

  GENERATE CLOCK: process

  begin

  wait for (ClockPeriod / 2)

  Clock <= ’1’;

  wait for (ClockPeriod / 2)

  Clock <= ’0’;

  end process;

  
Verilog:

  // Declare a clock period constant.

  Parameter ClockPeriod = 10;

  // Clock Generation method 1:

  initial begin

  forever Clock = #(ClockPeriod / 2) ~ Clock;

  end

  // Clock Generation method 2:

  initial begin

  always #(ClockPeriod / 2) Clock = ~Clock;

  end

  準備激勵信號

  為了獲得測試設計的驗證結果,激勵必須在測試設計中提供。在測試設計中使用的并行激勵塊提供必要的激勵。兩個(gè)方法被考慮:絕對時(shí)間激勵和相對時(shí)間激勵。在第一個(gè)方法里,仿真變量被詳細描述為相對于仿真時(shí)間零點(diǎn)。通過(guò)比較,相對時(shí)間激勵提供初始值,然后在重觸發(fā)激勵前等待一個(gè)事件。根據設計者的需要,兩種方法可以在測試設計中組合使用。

表2 絕對時(shí)間激勵

  表2和表3分別以vhdl和verilog提供了一個(gè)絕對時(shí)間激勵和相對時(shí)間激勵的源代碼。

表3 相對時(shí)間激勵


上一頁(yè) 1 2 3 4 下一頁(yè)

關(guān)鍵詞: 測試 HLL

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>