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

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

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

嚴海洲

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

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

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

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

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

1 用Vivado設計套件創建工程

1.1 關于Vivado設計套件

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

1.2 新工程的創建和設置

打開 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)是一種硬件描述語言,以文本形式來描述數字系統硬件的結構和行為的語言,用它可以表示邏輯電路圖、邏輯表達式,還可以表示數字邏輯系統所完成的邏輯功能。Verilog HDL和VHDL是目前業界最常用的兩種硬件描述語言,這兩種HDL均為IEEE標準。

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

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

2.3 編輯 control 模塊和Top 層模塊

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

2.4 系統時鐘的設置

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

3 仿真測試

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

3.1 系統的初始化

1)初始化 data memory、instruction memory 和 register 三大存儲模塊,這里僅以初始化 instruction memory 為例說明,其他類推即可。該 memory 用于存儲二進制代碼,如圖8顯示。Verilog中調用了系統任務$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所示。

主站蜘蛛池模板: 欧美日韩亚洲国产| 免费精品一区二区h| 欧美中文字幕在线视频 | 欧美综合区自拍亚洲综合绿色| 国产爽妇精品| 精品伊人久久久大香线蕉欧美| 亚洲综合经典在线一区二区| 国产欧美综合在线观看第七页| 国产福利大秀91| 国产屁屁影院| A级毛片高清免费视频就| 国产屁屁影院| 国产乱视频网站| 在线日韩日本国产亚洲| 欧美三级日韩三级| 亚洲国产在一区二区三区| 国产无码网站在线观看| 国产欧美日韩在线在线不卡视频| 有专无码视频| 狠狠色狠狠色综合久久第一次| 久久综合九色综合97婷婷| 日本爱爱精品一区二区| 最新日韩AV网址在线观看| a级毛片免费网站| 伊人久久婷婷五月综合97色| 日本中文字幕久久网站| 一级毛片不卡片免费观看| 久久国产免费观看| 91人妻日韩人妻无码专区精品| 国产成人精彩在线视频50| 特级毛片8级毛片免费观看| 91网在线| 久久国产精品77777| 国产区在线观看视频| 免费无码网站| 手机在线看片不卡中文字幕| 最新精品久久精品| 日韩无码真实干出血视频| 欧美精品在线视频观看| 精品少妇人妻一区二区| 最新加勒比隔壁人妻| 国内a级毛片| 欧美福利在线观看| 亚洲伊人天堂| 亚洲国产精品日韩欧美一区| 久久伊人操| 精品欧美视频| 亚洲综合激情另类专区| 亚洲AV无码不卡无码| 亚洲综合18p| 亚洲永久色| 国产日韩欧美视频| 久久亚洲综合伊人| 狠狠做深爱婷婷久久一区| 国产精品女熟高潮视频| 无码精品国产dvd在线观看9久| 色婷婷亚洲十月十月色天| 亚洲综合精品香蕉久久网| 中文字幕久久波多野结衣| 久久精品波多野结衣| 另类专区亚洲| 久久伊人久久亚洲综合| 色综合热无码热国产| 国产精品美女免费视频大全| 色老头综合网| 四虎永久免费在线| 亚洲天堂网在线播放| 国产拍在线| 日韩高清一区 | 无码电影在线观看| 免费在线一区| 天天摸夜夜操| 日韩高清成人| 久久精品日日躁夜夜躁欧美| 欧美成人a∨视频免费观看 | 免费午夜无码18禁无码影院| 高潮毛片免费观看| 狠狠色狠狠综合久久| 97se亚洲综合在线天天 | 国产成人精品2021欧美日韩| 四虎永久在线视频| 国产波多野结衣中文在线播放|