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

正文內(nèi)容

基于vhdl語言的8位risc-cpu的設(shè)計答辯-wenkub

2022-11-28 21:37:37 本頁面
 

【正文】 系統(tǒng)設(shè)計 技術(shù)層面看,集成電路發(fā)展已進入 IP core 復(fù) 用的 SoC時代, 8 位嵌入式微處理器發(fā)展的一個重要特點是片上系統(tǒng) SoC 化。如果對指令系統(tǒng)作相應(yīng)的優(yōu)化,就可以從根本上快速提高處理器的執(zhí)行效率。很快,許多廠商都開發(fā)出了自己的 RISC指令系統(tǒng),除了 IBM的 Power 和 PowerPC外 , 還有 DEC 的 Alpha、 SUN的 SPARC、HP 的 PARISC、 MIPS 技術(shù)公司的 MIPS、 ARM 公司的 ARM 等。從實現(xiàn)的途徑看, RISCCPU 與一般的 CPU 的不同處在于:它的時序控制信號形成部件是用硬布線邏輯實現(xiàn)的而不是采用微程序控制的方式。 CPU 由運算器和控制器組成,其內(nèi)部結(jié)構(gòu)歸納起來可以分為控制單元、邏輯單元和存儲單元三大部分,這三個部分相互協(xié)調(diào),便可以進行 分析,判斷、運算并控制計算機各部分協(xié)調(diào)工作。 RISCCPU 由八大基本模塊構(gòu)成: 時鐘發(fā)生器、指令寄存器、累加器、算術(shù)邏輯單元、數(shù)據(jù)輸出控制器、地址多路器、程序計數(shù)器、狀態(tài)控制器 。 畢業(yè)設(shè)計說明書 基于 VHDL語言的 8位 RISCCPU的設(shè)計 學(xué) 院: 專 業(yè): 學(xué)生姓名: 學(xué) 號: 指導(dǎo)教師 : 201 年 月 中 文 摘 要 I 摘 要 RISC 即精簡指令集計算機( Reduced Instruction Set Computer)的縮寫。本 設(shè)計中借助 MAX+PLUSⅡ 軟件平臺對各模塊進行時序仿真,并最終給出了指令執(zhí)行的仿真波形,驗證了 CPU 的功能。 CPU 從最初發(fā)展至今已經(jīng)有幾十年的歷史了,這期間,按照其處理信息的字長, CPU 可以分為:四位微處理器、八位微處理器、十六位微處理器、三十二位微處理器以及六十四位微處理器。 所謂硬布線邏輯也就是用觸發(fā)器和邏輯門直接連線所構(gòu)成的狀態(tài)機和組合邏輯,故產(chǎn)生控制序列的速度比用微程序控制方式快得多,因為這樣做省去了讀取微指令的時間。它的應(yīng)用范圍也遠比 X86 來得廣泛,大到各種超級計算機、工作站、高階服務(wù)器,小到各類嵌入式設(shè)備、家用游戲機、消費電子產(chǎn)品、工業(yè)控制計算機,都可以看到 RISC的身影。 第 一 章 引 言 2 RISC 與 CISC(一般指普通的 X86CPU)比較,有以下優(yōu)勢: 指令簡單而且少;指令系統(tǒng)選用那些使用頻度高的簡單指令和一些實用的但不十分復(fù)雜的指令,一般指令不超過 100 條;指令字長固定,尋址方式一般不超過四種,指令格式也不超過四種;所有指令 (幾乎所有指令 )均在單指令周期完成;指令系統(tǒng)中只允許存 (STORE)和取 (LOAD)指令訪問主存,其它指令均在寄存器之間進行; CPU 中設(shè)置大量的寄存器,稱作寄存器堆;指令的運行采用高效的流水 線方式;以硬布線控制邏輯為主,不用或少用微碼;優(yōu)化的編譯程序,簡單有效地支持高級語言;超低功耗。本課題也為基于 IP 核的嵌入式系統(tǒng)設(shè)計積累了寶貴經(jīng)驗。第 二 章 RISCCPU的架構(gòu)設(shè)計 3 第二章 RISCCPU的架構(gòu)設(shè)計 RISCCPU 基本架構(gòu) 一個基本的 CPU 要包括三部分功能:數(shù)據(jù)的存儲、數(shù)據(jù)的 運算和控制部分。存儲器的讀寫信號由控制器給出。 累加器用于保存參加運算的數(shù)據(jù)以及運算的中間結(jié)果。 程序計數(shù)器指向下一條要執(zhí)行的指令。這些信號送往其他部件,以控制這些部件協(xié)調(diào)工作。 二、從第一條指令的地址起開始執(zhí)行該程序,得到所需結(jié)果,結(jié)束運行。是對當(dāng)前取得的指令進行分析,指出它要求什么操作,并產(chǎn)生相應(yīng)的操作控制命令。 ? FETCH 是外來時鐘 CKL 的 8 分頻信號,其 上升沿觸發(fā) CPU 控制器開始執(zhí)行一條指令,該 信號 同時 還控制地 址多路器輸出指令地址和數(shù)據(jù)地址。 entity clkgen is port(clk: in std_logic。 alu_clk: out std_logic)。 signal clk4: std_logic:=39。 圖 31 時鐘發(fā)生器 第三章 八位 RISCCPU各模塊設(shè)計與仿真 7 if clk139。 end if。039。 process(clk4) begin if clk439。 end if。 仿真波形如下: 指令寄存器 指令寄存器 Instruction Register 用于寄存指令。 IR_ENA 信號 通過 ENA 口輸入到指令寄存器。本設(shè)計的數(shù)據(jù)總線為 8 位,所以每條指令需取兩次。再 次 寄存時, 因 STATE 為 1, 取低 8 位 并 存入低 8 位寄存器中,同時將 STATE 置為 0,如此往復(fù)。 use 。 ir_addr: out std_logic_vector(12 downto 0))。039。)then if rst=39。)。039。 when 39。039。039。 opcode=opc_iraddrs(15 downto 13)。其中 第 15 至 第 13 位存入 opcode 中 并替換舊數(shù)據(jù) ,第 12 至 第 0 位存入 str_addr 中 并替換舊數(shù)據(jù) 。 累加器源程序如下: library ieee。 accum:out std_logic_vector(7 downto 0))。139。 elsif ena=39。 end if。 算術(shù) 邏輯單 元 算術(shù) 邏輯單元 ALU 的全稱是 Arithmetic Logic Unit, 該模塊 用來執(zhí)行諸如加減乘除以及寄存器中的值之間的邏輯運算,通常在一般的處理器上被設(shè)成一個周期 上升沿 運行一次,這主要是由附屬于 ALU 的輸入輸出寄存器以及在 ALU 輸入處插入旁路乘法器來決定的。 use 。 data,accum: in std_logic_vector(7 downto 0)。 architecture behave of alu is signal alu_out_latch: std_logic_vector(7 downto 0)。 constant AN_D: std_logic_vector(2 downto 0):=011。 constant JMP: std_logic_vector(2 downto 0):=111。039。event and alu_clk=39。 when ADD=alu_out_latch=data+accum。 when STO=alu_out_latch=accum。 end if。 在仿真過程中,假設(shè)操作碼依次為上述 8 種操作碼。 opcode 不同的值代表不同的操作 。累加器的數(shù)據(jù)只有在需要往RAM 區(qū)或端口寫時才允許輸出,否則應(yīng)呈現(xiàn)高阻態(tài),以允許其它部件使用數(shù)據(jù)總線。 數(shù)據(jù)控制電路源程序如下: library ieee。 data: out std_logic_vector(7 downto 0))。 else ZZZZZZZZ。每個指令周期的前 4 個時鐘周期用于從 ROM 中讀取指令,輸出 PC 地址。 use 。 end addr_mux。 end behave。 圖 311 地址多路器 圖 312 地址多路 器 仿真波形 第三章 八位 RISCCPU各模塊設(shè)計與仿真 16 復(fù)位后,指令指針為零,即每次 CPU 重新啟動將從 ROM 的零地址開始讀取指令并執(zhí)行。 程序計數(shù)器源程序如下: library ieee。 ir_addr: in std_logic_vector(12 downto 0)。 begin process(clk) begin if clk39。139。 elsif ena=39。039。 圖 313 程序計數(shù)器 第三章 八位 RISCCPU各模塊設(shè)計與仿真 17 end process。 rst 為高電平時輸出 清 0。 指令周期是由 8 個時鐘周期組成,每個時鐘周期都要完成固定的操作。 (3) 第 3 個時鐘 S2,空操作。 圖 316 狀態(tài)控制器狀態(tài)轉(zhuǎn)換圖 第三章 八位 RISCCPU各模塊設(shè)計與仿真 19 (5)第 5 個時鐘 S4,若操作符為 AND、 ADD、 XOR 或 LDA,讀相應(yīng)地址的數(shù)據(jù);若為 JMP,將目的地址送給程序 計數(shù)器;若為 STO,輸出累加器數(shù)據(jù)。 在實體編寫過程中,首先定義 8 個狀態(tài)為 S0~S7,然后定義 8 個指令代碼 為常量。 use 。 architecture behave of mach_ctr is begin process(fetch) begin if fetch39。139。139。 end behave。 opcode: in std_logic_vector(2 downto 0)。 signal state: state_type。 constant AN_D: std_logic_vector(2 downto 0):=011。 constant JMP: std_logic_vector(2 downto 0):=111。then if ena=39。039。039。039。039。139。039。139。139。039。 acc_ena=39。 rd=39。 ir_ena=39。 halt=39。039。039。039。039。 when s3=if (opcode=HLT) then pc_clk=39。 pc_ena=39。 wr=39。 datactl_ena=39。 else pc_clk=39。 pc_ena=39。 wr=39。 datactl_ena=39。 end if。 acc_ena=39。 rd=39。 ir_ena=39。 halt=39。 acc_ena=39。 rd=39。 ir_ena=39。 halt=39。 acc_ena=39。 rd=39。 ir_ena=39。halt=39。 acc_ena=39。 rd=39。 ir_ena=39。 halt=39。 when s5 =if (opcode=ADD or opcode=AN_D or opcode=XO_R or opcode=LDA) then 第三章 八位 RISCCPU各模塊設(shè)計與仿真 22 pc_clk=39。pc_ena=39。 wr=39。 datactl_ena=39。 elsif(opcode=SKZ and zero=39。 acc_ena=39。 rd=39。 ir_ena=39。 halt=39。 acc_ena=39。rd=39。 ir_ena=39。 halt=39。 acc_ena=39。 rd=39。ir_ena=39。 halt=39。 acc_ena=39。 rd=39。ir_ena=39。 halt=39。 when s6=pc_clk=39。 pc_ena=39。 wr=39。 datactl_ena=39。 state=s7。139。039。039。039。039。039。039。039。 state=s0。 end process。 第三章 八位 RISCCPU各模塊設(shè)計與仿真 23 package mypack is ponent mach_ctr port(fetch,rst: in std_logic。 opcode: in std_logic_vector(2 downto 0)。 library ieee。 opcode: in std_logic_vector(2 downto 0)。 begin Ul:mach_ctr port map(fetch,rst,ena_b)。rst 回到低電平后,接著到來的 fetch的上升沿啟動狀態(tài)控制器工作。第三個時鐘時,操作符不為 HLT 所以程序計數(shù)器計數(shù),指向下一個指令。第七個時鐘,判斷累加器值不為 0,程序計數(shù)器保持不變。 定義數(shù)據(jù)包 源 程序如下 : library ieee。 clk1, fetch: buffer std_logic。 data: in std_logic_vector(7 downto 0)。 ponent acc port(clk1, rst, ena: in std_logic。 ponent alu port(alu_clk: in std_logic。 alu_out: out std_logic_vector(7 downto 0))。 pc_addr: out std_logic_vector(12 d
點擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1