999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于FPGA的MIPS單周期處理器的實現

2021-09-27 00:53:24嚴海洲
電腦知識與技術 2021年19期

嚴海洲

摘要:在MIPS CPU設計原理的基礎上,通過Verilog硬件描述語言編程、使用Xilinx FPGA開發(fā)板的調試和仿真工具Vivado,實現基于FPGA的MIPS單周期處理器。最終下載到Nexys4-DDR平臺上,通過ChipScope工具抓取運行過程中產生的波形進行驗證。

關鍵詞:MIPS;硬件描述語言 ; Vivado ;單周期處理器

中圖分類號:TP311? ? ? 文獻標識碼:A

文章編號:1009-3044(2021)19-0005-04

本文旨在使讀者理解和掌握基于FPGA的MIPS單周期處理器的設計和實現。我們要在了解MIPS CPU設計原理的基礎上,掌握Verilog硬件描述語言編程、Xilinx FPGA開發(fā)板(Nexys4-DDR)的調試和仿真工具(Vivado? 2014.4)。過程大致分為用Vivado設計套件創(chuàng)建工程、編寫 Verilog 代碼、仿真測試和下載驗證等四部分。

1 用Vivado設計套件創(chuàng)建工程

1.1 關于Vivado設計套件

Vivado設計套件是FPGA廠商賽靈思Xilinx公司2012年發(fā)布的集成設計環(huán)境,以提升生產力、縮短產品上市時間、實現可編程系統(tǒng)集成等目標。Vivado設計套件可實現FPGA部分的設計和開發(fā),管腳和時序的約束,編譯和仿真,實現RTL 到比特流的設計流程。包括高度集成的設計環(huán)境和新一代從系統(tǒng)級到IC級的工具,全新的系統(tǒng)級設計的中心思想是基于知識產權(IP)核的設計,Vivado工具把各類可編程技術結合在一起,能夠擴展多達1億個等效ASIC門的設計。這些均建立在共享的可擴展數據模型和通用調試環(huán)境基礎上,可以讓用戶更快地實現設計收斂。

1.2 新工程的創(chuàng)建和設置

打開 Vivado設計套件(本文使用的是Vivado 2014.4)新建工程,輸入工程名和存儲路徑如圖1所示。然后選擇FPGA型號、綜合和仿真工具、推薦描述語言(Verilog)等配置如圖2所示。

1.3 添加Verilog 模塊

如圖3所示,右鍵點擊 Hierarchy 窗口,選擇 Add Copy of Source ,添加已有的Verilog模塊,例如 Register file,Sign Extend,Data Memory,Instruction Memory,ALU 模塊。并重新定義Top 層模塊和 Control。

2 編寫 Verilog 代碼

2.1 關于Verilog HDL

Verilog HDL(常簡稱為Verilog)是一種硬件描述語言,以文本形式來描述數字系統(tǒng)硬件的結構和行為的語言,用它可以表示邏輯電路圖、邏輯表達式,還可以表示數字邏輯系統(tǒng)所完成的邏輯功能。Verilog HDL和VHDL是目前業(yè)界最常用的兩種硬件描述語言,這兩種HDL均為IEEE標準。

2.2 MIPS 單周期處理器原理概要

單周期CPU是指一條指令在一個時鐘周期內執(zhí)行完畢,然后開始執(zhí)行下一條指令。時鐘周期一般也稱振蕩周期。 單周期處理器的設計,關鍵是確定數據路徑以及確定哪些操作需要時鐘,哪些不需要時鐘。例如對于 Data Memory 讀和寫就需要區(qū)別對待。將計算好的數據寫到 Data Memory 需要一個時鐘周期來完成。而讀 Memory 的操作,意味著將讀到的數據寫入到 Register file,如果讀 Memory 和寫 Register 都需要一個時鐘周期,那就無法實現單周期的處理器。所以 Data Memory寫操作采用時序邏輯,而讀操作采用組合邏輯,本文采用的就是這種方式。當然,還有其他方式來解決多周期修改成單周期,例如采用快慢兩個時鐘的方法等。

2.3 編輯 control 模塊和Top 層模塊

根據上述設計思路,編輯 control 模塊如圖4;編輯Top層模塊如圖5,將各個模塊互聯起來。

2.4 系統(tǒng)時鐘的設置

設計的系統(tǒng)時鐘暫定為 32MHz,外部時鐘是 100MHz,需要添加一個時鐘生成器進行分頻處理,得到32MHz。利用Core Generator來生成時鐘,右鍵選中 Hierarchy 窗口,選擇 New Source,左側框中選擇 IP,右側輸入文件名,如圖6所示。選擇 IP Core 類型,這里使用 Clocking Wizard,如圖7所示。然后配置 DCM 時鐘參數,在 Top 模塊中調用 Clk_gen 模塊。

3 仿真測試

整個處理器設計基本完成,接下來編輯 testbench 文件,進行行為級的仿真。

3.1 系統(tǒng)的初始化

1)初始化 data memory、instruction memory 和 register 三大存儲模塊,這里僅以初始化 instruction memory 為例說明,其他類推即可。該 memory 用于存儲二進制代碼,如圖8顯示。Verilog中調用了系統(tǒng)任務$readmemh,將Instruction文件中的數據讀入到InstMem數組中。

2)編寫Top層的testbench文件如圖9。右鍵選中Hierachy窗口,選擇new source,如圖10所示,定義 file name為Top_tb,在左側欄中選擇 Verilog Test Fixture,點擊 Next,選擇Top模塊,自動生成 Top_tb 測試文件。添加時鐘激勵,初始化其他輸入信號。

3.2 仿真與觀察

1)調用Vivado自帶的仿真工具進行仿真如圖11,雙擊 Simulate Behavioral Model。添加 register 模塊中的 regfile 寄存器數組到波形窗口,觀察各個寄存器的變化情況,如圖12所示。

主站蜘蛛池模板: 免费午夜无码18禁无码影院| AV无码无在线观看免费| 97青草最新免费精品视频| 国产第八页| 久久婷婷六月| 亚洲免费毛片| 最近最新中文字幕在线第一页| 宅男噜噜噜66国产在线观看| 国产综合另类小说色区色噜噜| 天堂在线视频精品| 久久亚洲高清国产| 国产超薄肉色丝袜网站| 一边摸一边做爽的视频17国产| 国产白浆一区二区三区视频在线| 自慰网址在线观看| 久久综合九九亚洲一区| 国产视频欧美| 天天操天天噜| 国产成年无码AⅤ片在线| 国产精品冒白浆免费视频| 免费在线视频a| 午夜精品福利影院| 天天色天天综合| 欧美国产精品不卡在线观看| 久久精品国产电影| 免费aa毛片| 一级毛片在线免费看| 亚洲AV无码乱码在线观看代蜜桃 | 2022国产无码在线| 日韩精品一区二区深田咏美| 亚洲欧美在线看片AI| 国产精品黄色片| 国产精品v欧美| 免费无码AV片在线观看国产| 国产一区二区精品福利| 99免费在线观看视频| 老色鬼欧美精品| 免费观看国产小粉嫩喷水| 亚洲欧美综合精品久久成人网| 一级毛片无毒不卡直接观看| 国产又粗又猛又爽| 国产69精品久久久久孕妇大杂乱| 国产成人狂喷潮在线观看2345| 四虎国产精品永久在线网址| 日韩精品成人网页视频在线| 精品三级在线| a毛片免费观看| 精品国产Ⅴ无码大片在线观看81| 五月婷婷欧美| 伊人精品视频免费在线| 久久亚洲综合伊人| 欧美色99| 欧洲免费精品视频在线| 夜色爽爽影院18禁妓女影院| 网久久综合| 91视频99| 国产在线观看精品| 老司国产精品视频91| 思思99思思久久最新精品| 亚洲一级毛片在线观| 欧美成人精品一级在线观看| 日韩精品资源| 97免费在线观看视频| 日韩精品视频久久| 亚洲无码电影| 国产99久久亚洲综合精品西瓜tv| 午夜日b视频| 精品久久久久成人码免费动漫| 999精品在线视频| 91视频免费观看网站| 国产玖玖视频| 中文国产成人精品久久一| 91欧洲国产日韩在线人成| 国产高清在线丝袜精品一区| 久热re国产手机在线观看| 国产杨幂丝袜av在线播放| 国产人妖视频一区在线观看| 露脸一二三区国语对白| 亚洲综合久久一本伊一区| 女人18毛片一级毛片在线 | 不卡无码h在线观看| 亚洲v日韩v欧美在线观看|