国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

Qsys與uC/OS學習筆記2:系統仿真

發布時間:2016-1-29 10:24    發布者:designapp
關鍵詞: Qsys
  仿真FPGA設計過程中舉足輕重,在板級調試前若不好好花功夫做一些前期的驗證和測試工作,后期肯定要不斷的返工甚至推倒重來,這是FPGA設計的迭代特性所決定的。因此,在設計的前期做足了仿真測試工作,雖然不能完全避免后期問題和錯誤的發生,卻能夠大大減少后期調試和排錯的工作量。
  邏輯設計中需要做仿真,是因為邏輯設計大都是設計者原型開發的,不做仿真的話設計者肯定心里也沒底。而用Qsys搭建的系統多是由已經成熟驗證過的IP核組成的,還需要仿真否?這是個仁者見仁智者見智的問題,特權同學也無意深入其中不能自拔。過去用SOPC Builder時還確實想動手做做這類帶CPU的系統級仿真,只可惜倒騰半天不是缺這個就是少那個,大都無功而返。這回上了Qsys,而且ModelSim-Altera對于Quatus II的支持也是做得越來越“體貼”了,所以今個再做了一些嘗試,果然成功了,原廠把工具的使用做得越來越傻瓜便利的同時,工程師們從中大大獲益。
  如圖1所示,首先在Generations的Simulation選項中做好設置。
  


  圖1
  Simulation設置選項的具體含義如圖2所示。
  


  圖2
  因為都是用Verilog,所以simulation model和testbench simulation model我們都選擇Verilog,話說Altera其實主打的是Verilog語言,所以各種功能對Verilog的支持都是非常到位的,VHDL就不一定了。也用過Xilinx的東西,則正好相反。也不能談論孰優孰劣,也是習慣使然。
  Standard和Simple的模型主要差別在于后者只是簡單的在testbench里產生clock和reset信號,而前者則會對所有export信號產生激勵或引出便于監視觀察。
  確定完成Simulation的設置后就可以點擊左下角的Generate重新生成系統。
  系統生成完畢,到“工程目錄\myqsys\testbench\myqsys_tb\simulation”這個路徑下有測試腳本的頂層文件myqsys_tb.v,打開后代碼如下:
  `timescale 1 ps / 1 ps
  module myqsys_tb (
  );
  wire myqsys_inst_clk_bfm_clk_clk; // myqsys_inst_clk_bfm:clk -> [myqsys_inst:clk_clk, myqsys_inst_reset_bfm:clk]
  wire myqsys_inst_reset_bfm_reset_reset; // myqsys_inst_reset_bfm:reset -> myqsys_inst:reset_reset_n
  wire [7:0] myqsys_inst_led_pio_external_connection_export; // myqsys_inst:led_pio_external_connection_export -> myqsys_inst_led_pio_external_connection_bfm:sig_export
  myqsys myqsys_inst (
  .clk_clk (myqsys_inst_clk_bfm_clk_clk), // clk.clk
  .reset_reset_n (myqsys_inst_reset_bfm_reset_reset), // reset.reset_n
  .led_pio_external_connection_export (myqsys_inst_led_pio_external_connection_export) // led_pio_external_connection.export
  );
  altera_avalon_clock_source #(
  .CLOCK_RATE (50)
  ) myqsys_inst_clk_bfm (
  .clk (myqsys_inst_clk_bfm_clk_clk) // clk.clk
  );
  altera_avalon_reset_source #(
  .ASSERT_HIGH_RESET (0),
  .INITIAL_RESET_CYCLES (50)
  ) myqsys_inst_reset_bfm (
  .reset (myqsys_inst_reset_bfm_reset_reset), // reset.reset_n
  .clk (myqsys_inst_clk_bfm_clk_clk) // clk.clk
  );
  altera_conduit_bfm myqsys_inst_led_pio_external_connection_bfm (
  .sig_export (myqsys_inst_led_pio_external_connection_export) // conduit.export
  );
  endmodule
  該代碼中首先例化了被測試系統myqsys,將其3個export信號引出。然后分別針對這3個export信號產生相應的激勵和響應,即altera_avalon_clock_source用于產生clock,altera_avalon_reset_source用于產生reset信號,altera_conduit_bfm則用于觀察led_pio輸出。這三個模塊的詳細代碼都可以在同目錄的submodules子文件夾下找到。
  接下來,我們需要打開EDS中的軟件工程并對其進行仿真。我們接著使用上一個筆記中創建的countbinary_prj工程進行仿真,首先我們需要到BSP Editor里面去重新generate,因為Qsys有改動并重新生成了。接著修改其main函數如下:
  int main(void)
  {
  alt_u16 cnt;
  for(cnt=0;cnt


  圖3
  第一次運行通常會彈出如圖4所示的窗口,需要對仿真選項做一些配置。選擇選擇仿真的工程名(Project name)、仿真的elf可執行文件(Project ELF file name)、ModelSim軟件的安裝路徑(ModelSim path)和Qsys測試腳本封裝描述文件(Qsys Testbench Simulation Package Descriptor File name)存儲位置。設計好后點擊Run即啟動ModelSim進行仿真。
  


  圖4
  彈出ModelSim-Altera后,我們可以講頂層文件的3個export信號添加的Wave窗口中,然后Run起來,看看仿真時間有2-3秒后我們可以回放仿真波形(具體的時間需要看PC的狀況,特權同學的Pentium E5800跑了應該有半分多鐘),如圖5、圖6和圖7所示。
  如圖5,剛上電0ns開始,reset信號有一段時間的低脈沖,大約50個clk周期,正如我們的testbench中所設計的。
  


  圖5
  如圖6所示,在仿真進行到大約1.3s時刻,led_pio信號有一段變化的波形,初始0值在經過這段變化波形后最終變為255,這也是我們軟件代碼里面所設置的最終值。
  


  圖6
  再來看圖7,我們將led_pio的變化段波形放大,果然是我們軟件編程的遞增的值,一直從0遞增到255為止。
  


  圖7
  仿真的流程基本就是這樣,很easy,我們只要動動指尖就可以完成,當然了,如果要做很多個性化的細致的仿真驗證,那么在testbench里面我們倒是可以動些手腳,輸出結果也不光只是看看波形而已。
                               
                                                               
                               
               
本文地址:http://www.qingdxww.cn/thread-160518-1-1.html     【打印本頁】

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

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 四虎影院永久地址 | 日韩欧美亚洲另类 | 精品日韩一区二区三区视频 | 久久久这里只有精品加勒比 | 日韩一二区 | 国产亚洲欧洲 | 91华人在线 | 成人日韩| 日日碰狠狠添天天爽五月婷 | 国内一级特黄女人精品片 | 恐怖星球在线观看完整版免费 | 国产欧美国产精品第一区 | 美日韩一级| 99精品国产三级在线观看 | 国产福利一区二区麻豆 | 日韩在线观看不卡 | 青青青青久在线观看视频 | 久久国产精品99精品国产 | 99热福利 | 日韩欧美国产偷亚洲清高 | 四虎影视久久久免费 | 噜噜狠狠| 97在线免费观看视频 | 人人搞人人干 | 综合精品一区 | 色综合久久一区二区三区 | 国产日韩欧美在线观看不卡 | 日韩福利小视频 | 黄页免费在线观看 | 好吊日视频在线 | 亚洲一区欧美日韩 | 久久综合香蕉久久久久久久 | 五月网| 久久免费视频网 | 91网址免费入口 | 99久久99| 日韩欧美精品中文字幕 | 久久er| 91成人免费福利网站在线 | 91视频麻豆视频 | 国产真实伦对白在线播放 |