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

正文內容

基于vhdl語言的8位risc-cpu的設計答辯(參考版)

2024-11-21 21:37本頁面
  

【正文】 相信 EDA 技術前景會更加明朗,國 內 的 IP 核 會更加成熟,立足世界 。 EDA 技術的出現(xiàn),極大地提高了電路設計的效率和可操作性,減輕了設計者的勞動強度。 用 VHDL 語言進行設計有其優(yōu)越性,從總體行為設計開始到最終邏輯綜合,形成網(wǎng)表為止,每一步都要進行仿真檢查,這樣有利于盡早發(fā)現(xiàn)系統(tǒng)設計中存在的問題,從而可以大大縮短系統(tǒng)硬件的設計周期。 本 設計的每一個層次都進行功能仿真,這減小了設計的復雜程度并增加了設計的可靠性。從 ROM 的 0000H 處開始讀取指令并執(zhí)行相應的操作。復位后 PC 值為 0000H,故復位后的程序入口地址為 0000H。復位時 RST 引腳上至少保持兩個時鐘周期的高電平輸入信號,內部復位操作在 RST 變?yōu)楦唠娖胶蟮牡诙€時鐘周期進行。 RST 為外部復位信號的輸入 引腳,用來觸發(fā) RISCCPU 的復位和啟動操作。下面詳細介紹 CPU的各種操作時序。 各部件連接圖如下: 第四章 RISCCPU的綜合及操作時序 28 圖 42 RISCCPU 各模塊連接圖 第四章 RISCCPU的綜合及操作時序 29 CPU 復位啟動操作時序 CPU 執(zhí)行程序時主要是由時序控制在存儲器或端口之間進行相應的讀寫操作。 U8:pc port map(pc_clk_b, rst, pc_ena_b, ir_addr_b, pc_addr_b)。 U6:datactrl port map(datactl_ena_b, alu_out_b, data)。 U4:alu port map(alu_clk_b, opcode_b, data, accum_b, zero_b,alu_out_b)。 U2:ir port map(clk1_b, rst, ir_ena_b,data, opcode_b, ir_addr_b)。 signal opcode_b: std_logic_vector(2 downto 0)。 signal pc_clk_b,acc_ena_b,pc_ena_b,ir_ena_b,datactl_ena_b:std_logic。 architecture rt1 of risc_cpu is signal clk1_b,fetch_b,alu_clk_b,zero_b:std_logic。 addr: out std_logic_vector(12 downto 0))。 data: inout std_logic_vector(7 downto 0)。 use 。 use 。 end mypack。 pc_clk,acc_ena,pc_ena,rd,wr,ir_ena,halt,datactl_ena:out std_logic)。 ponent state_contrl port(clk1,zero, fetch, rst: in std_logic。 data: out std_logic_vector(7 downto 0))。 ponent datactrl port(data_ena: in std_logic。 addr: out std_logic_vector(12 downto 0))。 ponent addr_mux port(fetch: in std_logic。 pc_addr: out std_logic_vector(12 downto 0))。 ponent pc port(clk, rst, ena: in std_logic。 alu_out: out std_logic_vector(7 downto 0))。 data, accum: in std_logic_vector(7 downto 0)。 ponent alu port(alu_clk: in std_logic。 accum: out std_logic_vector(7 downto 0))。 ponent acc port(clk1, rst, ena: in std_logic。 圖 41 RISCCPU 封裝圖 第四章 RISCCPU的綜合及操作時序 26 ir_addr: out std_logic_vector(12 downto 0))。 data: in std_logic_vector(7 downto 0)。 end ponent。 clk1, fetch: buffer std_logic。 use 。 定義數(shù)據(jù)包 源 程序如下 : library ieee。圖 313 狀態(tài)控制 器 仿真 波形 第四章 RISCCPU的綜合及操作時序 25 第四章 RISCCPU的綜合及操作時序 RISCCPU 各模塊綜合 為了對所設計的 RISC_CPU 模型進行驗證,需要把 RISC_CPU 包裝在一個模塊下,這樣其內部連線就隱蔽起來,從系統(tǒng)的角度看就顯得簡潔,見下圖: 模塊各引腳定義如下: CLK 為時鐘信號輸入端口, RST 為復位輸入端口,DATA 為數(shù)據(jù)輸入輸出端口, RD、 WR 分別為讀寫信號輸出端口, HALT 為停機輸出端口, ADDR 為地址輸出端口。第七個時鐘,判斷累加器值不為 0,程序計數(shù)器保持不變。第五個時鐘, ALU 將從 ROM 讀取的數(shù)據(jù)和累加器的數(shù)據(jù)進行相應的運算,故讀信號為 1, laod_acc 為 1。第三個時鐘時,操作符不為 HLT 所以程序計數(shù)器計數(shù),指向下一個指令。在第 1個時鐘周期程序計數(shù)器開始計數(shù),故 pc_clk 為 1。rst 回到低電平后,接著到來的 fetch的上升沿啟動狀態(tài)控制器工作。 end rt1。 begin Ul:mach_ctr port map(fetch,rst,ena_b)。 end state_contrl。 opcode: in std_logic_vector(2 downto 0)。 use 。 library ieee。 end ponent。 opcode: in std_logic_vector(2 downto 0)。 end ponent。 第三章 八位 RISCCPU各模塊設計與仿真 23 package mypack is ponent mach_ctr port(fetch,rst: in std_logic。 狀態(tài)控制器源程序如下: library ieee。 end process。 end if。 state=s0。039。039。039。039。039。039。039。039。039。039。039。039。039。039。039。139。139。 state=s7。 halt=39。 datactl_ena=39。 ir_ena=39。 wr=39。 rd=39。 pc_ena=39。 acc_ena=39。 when s6=pc_clk=39。 end if。 halt=39。 datactl_ena=39。ir_ena=39。 wr=39。 rd=39。 pc_ena=39。 acc_ena=39。 else pc_clk=39。 halt=39。 datactl_ena=39。ir_ena=39。 wr=39。 rd=39。 pc_ena=39。 acc_ena=39。 elsif opcode=STO then pc_clk=39。 halt=39。 datactl_ena=39。 ir_ena=39。 wr=39。rd=39。 pc_ena=39。 acc_ena=39。 elsif opcode=JMP then pc_clk=39。 halt=39。 datactl_ena=39。 ir_ena=39。 wr=39。 rd=39。 pc_ena=39。 acc_ena=39。) then pc_clk=39。 elsif(opcode=SKZ and zero=39。 halt=39。 datactl_ena=39。 ir_ena=39。 wr=39。 rd=39。pc_ena=39。 acc_ena=39。 when s5 =if (opcode=ADD or opcode=AN_D or opcode=XO_R or opcode=LDA) then 第三章 八位 RISCCPU各模塊設計與仿真 22 pc_clk=39。 end if。 halt=39。 datactl_ena=39。 ir_ena=39。 wr=39。 rd=39。 pc_ena=39。 acc_ena=39。 else pc_clk=39。halt=39。 datactl_ena=39。 ir_ena=39。 wr=39。 rd=39。 pc_ena=39。 acc_ena=39。 elsif opcode=STO then pc_clk=39。 halt=39。 datactl_ena=39。 ir_ena=39。 wr=39。 rd=39。 pc_ena=39。 acc_ena=39。 elsif (opcode=ADD or opcode=AN_D or opcode=XO_R or opcode=LDA) then pc_clk=39。 halt=39。 datactl_ena=39。 ir_ena=39。 wr=39。 rd=39。 pc_ena=39。 acc_ena=39。 when s4=if (opcode=JMP) then pc_clk=39。 end if。 halt=39。 datactl_ena=39。 ir_ena=39。 wr=39。 rd=39。 pc_ena=39。 acc_ena=39。 else pc_clk=39。 halt=39。 datactl_ena=39。 ir_ena=39。 wr=39。 rd=39。 pc_ena=39。 acc_ena=39。 when s3=if (opcode=HLT) then pc_clk=39。039。039。039。039。039。039。039。039。 state=s2。 halt=39。 datactl_ena=39。 ir_ena=39。 wr=39。 rd=39。 pc_ena=39。 acc_ena=39。 when s1=pc_clk=39。039。039。139。039。139。039。039。039。139。039。039。039。039。039。039。039。039。 then state=s0。then if ena=39。event and clk1=39。 constant JMP: std_logic_vector(2 downto 0):=111。 constant LDA: std_logic_vector(2 downto 0):=101。 constant AN_D: std_logic_vector(2 downto 0):=011。 constant SKZ: std_logic_vector(2 downto 0):=001。 signal state: state_type。 end state_machine。 opcode: in std_logic_vector(2 downto 0)。 use 。 end behave。 end if。139。039。139。139。 architecture behave of mach_ctr is begin process(fetch) begin if fetch39。 ena: out std_logic)。 use 。 因 AND 和 XOR 指令為 VHDL 關鍵字,故用 AN_D 和 XO_R 代替。 在實體編寫過程中,首先定義 8 個狀態(tài)為 S0~S7,然后定義 8 個指令代碼 為常量。 (7) 第 7 個時鐘 S6,空操作。 圖 316 狀態(tài)控制器狀態(tài)轉換圖 第三章 八位 RISCCPU各模塊設計與仿真 19 (5)第 5 個時鐘 S4,若操作符為 AND、 ADD、 XOR 或 LDA,讀相應地址的數(shù)據(jù);若為 JMP,將目的地址送給程序 計數(shù)器;若為 STO,輸出累加器數(shù)據(jù)。若操作符為 HLT,則輸出信號 HLT 為高。 (3) 第 3 個時鐘 S2,空操作。指令寄存器寄存由 ROM 送來的高 8 位指令代碼。 指令周期是由 8 個時鐘周期組成,每個時鐘周期都要完成固定的操作。 狀態(tài)機控制器接受復位信號 RST,當 RST 有效時通過信號 ENA 使其為 0,輸入到狀態(tài)機中停止狀態(tài)機的工作。 rst 為高電平
點擊復制文檔內容
試題試卷相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1