freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于fpga的嵌入式cpu設(shè)計-資料下載頁

2024-11-06 02:54本頁面

【導(dǎo)讀】隨著EDA技術(shù)的快速發(fā)展,基于FPGA的嵌入式微處器的應(yīng)用越來越廣泛。方法也得到迅速的完善。基于FPGA的嵌入式系統(tǒng)具有設(shè)計周期短、產(chǎn)品上市速度快、設(shè)。發(fā),提出兩種設(shè)計方案。一種不使用流水線技術(shù)的RISCCPU。通過分析可以知道第一種方案可以達到較高的工作。頻率和執(zhí)行速度較高的設(shè)計目標(biāo)。的地址總線和數(shù)據(jù)總線,并且采用了5級流水線來提高CPU的工作效率。回寫五個部分組成。CPU的各部件利用VHDL語言和EDA工具設(shè)計實現(xiàn)的,采用自頂向下的設(shè)計方法。

  

【正文】 定了成為系統(tǒng)設(shè)計領(lǐng)域最佳的硬件描述語言。將 VHDL 程序?qū)懭肟删幊绦酒?,開發(fā)周期短,更改方便,所以將在很大范圍內(nèi)取代單片控制電路,成為未來數(shù)字電路設(shè)計的主流。 VHDL 技術(shù)完備,具有豐富的仿真語句的庫函數(shù)。而且還支持同步電路、異步電路 和其他電路的設(shè)計。 VHDL 設(shè)計方法靈活,對設(shè)計的描述具有相對獨立性。設(shè)計者可以不懂硬件結(jié)構(gòu),可以不管最終設(shè)計實現(xiàn)的目標(biāo)器件,而進行獨立的設(shè)計。 VHDL 支持廣泛,目前大多數(shù) EDA 工具幾乎都在不同程度上支持 VHDL。 VHDL 電路描述語言所能涵蓋的范圍相當(dāng)廣,能適用于各種不同階層的設(shè)計工程師的需要。 從 ASIC 的設(shè)計到 PCB 系統(tǒng)的設(shè)計, VHDL 電路描述語言都能派上用場。所以 VHDL電路設(shè)計毫無疑問地成為硬件工程師的必備工具。目前, VHDL 語言也已成為 FPGA/CPLD編程最常用有工具。 VHDL 的基 本結(jié)構(gòu) 一個完整的 VHDL 程序包含實體 (ENTITY)、結(jié)構(gòu)體 (ARCHICTURE)、庫 (LIBRARY)、程序包 (PACKAGE)和配置 (CONFIGURATION)五部分 [17]: 1) 實體 (Entity):實體是 VHDL 設(shè)計中最基本的模塊, VHDL 表達的所有設(shè)計均與實體有關(guān)。設(shè)計的最頂層是頂層實體。如果設(shè)計分層次,那么在頂層實體中將包含較低級別的實體。實體中定義了該設(shè)計所需的輸入 /輸出信號,信號的輸入 /輸出類型被稱為端口模式,同時實體中還定義他們的數(shù)據(jù)類型。 任何一個基本設(shè)計單元的實體說明都具有 如下的結(jié)構(gòu): entity entity_name 實體名 is port ( 信號名 [,信號名 ]:端口模式 端口類型; ?? 信號名 [,信號名 ]:端口模式 端口類型 基于 FPGA 的嵌入式 CPU 設(shè)計 14 ); end entity_name; 每個端口所定義的信號名在實體中必須是唯一的,說明信號名的屬性包括端口模式和端口類型,端口模式?jīng)Q定信號的流向,端口類型決定端口所采用的數(shù)據(jù)類型。 2) 結(jié)構(gòu)體 (Architecture):結(jié)構(gòu)體是 VHDL 設(shè)計中最主要部分,它具體地指明了該基本設(shè)計單元的行為、元件及內(nèi)部的連接關(guān)系,也就是 說它定義了設(shè)計單元具體的功能。結(jié)構(gòu)體對其基本設(shè)計單元的輸入輸出關(guān)系可以用 3 種方式進行描述,即行為描述(基本設(shè)計單元的數(shù)學(xué)模型描述)、寄存器傳輸描述(數(shù)據(jù)流描述)和結(jié)構(gòu)描述(邏輯元件連接描述)。不同的描述方式,只體現(xiàn)在描述語句上,而結(jié)構(gòu)體的結(jié)構(gòu)是完全一樣的。 一個完整的、能被綜合實現(xiàn)的 VHDL 設(shè)計必須有一個實體和對應(yīng)的結(jié)構(gòu)體,一個實體可以對應(yīng)一個或多個結(jié)構(gòu)體,由于結(jié)構(gòu)體是對實體功能的具體描述,因此它一定要跟在實體的后面,通常先編譯實體后才能對結(jié)構(gòu)體進行編譯。 一個結(jié)構(gòu)體的具體結(jié)構(gòu)描述如下: Architecturearchitecture_name 結(jié)構(gòu)體名 ofentity_name 實體名 is 結(jié)構(gòu)體聲明區(qū)域 聲明結(jié)構(gòu)體所用的內(nèi)部信號及數(shù)據(jù)類型 如果使用元件例化,則在此聲明所用的元件 begin 以下開始結(jié)構(gòu)體用于描述設(shè)計的功能 concurrent signal assignments 并行語句信號賦值 processes 進程(順序語句描述設(shè)計) ponent instantiations 元件例化 endarchitecture_name 結(jié)構(gòu)體名 結(jié)構(gòu) 體名是對本結(jié)構(gòu)體的命名,它是該結(jié)構(gòu)體的唯一名稱, of 后面緊跟的實體名表明了該結(jié)構(gòu)體所對應(yīng)的是哪一個實體,用 is 來結(jié)束結(jié)構(gòu)體的命名,結(jié)構(gòu)體的名稱可以由設(shè)計人員自由命名。 3) 庫 (Library):庫是專門存放預(yù)先編譯好的程序包 (package)的地方。在 VHDL 語言中,庫的說明總是放在設(shè)計單元的最前面: LIBRARY 庫名; 這樣,在設(shè)計單元內(nèi)的語句就可以使用庫中的數(shù)據(jù)。由此可見,庫的好處就在于使設(shè)計者可以共享已經(jīng)編譯過的設(shè)計結(jié)果。在 VHDL 語言中可以存在多個不同的庫,但是庫和庫之間是獨立的,不能互相 嵌套。實際中一個庫就對應(yīng)一個目錄,預(yù)編譯程序包的文件就放在此目錄中。用戶自建的庫即為設(shè)計文件所在目錄,庫名與目錄名的對應(yīng)關(guān)系可在編譯軟件中指定。 4) 程序包 (Package):程序包是用來單純羅列 VHDL 語言中所要用到的信號定義、常數(shù)定義、數(shù)據(jù)類型、元件語句、函數(shù)定義和過程定義等,它是一個可編譯的設(shè)計單元,也是庫結(jié)構(gòu)中的一個層次。要使用程序包時,可以用 USE 語句說明。例如: USE ; 基于 FPGA 的嵌入式 CPU 設(shè)計 15 該語句表示在 VHDL 程序中要使用名為 STD_LOGIC_1164 的程序 包中所有定義或說明項。一個程序包由兩大部分組成:包頭( Header)和包體( Package Body),其中包體是一個可選項,也就是說,程序包可以只由包頭構(gòu)成。一般包頭列出所有項的名稱,而在包體具體給出各項的細節(jié)。 程序包的結(jié)構(gòu)如下所示: PACKAGE 程序包名 IS [說明語句 ]; 包頭 END 程序包名; PACKAGE BODY 程序包名 IS [說明語句 ]; 包體 END BODY; 5) 配置 (Configuration):一個實體可用多個結(jié)構(gòu)體描述,在具體綜合時選擇哪一個結(jié)構(gòu)體 來綜合,則由配置來確定。即配置語句來安裝連接具體設(shè)計(元件)到一個實體 結(jié)構(gòu)體對。配置被看作是設(shè)計的零件清單,它描述對每個實體用哪一種行為,它非常象一個描述設(shè)計每部分用哪一種零件的清單。 QurtusII 開發(fā)系統(tǒng) Altera公司 的 Quartus II是業(yè)內(nèi)領(lǐng)先的 FPGA設(shè)計軟件,具有最全面的開發(fā)設(shè)計環(huán)境,實現(xiàn)無以倫比的性能表現(xiàn)。也是 Altera公司繼 MAX+plus II之后,開發(fā)的一種針對其公司生產(chǎn)的系列 CPLD /FPGA器件的設(shè)計、仿真、編程的工具軟件。該軟件界面友好,使用便捷,功能強 大,是一個完全集成化的可編程邏輯設(shè)計環(huán)境。該軟件具有開放性、與結(jié)構(gòu)無關(guān)、多平臺、完全集成化、豐富的設(shè)計庫、模塊化工具、支持各種 HDL語言、有多種高級編程語言接口等特點,可以很方便地與以往的 MAX+plus II設(shè)計環(huán)境相互切換。該軟件方便易用,功能齊全,是非常先進的 EDA工具軟件,非常適合教學(xué)、科研開發(fā)等多種場合的使用。下面將介紹本次設(shè)計使用的 Quartus II 。 非常易使用的 EDA 設(shè)計軟件 Quartus II軟件以及免費的 Quartus II網(wǎng)絡(luò)版軟件所支持的眾多的 FPGA /CPLD器件和,提供易用和全面的設(shè)計環(huán)境,能夠從開始到結(jié)束完成設(shè)計項目。 Quartus II軟件和 Quartus II網(wǎng)絡(luò)版還提供了和業(yè)界領(lǐng)先和第三方綜合和仿真工具的無縫集成。 Quartus II 給 MAX+plus II用戶帶來的優(yōu)勢。 Quartus II是業(yè)內(nèi)領(lǐng)先的 FPGA設(shè)計軟件是性能很高的 FPGA設(shè)計軟件。它提供了一個內(nèi)置的 MAX+plus II外觀選項。設(shè)計者可以依據(jù)個人偏好,自行設(shè)定 Quartus II軟件的布局、功能表、指令和圖示。設(shè)計者第一次打開 Quartus II軟件時,可以依設(shè)計習(xí) 慣選擇標(biāo)準(zhǔn) Quartus II 使用者介面或 MAX+PLUS II界面,或者稍候,可由 Customize對話視窗選擇外觀和操作習(xí)慣。倘若設(shè)計者習(xí)慣于先前使用之MAX+PLUS II 軟件,此項設(shè)定則可允許設(shè)計者使用熟悉的 MAX+PLUS II布局、指令和基于 FPGA 的嵌入式 CPU 設(shè)計 16 圖示以便控制 Quartus II 軟件的功能。圖 Customize對話視窗。 圖 Customize對話視窗 用于 MAX 3000A, MAX 7000AE, MAX 7000B和 MAX 7000S設(shè)計, Quartus II 比 MAX+plus軟件 ,設(shè)計性能平均快 15%,對于給定設(shè)計平均減少 5%的器件資源優(yōu)勢。 Quartus II 設(shè)計流程 Altera 的 Quartus II是業(yè)內(nèi)領(lǐng)先的 FPGA設(shè)計軟件,具有最全面的開發(fā)設(shè)計環(huán)境,實現(xiàn)無以倫比的性能表現(xiàn),而且效率高,易于使用設(shè)計流程方法。其設(shè)計方法有如下的特點: 1) 預(yù)先 I/O分配和確認: QuartusII軟件采用了預(yù)先 I/O分配和確認技術(shù),提高了設(shè)計效率,縮短了產(chǎn)品上市時間,并且非常容易使用。這樣在設(shè)計早期階段,就可以進行印刷電路電 路板 (PCB)布局。 2) Quartus II集成和綜合以及第三方綜合的支持 : Quartus II軟件包括了全面的集成綜合方案 , 以及對來自 Mentor Graphics、 Synopsys和 Synplicity的主要第三方綜合軟件的高級集成。 3) LogicLock基于模塊設(shè)計: Quartus II軟件采用 LogicLock基于模塊設(shè)計的設(shè)計流程,縮短并簡化了設(shè)計和驗證過程,該流程是構(gòu)建和集成模塊化系統(tǒng)最簡單靈活的方法。LogicLock方法非常適合進行團隊設(shè)計。 4) 存儲器編譯器: Quartus II軟件用戶可以在容易使用的圖形界面選擇并配置存儲器,基于 FPGA 的嵌入式 CPU 設(shè)計 17 或者從 VHDL或 Verilog 源代碼中直接得出存儲器。存儲器編譯器動態(tài)生成基于用戶參數(shù)的存儲器結(jié)構(gòu)運行波形顯示,支持假設(shè)分析。 5) 腳本支持: Quartus II 軟件同時支持基于 GUI 和基于腳本的設(shè)計技術(shù)。 Quartus II軟件是第一個來自于可編程邏輯器件( PLD)供應(yīng)商的 FPGA 和結(jié)構(gòu)化 ASIC 規(guī)劃工具,它支持業(yè)內(nèi)標(biāo)準(zhǔn)的工具命令語言( Tcl)腳本界面。 5 CPU 設(shè)計與仿真 該流水線 CPU 由取指令 (IF)、指令譯碼 和讀寄存器文件 (ID)、執(zhí)行或計算地址 (EXE)、存儲器訪問 (MEM)、回寫 (WB)五個部分組成 [18]。通過這幾個模塊設(shè)計,最后綜合出整個完整的基于流水線技術(shù)的 RISC CPU。 取指令段 取指令 IF 段執(zhí)行從存儲器 ROM 中取指令的操作,并將已取出的指令機器碼與程序計數(shù)器的輸出值存儲在 IF/ ID 流水線寄存器中,作為臨時保存,以便在下一個時鐘周期開始時候為下一步所用。取指段的結(jié)構(gòu)圖如圖 所示。 基于 FPGA 的嵌入式 CPU 設(shè)計 18 圖 取指段的結(jié)構(gòu)圖 取指 IF 段主 要的功能是: 1) 取指令及鎖存指令。根據(jù)程序計數(shù)器 PC 的值從指令存儲器中取出指令,并將指令送到取指 IF 段的鎖存單元中 2) 指令地址的計算。根據(jù) Pcselector 的信號選擇端,來確定從順序執(zhí)行、 branchPC(跳轉(zhuǎn)分支 )、 retiPC(中斷返回 )和 retPC(子程序 )四個地址轉(zhuǎn)移源中選擇程序計數(shù)器 PC 的下一個值。若流水線中回寫 (WB)段的指令是跳轉(zhuǎn)指令或者分支成功的分支指令,則選擇 branchPC的值,以程序跳轉(zhuǎn)的目標(biāo)值作為地址計算的結(jié)果;若是非轉(zhuǎn)移指令分支或者分支失敗的分支指令則 PC 取 PC+1 的值, 指令指向指令存儲器的下一條指令;若是中斷返回指令,則取 retiPC 的值;若是子程序返回指令,則取 retPC 的值。 3) 檢驗指令的合法性。檢驗指令的操作碼和功能碼是否符合指令集設(shè)計中的定義,如果指令不正確,則返回一個異常。 4) 同步控制。用時鐘 clk 對外部信號進行同步控制。 取指 IF 段由五個基本模塊組成, PC 選擇模塊 (pcselector)、即程序計數(shù)器模塊 (progc)、程序計數(shù)器加 1 模塊 (incpc)、程序存儲器模塊 (ROM0)、流水線寄存器模塊 (IFID)。 PC 選擇模塊的設(shè)計 PC 選擇模塊是下一條指令地址的選擇單元,在輸入端根據(jù) sel[3..0]的值選擇四個源nextpc[15..0]、 branchpc[15..0]、 retPC[15..0]、 retiPC[15..0]中的一個,作為執(zhí)行下一個指令的地址送到程序計數(shù)器 progc 中。在 Quartus II 環(huán)境下,通過 VHDL 語言設(shè)計 PC 選擇模塊 pcselector,相應(yīng)的程序代碼如下所示: library ieee。 use 。 use 。 PC PC+1 ROM IF/ID流水線寄存器 基于 FPGA 的嵌入式 CPU 設(shè)計 19 use 。 use 。 entity pcselector is port(nextpc, branchpc, retpc, retipc : in std_logic_vector(15 downto 0)。 sel : in std_logic_vector(3 downto 0)。 newpc : out std_logic_vector(15 downto 0))。 end entity pcselector。 architecture sel_behav of pcselector i
點擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1