新聞中心

        EEPW首頁 > 嵌入式系統 > 牛人業話 > 零基礎學FPGA(十五)Testbenth 很重要,前仿真全過程筆記(上篇)

        零基礎學FPGA(十五)Testbenth 很重要,前仿真全過程筆記(上篇)

        —— 零基礎學FPGA(十七)Testbenth 很重要,前仿真全過程筆記(上篇)
        作者: 時間:2015-02-27 來源:網絡 收藏

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

        本文引用地址:http://www.104case.com/article/270154.htm

          下面我們開始吧~

          一、什么是testbench?

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

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

          

        360桌面截圖20141122115631.jpg

         

          二、testbench的結構

          小墨同學認為testbench的結構可以分為這幾個方面:

          1.要先對接口進行例化,即模塊之間的鏈接關系

          2.對我們的設計添加激勵

          3.觀察設計輸出是否符合要求

          三、測試模塊設計

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

          

        360桌面截圖20141122121423.jpg

         

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

          

        360桌面截圖20141122122057.jpg

         

          再定義一個8192 x 8 的ROM

          ROM和RAM都還沒有裝入數據,等會我們會調用函數給他們裝數據

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

          

        360桌面截圖20141122122622.jpg

         

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

          四、仿真

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

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

          

        360桌面截圖20141126133646.jpg

         

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

        fpga相關文章:fpga是什么



        上一頁 1 2 3 下一頁

        關鍵詞: FPGA Testbenth

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 浏阳市| 巴青县| 韩城市| 邻水| 晋宁县| 蓬莱市| 江山市| 厦门市| 北京市| 栾川县| 镶黄旗| 杭锦旗| 南昌市| 隆回县| 大关县| 惠州市| 龙山县| 潜山县| 宜昌市| 伊金霍洛旗| 博乐市| 德江县| 名山县| 开化县| 古交市| 毕节市| 通许县| 霍林郭勒市| 堆龙德庆县| 临夏县| 登封市| 清镇市| 阳高县| 连江县| 桃江县| 中西区| 尼勒克县| 开原市| 宁海县| 商水县| 玛多县|