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

正文內(nèi)容

risc-cpu畢業(yè)設(shè)計-資料下載頁

2025-09-29 12:35本頁面

【導讀】十二位微處理器以及六十四位微處理器等等。如今,我們常見的知道的CPU基。語言的能力,這對提高計算機的性能是有益的。Wason研究中心于1975年組織力量研究指令系統(tǒng)的合理性問題,因。為當時已感到,日趨龐雜的指令系統(tǒng)不但不易實現(xiàn),而且還可能降低系統(tǒng)性能。結(jié)果表明,CISC存在許多缺點。踐中用得上的指令系統(tǒng)的處理器;同時,復雜的指令系統(tǒng)必然帶來結(jié)構(gòu)的復雜性,這不但增加了設(shè)計的時間與成本還容易造成設(shè)計失誤。但也很難把CISC的全部硬件做在一個芯片上,這也妨礙單片計算機的發(fā)展。因而,針對CISC的這些弊病,帕特遜等人提出。供一些必要的指令以支持操作系統(tǒng)和高級語言。相對于CISC型CPU,RISC型CPU不僅精簡了指令系統(tǒng),還采用。目前,RISC的應(yīng)用范圍很廣泛,大到各種超級計算機、工。目前常見使用RISC的處理器包括DEC. 而CISC機器是在一條指令執(zhí)行結(jié)束后響應(yīng)中斷。馮·諾依曼的主要貢獻就是提出并實現(xiàn)了“存儲程序”的概念。限制計算機性能的瓶頸,影響了數(shù)據(jù)處理速度的提高。

  

【正文】 en JMP = alu_out=accum。 when JZ = alu_out=accum。 end case。 end if。 end process。 end behave。 指令寄存器的實現(xiàn) 指令寄存器用于寄存指令。指令寄存器將數(shù)據(jù)總線送來的指令存入高八位或者低八位寄存器中 ,但是因為數(shù)據(jù)總線上有時傳輸指令,有時傳輸數(shù)據(jù),所以由load_ir 信號控制什么時候寄存,什么時候不寄存, load_ir 信號通過 ena 口輸入到電子信息工程 053 李壽春 30 指令寄存器。 每條指令為兩個字節(jié), 16 位。高 3 位是操作碼,低 13 位是地址( CPU 的地址總線為 13 位,尋址空間 為 8K 字節(jié)),而數(shù)據(jù)總線為 8 位,所以需要取兩次,取的是高八位還是低八位由程序中的變量 state 決定。 程序: library ieee。 use 。 entity register1 is port(data: in std_logic_vector(7 downto 0)。 ena,clk1,rst:in std_logic。 opc_iraddr: out std_logic_vector(15 downto 0))。 end register1。 architecture behave of register1 is begin process(clk1) variable state: integer range 0 to 1。 begin if(clk1=39。139。 and clk139。event)then if(rst=39。139。)then opc_iraddr=0000000000000000。 state:=0。 end if。 if(ena=39。139。)then if(state=0)then opc_iraddr(15 downto 8)=data。 state:=1。 elsif(state=1)then opc_iraddr(7 downto 0)=data。 state:=0。 else opc_iraddr=XXXXXXXXXXXXXXXX。 end if。 end if。 end if。 end process。 end behave。 電子信息工程 053 李壽春 31 十進制( 72)→二進制( 01001000) 二進制( 0100100000000000)→十進 制( 18432) 二進制( 0100100001001000)→十進制( 18504) 累加器的實現(xiàn) 累加器用于存放當前的結(jié)果,也是雙目運算中的一個數(shù)據(jù)來源,復位后,累加器的值為零。當累加器通過 ena 口收到來自 CPU 狀態(tài)控制器 load_acc 信號時,在 clk1 時鐘上升沿時就收到來自數(shù)據(jù)總線的數(shù)據(jù)。 library ieee。 use 。 entity accumulator is port(data: in std_logic_vector(7 downto 0)。 ena,clk1,rst:in std_logic。 accum:out std_logic_vector(7 downto 0))。 end accumulator。 architecture behave of accumulator is begin process(clk1) begin if(clk1=39。139。 and clk139。event)then if(rst=39。139。)then accum=00000000。 elsif(ena=39。139。)then accum=data。 end if。 end if。 end process。 電子信息工程 053 李壽春 32 end behave。 數(shù)據(jù)控制器的實現(xiàn) 數(shù)據(jù)控制器的作用是控制累加器數(shù)據(jù)輸出,由于數(shù)據(jù)總線是各種操作時要傳送數(shù)據(jù)的公共通道,不同的情況下傳送不同的內(nèi)容。有時要傳輸指令,有時要傳送 RAM 區(qū)或接口的數(shù)據(jù)。累加器的數(shù)據(jù)只有在需要往 RAM 區(qū)或端口寫時才允許輸出,否則應(yīng)呈現(xiàn)高阻態(tài),以允許其它部件使用數(shù)據(jù)總線。所以任何部件往總線上輸出數(shù)據(jù)時,都需要一控制信號。而此控制信號的啟、停則由 CPU 狀態(tài)控制器輸出的 各信號控制決定。數(shù)據(jù)控制器何時輸出累加器的數(shù)據(jù)則由狀態(tài)控制器輸出的控制信號 datactl_ena 決定。 程序: library ieee。 use 。 entity datactl is port(data_in:in std_logic_vector(7 downto 0)。 data_ena:in std_logic。 data_out:out std_logic_vector(7 downto 0))。 end datactl。 architecture behave of datactl is begin data_out=ZZZZZZZZ when data_ena=39。039。 else data_in when data_ena=39。139。 end behave。 電子信息工程 053 李壽春 33 地址多路器的實現(xiàn) 地址多路器用于選擇輸出的地址是 PC(程序計數(shù))地址還是數(shù)據(jù) /端口地址。每個指令周期的前 4 個時鐘周期用于從 ROM 中讀取指令,輸出的應(yīng)是 PC 地址; 后 4 個時鐘周期用于對 RAM 或端口的讀寫,該地址由指令給出。地址的選擇輸出信號由時鐘信號的 8 分頻 信號 fetch 提供。 程序: library ieee。 use 。 entity addr is port(fetch:in std_logic。 ir_addr,pc_addr:in std_logic_vector(12 downto 0)。 address:out std_logic_vector(12 downto 0))。 end addr。 architecture behave of addr is begin address=pc_addr when fetch=39。139。 else ir_addr when fetch=39。039。 end behave。 程序計數(shù)器的實現(xiàn) 程序計數(shù)器用于提供指令地址,以便讀取指令。指令按地址順序存放在存儲器中。有兩種途徑可以形成指令地址:其一是順序執(zhí)行的情況,其二是遇到要改變順序執(zhí)行程序的情況,像執(zhí)行 JMP、 JZ 指令后需要形成新的指令地址。 程序計數(shù)器復位后,指令指針為零,所以 CPU 重啟后將從 ROM 的零地址開始讀取指令并執(zhí)行。每條指令執(zhí)行完需要兩個時鐘,這時 pc_addr 已 被增 2,指向下一條指令(因為每條指令占用兩個字節(jié))。如果正執(zhí)行的是跳轉(zhuǎn)指令 JMP 或零轉(zhuǎn)移指令 JZ(且累加器輸出為零),這時 CPU 狀態(tài)控制器將會輸出 load_pc 信號,通過 load口進入程序計數(shù)器。程序計數(shù)器( pc_addr)將裝入目標地址( ir_addr),電子信息工程 053 李壽春 34 而不是增 2.。 程序: library ieee。 use 。 use 。 entity counter is port(load,clk,rst:in std_logic。 ir_addr:in std_logic_vector(12 downto 0)。 pc_addr:buffer std_logic_vector(12 downto 0))。 end counter。 architecture behave of counter is begin process(clk) begin if(clk=39。139。 and clk39。event)then if(rst=39。139。)then pc_addr=0000000000000。 elsif(load=39。139。)then pc_addr=ir_addr。 else pc_addr=pc_addr+1。 end if。 end if。 end process。 end behave。 時鐘發(fā)生器的實現(xiàn) 時鐘發(fā)生器 clkgen 利用外來時鐘信號 clk 生成時鐘。 電子信息工程 053 李壽春 35 library ieee。 use 。 entity clkgen is port(clk:in std_logic。 alu_clk:out std_logic。 fetch,clk1:buffer std_logic)。 end clkgen。 architecture clkgen of clkgen is signal clk2:std_logic:=39。039。 signal clk4:std_logic:=39。139。 begin clk1= not clk。 alu_clk= clk2 and clk4 and (not fetch)。 process(clk1) begin if(clk1=39。039。 and clk139。event)then clk2= not clk2。 end if。 end process。 process(clk2) begin if(clk2=39。139。 and clk239。event)then clk4= not clk4。 end if。 end process。 process(clk4) begin if(clk4=39。039。 and clk439。event)then fetch= not fetch。 end if。 end process。 end clkgen。 電子信息工程 053 李壽春 36 CPU 內(nèi)部 RAM 將 RAM 集成到 cpu 內(nèi)部。 library ieee。 use 。 entity ram is port(read,write,ena:in std_logic。 data,ramspace:inout std_logic_vector(7 downto 0))。 end ram。 architecture ram of ram is begin process(ena,read,write) begin if(read=39。139。 and ena=39。139。)then data=ramspace。 else data=ZZZZZZZZ。 end if。 if(write=39。139。)then ramspace=data。 end if。 end process。 end ram。 電子信息工程 053 李壽春 37 地址譯碼器 選擇 RAM 或 ROM: 1FFFH1800H RAM 17FFH0000H ROM library ieee。 use 。 entity addr_decode is port(addr:in std_logic_vector(12 downto 0)。 rom_ena,ram_ena:out std_logic)。 end addr_decode。 architecture addr_decode of addr_decode is begin process(addr) begin if(addr=1100000000000)then rom_ena=39。039。 ram_ena=39。139。 else rom_ena=39。139。 電子信息工程 053 李壽春 38 ram_ena=39。039。 end if。 end process。 end addr_decode。 電子信息工程 053 李壽春 39 6 頂層設(shè)計 調(diào)用第五章中設(shè)計的底層模塊,按照下圖用原理圖法設(shè)計頂層模塊。 電子信息工程 053 李壽春 40
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1