国产精品免费无遮挡无码永久视频-国产高潮视频在线观看-精品久久国产字幕高潮-国产精品99精品无码视亚

零基礎(chǔ)學(xué)FPGA(十七)Testbench 很重要,前仿真全過程筆記(上篇)

發(fā)布時間:2015-1-20 14:14    發(fā)布者:wp1981
作者:小墨同學(xué)

    剛剛做完了高頻實驗,說實話真是做的一頭霧水。還是那種感覺,真是沒什么用,所有人拿著早已經(jīng)復(fù)制好的電路圖,打開軟件運行一下,再跟助教說一聲做完了,隨便打個分就可以走人,而且還要寫一些無聊的實驗報告。算了,不吐槽了,我們來說說今天的教學(xué)內(nèi)容吧。

     上一篇文章我介紹了一下一片簡易CPU的設(shè)計,今天的課程我講仿真,也即前仿真。這次課程,小墨同學(xué)將和大家從建立工程開始,一步步梳理testbench的書寫過程,幫助大家對仿真有一個深刻的概念。以后在做項目時,不要動不動就把程序下到板子里調(diào)試,看問題不對再去改程序,再下到板子里調(diào)試,如此往返,會浪費大量的時間,簡單的項目還好,但是到了大型項目的話,是不可能有這么多時間讓我們這樣調(diào)的。因此,小墨同學(xué)在這里說,testbench很重要,做好了仿真,可以為我們節(jié)約大量的開發(fā)時間。

下面我們開始吧~

一、什么是testbench?

       從字面意思上來理解,testbench就是一個測試平臺,我們之前已經(jīng)設(shè)計好了我們需要的cpu模塊,我們怎么知道我們設(shè)計的對于不對呢?我們可以給其施加一個測試激勵,例如,給他送時鐘和復(fù)位信號,由于時鐘和復(fù)位信號是我們自定義的,因此我們可以產(chǎn)生任意頻率的時鐘信號和在任意時間給系統(tǒng)復(fù)位。

       當(dāng)然我們還可以觀察我們cpu的輸出,將我們想要觀察的輸出信號引出來甚至是反饋到cpu內(nèi)部,都可以,testbench沒有像RTL代碼設(shè)計那樣嚴謹,我們可以在符合語法規(guī)則的前提下,隨意編寫我們的測試文件,有些在RTL代碼中不可綜合的語句,我們可以在testbench中實現(xiàn)。



二、testbench的結(jié)構(gòu)

小墨同學(xué)認為testbench的結(jié)構(gòu)可以分為這幾個方面:
      1.要先對接口進行例化,即模塊之間的鏈接關(guān)系
      2.對我們的設(shè)計添加激勵
      3.觀察設(shè)計輸出是否符合要求

三、測試模塊設(shè)計

      要測試我們的cpu需要ROM和RAM模塊,這就需要我們先做好這兩個模塊



這里定義了一個 1024 x 8 的RAM



再定義一個8192  x 8 的ROM

ROM和RAM都還沒有裝入數(shù)據(jù),等會我們會調(diào)用函數(shù)給他們裝數(shù)據(jù)

接下來是地址譯碼器,來控制ROM和RAM的打開與關(guān)閉



各模塊建立好之后我們就開始仿真了

四、仿真

      這次教學(xué)我們用的是modelsim SE 10.0 版本進行教學(xué),以下是小墨同學(xué)習(xí)慣的仿真過程,因個人習(xí)慣不同,各位朋友可以按照你們 的方法來做

     我習(xí)慣直接先在quartus II中建一個.v文件將其保存在原來的工程文件目錄中,并命名為cpu_top.v,直接在這里寫測試代碼



下面大家可以跟著小墨的步驟一起做,來完成cpu 的仿真過程了

1.  首先,我們需要將我們剛寫好的那幾個模塊包含進去,即CPU模塊,ROM模塊,RAM模塊,地址譯碼器模塊,并寫好時間測量度,見下圖



2.定義頂層模塊

由于我們的設(shè)計只有兩個輸入,即時鐘模塊和復(fù)位模塊,凡是輸入信號在testbench中通一定義成reg型變量,凡是輸出或者雙向輸入輸出信號通一定義成wire型變量,我們的設(shè)計只有輸入沒有輸出,故只定義輸入和連線即可



下圖便是我們要組成的測試頂層模塊圖,我們定義的wire型變量,實際就是我們頂層模塊中,模塊模塊與模塊間的連線。而這些連線就是我們cpu的輸出,這樣我們就可以用我們的測試模塊來測試我們的cpu是否能正確工作



3. 元件例化
就是將各個模塊連接起來即可,這里就不做太多的說明了,因為以前都寫過很多次了



4.測試激勵的書寫

小墨同學(xué)習(xí)慣上上來先寫好時鐘產(chǎn)生模塊和復(fù)位模塊.并將復(fù)位模塊用task任務(wù)封裝,這樣我們在測試過程中就可以隨時調(diào)用復(fù)位任務(wù)進行復(fù)位

時鐘為50Mhz,復(fù)位時間為20ns



然后,我們再用task封裝我們需要的模塊,我們來想一下,上電后,CPU會從ROM中讀兩個時鐘周期的數(shù)據(jù)是吧,但是我們的ROM現(xiàn)在還是空的,所以我們需要一個任務(wù)是往ROM中裝入程序,給ROM中裝數(shù)據(jù)我們可以用系統(tǒng)函數(shù)$readmemb,即打開一個文件,并將其中的數(shù)據(jù)送到我們之前定義的ROM中去



而test1.pro文件時需要我們自己定義的,我們可以在quartusII中再新建一個.v文件,在里面寫上我們自己定義的程序,并將其保存為.pro文件即可,至于寫什么程序,是我們隨便定義的,大家可以參考我之前在上一篇文章中上傳的程序中,有一個test1.pro文件,打開之后可以看到是一些16位的數(shù)字碼,這些碼就是我們ROM的地址,從第一行開始,每8位數(shù)據(jù)位一個地址,注意我們每個地址的高三位是用下劃線隔開的,這表明前三位是指令碼,這三位會被狀態(tài)機進行譯碼,控制CPU執(zhí)行相應(yīng)的操作



裝完ROM和RAM的數(shù)據(jù)之后,按說就可以了進行波形仿真了,因為cpu是自動讀取數(shù)據(jù)的,下面我們先來做第一步仿真,我先把之后的代碼注釋掉,大家先看沒有被注釋掉的代碼



里面都是我們之前封裝好的函數(shù),剛開始進行復(fù)位,然后進行第一步測試,之后停止

將其保存之后,小墨同學(xué)習(xí)慣將cpu_top.v文件用modelsim打開,并默認為用其打開,打開后見下圖



然后,file——new——library——ok即建好一個庫



點擊左上角的編譯按鈕,將我們之前寫好的所有.v文件全部都編譯進去



看到transcript一欄顯示編譯成功后即可,若沒有transcript一欄,可以選擇菜單中的view——transcript即可,若顯示有紅色錯誤,那就請讀者按照它的要求進行修改代碼,這說明你的代碼有問題,一般是連接問題



編譯成功后,雙擊cpu_top就可以開始波形仿真了



進入仿真頁面后,我們右擊cpu模塊將其加入至波形



由于只能上傳20張照片,請大家看下一篇文章,小墨同學(xué)會給大家繼續(xù)講解

以后小墨同學(xué)的文章將北京至芯科技官方技術(shù)論壇更新,至芯科技的官方技術(shù)論壇也有很多的資料供大家下載,里面也有小墨的專題板塊,希望廣大網(wǎng)友和愛好者的大力支持~
http://www.fpgaw.com/
小墨同學(xué)專版網(wǎng)址
http://www.fpgaw.com/thread-78527-1-1.html
下面是至芯科技官方網(wǎng)站,夏宇聞教授和那里的老師都超好的~有意愿接受FPGA培訓(xùn)的可以找工作人員咨詢
http://www.zxopen.com/
       以后小墨同學(xué)的教程會跟這款開發(fā)板配套,想跟小墨同學(xué)一起學(xué)習(xí),一起進步的的可以考慮一下購買一塊開發(fā)板,畢竟學(xué)習(xí)要舍得投資嘛,下面是開發(fā)板淘寶鏈接
http://item.taobao.com/item.htm? ... ;abbucket=13#detail
本文地址:http://m.4huy16.com/thread-144867-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • Microchip第22屆中國技術(shù)精英年會上海首站開幕
  • “芯”光璀璨,鵬城共賞——2025 Microchip中國技術(shù)精英年會深圳站回顧
  • 技術(shù)熱潮席卷三城,2025 Microchip中國技術(shù)精英年會圓滿收官!
  • 電動兩輪車設(shè)計生態(tài)系統(tǒng)
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表