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

正文內(nèi)容

基于vhdl語言的8位risc-cpu的設(shè)計答辯-資料下載頁

2024-11-17 21:37本頁面

【導(dǎo)讀】理,從而提高了運算速度。本文對RISC-CPU的架構(gòu)進(jìn)行了分析,并使用VHDL. 語言設(shè)計了8位RISC-CPUIP軟核。邏輯單元、數(shù)據(jù)輸出控制器、地址多路器、程序計數(shù)器、狀態(tài)控制器。仿真波形,驗證了CPU的功能。行效率上有一定程度改善。

  

【正文】 a=39。039。 rd=39。039。 wr=39。039。 ir_ena=39。039。 datactl_ena=39。039。 halt=39。039。 end if。 state=s0。 end case。 end if。 end if。 end process。 end behave。 狀態(tài)控制器源程序如下: library ieee。 use 。 第三章 八位 RISCCPU各模塊設(shè)計與仿真 23 package mypack is ponent mach_ctr port(fetch,rst: in std_logic。 ena: out std_logic)。 end ponent。 ponent state_machine port(clk1, ena, zero: in std_logic。 opcode: in std_logic_vector(2 downto 0)。 pc_clk,acc_ena,pc_ena,rd,wr,ir_ena,halt,datactl_ena:out std_logic)。 end ponent。 end mypack。 library ieee。 use 。 use 。 entity state_contrl is port(clk1,zero,fetch,rst: in std_logic。 opcode: in std_logic_vector(2 downto 0)。 pc_clk,acc_ena,pc_ena,rd,wr,ir_ena,halt,datactl_ena:out std_logic)。 end state_contrl。 architecture rt1 of state_contrl is signal ena_b: std_logic。 begin Ul:mach_ctr port map(fetch,rst,ena_b)。 U2:state_machine port map (clk1,ena_b, zero, opcode, pc_clk, acc_ena, pc_ena, rd, wr, ir_ena, halt, datactl_ena)。 end rt1。 第三章 八位 RISCCPU各模塊設(shè)計與仿真 24 在此仿真波形圖中,復(fù)位引腳 rst 持續(xù)兩個時鐘周期高電平,啟動電路復(fù)位。rst 回到低電平后,接著到來的 fetch的上升沿啟動狀態(tài)控制器工作。這里假設(shè) code為 010,執(zhí)行 ADD 指令,所以在第 0、 1 個時鐘周期, rd 和 oad_ir 均 1。在第 1個時鐘周期程序計數(shù)器開始計數(shù),故 pc_clk 為 1。第二個時鐘周期各信號輸入為0。第三個時鐘時,操作符不為 HLT 所以程序計數(shù)器計數(shù),指向下一個指令。第四個時鐘, rd 為 1,讀取相應(yīng)地址的數(shù)據(jù)。第五個時鐘, ALU 將從 ROM 讀取的數(shù)據(jù)和累加器的數(shù)據(jù)進(jìn)行相應(yīng)的運算,故讀信號為 1, laod_acc 為 1。第六個時鐘,空操作,所有輸出為 0。第七個時鐘,判斷累加器值不為 0,程序計數(shù)器保持不變。故各信號輸出為 0。圖 313 狀態(tài)控制 器 仿真 波形 第四章 RISCCPU的綜合及操作時序 25 第四章 RISCCPU的綜合及操作時序 RISCCPU 各模塊綜合 為了對所設(shè)計的 RISC_CPU 模型進(jìn)行驗證,需要把 RISC_CPU 包裝在一個模塊下,這樣其內(nèi)部連線就隱蔽起來,從系統(tǒng)的角度看就顯得簡潔,見下圖: 模塊各引腳定義如下: CLK 為時鐘信號輸入端口, RST 為復(fù)位輸入端口,DATA 為數(shù)據(jù)輸入輸出端口, RD、 WR 分別為讀寫信號輸出端口, HALT 為停機輸出端口, ADDR 為地址輸出端口。 在編寫總程序時,首先定義一個數(shù)據(jù)包,將所有的功能模塊:時鐘電路、累加器、 算術(shù)邏輯單元 、數(shù)據(jù)控制 電路、指令寄存器、狀態(tài)控制器、程序計數(shù)器和地址多路器,應(yīng)用 COMPONENT 語句進(jìn)行元件例化,這運用了 IP 核的思想,即當(dāng)需要使用庫中已有的邏輯電路時,只要用 COMPONENT 語句調(diào)用即可,而不需要在結(jié)構(gòu)體中對這些電路重復(fù)進(jìn)行定義和描述。 定義數(shù)據(jù)包 源 程序如下 : library ieee。 use 。 use 。 package mypack is ponent clkgen port(clk: in std_logic。 clk1, fetch: buffer std_logic。 alu_clk: out std_logic)。 end ponent。 ponent ir port(clk1, rst, ena: in std_logic。 data: in std_logic_vector(7 downto 0)。 opcode: out std_logic_vector(2 downto 0)。 圖 41 RISCCPU 封裝圖 第四章 RISCCPU的綜合及操作時序 26 ir_addr: out std_logic_vector(12 downto 0))。 end ponent。 ponent acc port(clk1, rst, ena: in std_logic。 data: in std_logic_vector(7 downto 0)。 accum: out std_logic_vector(7 downto 0))。 end ponent。 ponent alu port(alu_clk: in std_logic。 opcode: in std_logic_vector(2 downto 0)。 data, accum: in std_logic_vector(7 downto 0)。 zero: out std_logic。 alu_out: out std_logic_vector(7 downto 0))。 end ponent。 ponent pc port(clk, rst, ena: in std_logic。 ir_addr: in std_logic_vector(12 downto 0)。 pc_addr: out std_logic_vector(12 downto 0))。 end ponent。 ponent addr_mux port(fetch: in std_logic。 pc_addr, ir_addr: in std_logic_vector(12 downto 0)。 addr: out std_logic_vector(12 downto 0))。 end ponent。 ponent datactrl port(data_ena: in std_logic。 alu_out: in std_logic_vector(7 downto 0)。 data: out std_logic_vector(7 downto 0))。 end ponent。 ponent state_contrl port(clk1,zero, fetch, rst: in std_logic。 opcode: in std_logic_vector(2 downto 0)。 pc_clk,acc_ena,pc_ena,rd,wr,ir_ena,halt,datactl_ena:out std_logic)。 第四章 RISCCPU的綜合及操作時序 27 end ponent。 end mypack。 library ieee。 use 。 use 。 use 。 entity risc_cpu is port(clk, rst: in std_logic。 data: inout std_logic_vector(7 downto 0)。 rd, wr, halt: out std_logic。 addr: out std_logic_vector(12 downto 0))。 end risc_cpu。 architecture rt1 of risc_cpu is signal clk1_b,fetch_b,alu_clk_b,zero_b:std_logic。 signal alu_out_b,accum_b:std_logic_vector(7 downto 0)。 signal pc_clk_b,acc_ena_b,pc_ena_b,ir_ena_b,datactl_ena_b:std_logic。 signal pc_addr_b, ir_addr_b: std_logic_vector(12 downto 0)。 signal opcode_b: std_logic_vector(2 downto 0)。 begin Ul:clkgen port map(clk, clk1_b, fetch_b,alu_clk_b)。 U2:ir port map(clk1_b, rst, ir_ena_b,data, opcode_b, ir_addr_b)。 U3:acc port map(clk1_b, rst, acc_ena_b, alu_out_b, accum_b)。 U4:alu port map(alu_clk_b, opcode_b, data, accum_b, zero_b,alu_out_b)。 U5:state_contrl port map(clk1_b, zero_b, fetch_b, rst, opcode_b, rd, wr, pc_clk_b, acc_ena_b, pc_ena_b, ir_ena_b, halt, datactl_ena_b)。 U6:datactrl port map(datactl_ena_b, alu_out_b, data)。 U7:addr_mux port map(fetch_b, pc_addr_b, ir_addr_b, addr)。 U8:pc port map(pc_clk_b, rst, pc_ena_b, ir_addr_b, pc_addr_b)。 end rt1。 各部件連接圖如下: 第四章 RISCCPU的綜合及操作時序 28 圖 42 RISCCPU 各模塊連接圖 第四章 RISCCPU的綜合及操作時序 29 CPU 復(fù)位啟動操作時序 CPU 執(zhí)行程序時主要是由時序控制在存儲器或端口之間進(jìn)行相應(yīng)的讀寫操作。除讀寫操作外, CPU 執(zhí)行最多的就是復(fù)位、啟動操作。下面詳細(xì)介紹 CPU的各種操作時序。 系統(tǒng)復(fù)位啟動波形如圖 43 所示: RISCCPU 的復(fù)位和啟動操作是通過 RST 引腳的信號觸發(fā)執(zhí)行的。 RST 為外部復(fù)位信號的輸入 引腳,用來觸發(fā) RISCCPU 的復(fù)位和啟動操作。當(dāng) RST 信號進(jìn)入高電平, RISCCPU 就會結(jié)束現(xiàn)行操作,并且只要 RST 停留在高電平狀態(tài),CPU 就維持在復(fù)位狀態(tài)。復(fù)位時 RST 引腳上至少保持兩個時鐘周期的高電平輸入信號,內(nèi)部復(fù)位操作在 RST 變?yōu)楦唠娖胶蟮牡诙€時鐘周期進(jìn)行。在復(fù)位狀態(tài), CPU 各內(nèi)部寄存器都被設(shè)為初值,全部為零,數(shù)據(jù)總線為高阻狀態(tài),地址總線為 0000H,所有控制信號均為無效狀態(tài)。復(fù)位后 PC 值為 0000H,故復(fù)位后的程序入口地址為 0000H。當(dāng) RST 信號回到低電平后,接著到來的第一個 FETCH上升 沿啟動 RISCCPU 開始工作。從 ROM 的 0000H 處開始讀取指令并執(zhí)行相應(yīng)的操作。圖 43 CPU 復(fù)位、啟動操作時序 結(jié) 論 30 結(jié) 論 本設(shè)計應(yīng)用 VHDL 語言完成 8 位 RISCCPU 的基本功能單元設(shè)計,最終用MAX+PLUSⅡ 軟件完成單元仿真和綜合仿真,設(shè)計表明該 RISCCPU 設(shè)計的方法,在理論上是完全可行的。 本 設(shè)計的每一個層次都進(jìn)行功能仿真,這減小了設(shè)計的復(fù)雜程度并增加了設(shè)計的可靠性。在設(shè)計過程中,各模塊通過端口信號相通信,并根據(jù)設(shè)計的時序要求產(chǎn)生相應(yīng)控制信號,所有電路的設(shè)計遵循設(shè)計的規(guī)范,語言描述盡量貼近硬件電路,保證設(shè)計的穩(wěn)定性,提高時 鐘頻率。 用 VHDL 語言進(jìn)行設(shè)計有其優(yōu)越性,從總體行為設(shè)計開始到最終邏輯綜合,形成網(wǎng)表為止,每一步都要進(jìn)行仿真檢查,這樣有利于盡早發(fā)現(xiàn)系統(tǒng)設(shè)計中存在的問題,從而可以大大縮短系統(tǒng)硬件的設(shè)計周期。 EDA 技術(shù)就是以計算機為工具,設(shè)計者在 EDA 軟件平臺上,用硬件描述語言 HDL 完成設(shè)計文件,然后由計算機自動地完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局、布線和仿真,直至對于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。 EDA 技術(shù)的出現(xiàn),極大地提高了電路設(shè)計的效率和可操作性,減輕了設(shè)計者的勞動強度。本課題所構(gòu)造的系 統(tǒng)符合 CPU 快速、高效、小型的發(fā)展趨勢。相信 EDA 技術(shù)前景會更加明朗,國 內(nèi) 的 IP 核 會更加成熟,立足世界 。參考文獻(xiàn) 31
點擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1