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

正文內(nèi)容

基于vhdl語(yǔ)言的8位risc-cpu的設(shè)計(jì)答辯(留存版)

  

【正文】 , ena: in std_logic。 elsif ena=39。 (2) 第 2 個(gè)時(shí)鐘 S1,與上一時(shí)鐘相比只是 PC_CLK 從 0 變?yōu)?1,故 PC 增 1;同時(shí) ROM 送來(lái)低 8 位指令代碼,指令寄存器寄存該 8 位代碼。 end mach_ctr。 entity state_machine is port(clk1, ena, zero: in std_logic。139。 halt=39。 ir_ena=39。039。 wr=39。039。039。139。039。039。039。139。139。139。039。039。 state=s6。039。 datactl_ena=39。 datactl_ena=39。 ponent state_machine port(clk1, ena, zero: in std_logic。 第三章 八位 RISCCPU各模塊設(shè)計(jì)與仿真 24 在此仿真波形圖中,復(fù)位引腳 rst 持續(xù)兩個(gè)時(shí)鐘周期高電平,啟動(dòng)電路復(fù)位。 package mypack is ponent clkgen port(clk: in std_logic。 zero: out std_logic。 opcode: in std_logic_vector(2 downto 0)。 signal pc_addr_b, ir_addr_b: std_logic_vector(12 downto 0)。當(dāng) RST 信號(hào)進(jìn)入高電平, RISCCPU 就會(huì)結(jié)束現(xiàn)行操作,并且只要 RST 停留在高電平狀態(tài),CPU 就維持在復(fù)位狀態(tài)。本課題所構(gòu)造的系 統(tǒng)符合 CPU 快速、高效、小型的發(fā)展趨勢(shì)。除讀寫(xiě)操作外, CPU 執(zhí)行最多的就是復(fù)位、啟動(dòng)操作。 end risc_cpu。 alu_out: in std_logic_vector(7 downto 0)。 end ponent。 在編寫(xiě)總程序時(shí),首先定義一個(gè)數(shù)據(jù)包,將所有的功能模塊:時(shí)鐘電路、累加器、 算術(shù)邏輯單元 、數(shù)據(jù)控制 電路、指令寄存器、狀態(tài)控制器、程序計(jì)數(shù)器和地址多路器,應(yīng)用 COMPONENT 語(yǔ)句進(jìn)行元件例化,這運(yùn)用了 IP 核的思想,即當(dāng)需要使用庫(kù)中已有的邏輯電路時(shí),只要用 COMPONENT 語(yǔ)句調(diào)用即可,而不需要在結(jié)構(gòu)體中對(duì)這些電路重復(fù)進(jìn)行定義和描述。 architecture rt1 of state_contrl is signal ena_b: std_logic。 use 。 wr=39。 wr=39。039。039。139。039。039。039。 state=s5。039。039。039。139。039。039。 pc_ena=39。039。 rd=39。 wr=39。 constant STO: std_logic_vector(2 downto 0):=110。 第三章 八位 RISCCPU各模塊設(shè)計(jì)與仿真 20 end process。 指令 HLT SKZ ADD AN_D XO_R LDA STO JMP 代碼 000 001 010 011 100 101 110 111 狀態(tài)機(jī)控制器源程序如下: library ieee。狀態(tài)機(jī)的當(dāng)前狀態(tài),由變量 STATE 記錄, STATE 的值就是當(dāng)前這個(gè)指令周期中已經(jīng)過(guò)的時(shí)鐘數(shù)。)。程序計(jì)數(shù)器PC_ADDR 將裝入目標(biāo)地址 IR_ADDR,而不是增 2。 地址多路器源程序如下: library ieee。數(shù)據(jù)控制器何時(shí)輸出累加器的數(shù)據(jù)則由狀態(tài)控制器輸出的控制信號(hào) DATACTL_ENA 決定。 end case。when accum=00000000 else 39。 opcode: in std_logic_vector(2 downto 0)。then accum=00000000。 仿真波形 如下 圖: (續(xù) ) 在此仿真波形圖中, clk1 為時(shí)鐘輸入信號(hào), ena 為使能輸入端口, rst 為 置 位端口,這里假設(shè) 在 ena=1 之前 data=00000000, ena=1 后傳輸了 1001100圖 34 指令寄存器仿真波形 第三章 八位 RISCCPU各模塊設(shè)計(jì)與仿真 10 011001 11001100、 00110011 四個(gè)數(shù)據(jù), 則當(dāng) state 為 0 時(shí),傳輸高八位,當(dāng)state 為 1 時(shí),傳輸?shù)桶宋弧?39。 begin process(clk1) variable state: std_logic:=39。高 3 位是操作碼,低 13 位是地址( CPU圖 32 時(shí)鐘發(fā)生器 仿真 波形 第三章 八位 RISCCPU各模塊設(shè)計(jì)與仿真 8 的地址總線(xiàn)為 13 位,尋址空間為 8K 字節(jié))。 end process。039。 (2) 分析指令:即指令譯碼。 數(shù)據(jù)通路主要包括累加器、程序計(jì)數(shù)器和算術(shù)邏輯單元。如果對(duì)指令系統(tǒng)作相應(yīng)的優(yōu)化,就可以從根本上快速提高處理器的執(zhí)行效率。 RISCCPU 由八大基本模塊構(gòu)成: 時(shí)鐘發(fā)生器、指令寄存器、累加器、算術(shù)邏輯單元、數(shù)據(jù)輸出控制器、地址多路器、程序計(jì)數(shù)器、狀態(tài)控制器 。 所謂硬布線(xiàn)邏輯也就是用觸發(fā)器和邏輯門(mén)直接連線(xiàn)所構(gòu)成的狀態(tài)機(jī)和組合邏輯,故產(chǎn)生控制序列的速度比用微程序控制方式快得多,因?yàn)檫@樣做省去了讀取微指令的時(shí)間。第 二 章 RISCCPU的架構(gòu)設(shè)計(jì) 3 第二章 RISCCPU的架構(gòu)設(shè)計(jì) RISCCPU 基本架構(gòu) 一個(gè)基本的 CPU 要包括三部分功能:數(shù)據(jù)的存儲(chǔ)、數(shù)據(jù)的 運(yùn)算和控制部分。這些信號(hào)送往其他部件,以控制這些部件協(xié)調(diào)工作。 entity clkgen is port(clk: in std_logic。 end if。 仿真波形如下: 指令寄存器 指令寄存器 Instruction Register 用于寄存指令。 use 。)。039。 accum:out std_logic_vector(7 downto 0))。 算術(shù) 邏輯單 元 算術(shù) 邏輯單元 ALU 的全稱(chēng)是 Arithmetic Logic Unit, 該模塊 用來(lái)執(zhí)行諸如加減乘除以及寄存器中的值之間的邏輯運(yùn)算,通常在一般的處理器上被設(shè)成一個(gè)周期 上升沿 運(yùn)行一次,這主要是由附屬于 ALU 的輸入輸出寄存器以及在 ALU 輸入處插入旁路乘法器來(lái)決定的。 constant AN_D: std_logic_vector(2 downto 0):=011。 when ADD=alu_out_latch=data+accum。 opcode 不同的值代表不同的操作 。 else ZZZZZZZZ。 end behave。 begin process(clk) begin if clk39。 圖 313 程序計(jì)數(shù)器 第三章 八位 RISCCPU各模塊設(shè)計(jì)與仿真 17 end process。 圖 316 狀態(tài)控制器狀態(tài)轉(zhuǎn)換圖 第三章 八位 RISCCPU各模塊設(shè)計(jì)與仿真 19 (5)第 5 個(gè)時(shí)鐘 S4,若操作符為 AND、 ADD、 XOR 或 LDA,讀相應(yīng)地址的數(shù)據(jù);若為 JMP,將目的地址送給程序 計(jì)數(shù)器;若為 STO,輸出累加器數(shù)據(jù)。139。 signal state: state_type。039。139。039。 halt=39。039。 datactl_ena=39。 datactl_ena=39。 ir_ena=39。 ir_ena=39。 ir_ena=39。 ir_ena=39。 wr=39。 rd=39。rd=39。 rd=39。 rd=39。 pc_ena=39。139。039。 state=s0。 library ieee。第三個(gè)時(shí)鐘時(shí),操作符不為 HLT 所以程序計(jì)數(shù)器計(jì)數(shù),指向下一個(gè)指令。 data: in std_logic_vector(7 downto 0)。 pc_addr: out std_logic_vector(12 downto 0))。 use 。 U4:alu port map(alu_clk_b, opcode_b, data, accum_b, zero_b,alu_out_b)。從 ROM 的 0000H 處開(kāi)始讀取指令并執(zhí)行相應(yīng)的操作。 本 設(shè)計(jì)的每一個(gè)層次都進(jìn)行功能仿真,這減小了設(shè)計(jì)的復(fù)雜程度并增加了設(shè)計(jì)的可靠性。 U6:datactrl port map(datactl_ena_b, alu_out_b, data)。 use 。 ponent addr_mux port(fetch: in std_logic。 圖 41 RISCCPU 封裝圖 第四章 RISCCPU的綜合及操作時(shí)序 26 ir_addr: out std_logic_vector(12 downto 0))。第五個(gè)時(shí)鐘, ALU 將從 ROM 讀取的數(shù)據(jù)和累加器的數(shù)據(jù)進(jìn)行相應(yīng)的運(yùn)算,故讀信號(hào)為 1, laod_acc 為 1。 use 。 end if。039。039。 rd=39。 wr=39。 wr=39。 wr=39。 wr=39。 ir_ena=39。 datactl_ena=39。 datactl_ena=39。 datactl_ena=39。 datactl_ena=39。 halt=39。 halt=39。039。 state=s2。 when s1=pc_clk=39。039。039。 constant SKZ: std_logic_vector(2 downto 0):=001。039。 (7) 第 7 個(gè)時(shí)鐘 S6,空操作。 end behave。139。 程序計(jì)數(shù)器 程序計(jì)數(shù)器 Program Counter 用于提供指令地址,如圖 313,以便讀取指令,指令按地址順序存放在存儲(chǔ)器中。 在此波形圖 310 中,假設(shè)累加器輸出值由 00000000 遞增,驗(yàn)證當(dāng) data_ena為 0 時(shí), data 輸出 alu_out 的值,當(dāng) data_ena 為 1 時(shí), data 輸出 ZZZZZZZZ。 數(shù)據(jù)輸出控制器 數(shù)據(jù)輸出控制器 Data Control 的作用是控制累加器數(shù)據(jù)輸出,如圖 39 由于數(shù)據(jù)總線(xiàn)是各種操作時(shí)傳送數(shù)據(jù)的公共通道,不同的情況下傳送不同的內(nèi)容。 when XO_R=alu_out_latch=data xor accum。 constant LDA: std_logic_vector(2 downto 0):=101。 算術(shù) 邏輯單元如上圖所示,其各端口功能如 下: ? ALU_CLOCK 為 ALU 的時(shí)鐘信號(hào),由時(shí)鐘發(fā)生器輸出; ? OPCODE 取自指令寄存器的高 3 位, ALU 根據(jù)輸入 OPCODE 的 8 種不同操圖 36 累加器仿真波形 圖 37 算術(shù) 邏輯單元 第三章 八位 RISCCPU各模塊設(shè)計(jì)與仿真 12 作碼分別實(shí)現(xiàn)相應(yīng)的加、與、異或、跳轉(zhuǎn)等基本操作運(yùn)算; ? DATA 輸入來(lái)自數(shù)據(jù)總線(xiàn)上的數(shù)據(jù); ? ACCUM 輸入來(lái)自累加器的一個(gè)操作數(shù); ? ALU_OUT 用來(lái)保存或輸出操作后的值; ? ZERO 用于標(biāo)志 ACCUM 是否為 0,其值為 0 時(shí)標(biāo) ZERO=1,否則 ZERO=0。 architecture art of acc is begin process(clk1, ena) begin if clk139。 end if。139。 data: in std_logic_vector(7 downto 0)。但并不是每個(gè) CLK1 的上升沿都寄存數(shù)據(jù)總線(xiàn)的數(shù)據(jù),因?yàn)閿?shù)據(jù)總線(xiàn)上有時(shí)傳輸指令,有時(shí)傳輸數(shù)據(jù)。 process(clk2) begin if clk239。 fetch: buffer std_logic:=39。該CPU 采用總線(xiàn)結(jié)構(gòu),即控制器所需的指令 和 數(shù)據(jù)通路所需的數(shù)據(jù)都是從總線(xiàn)上得到的。存儲(chǔ)器存放指令和數(shù)據(jù);數(shù)據(jù)通路包括 ALU、程序計(jì)數(shù)器等,主要功能是對(duì)操作數(shù)進(jìn)行運(yùn)算,得到結(jié)果,并產(chǎn)生程序計(jì)數(shù)器的值,作為要執(zhí)行的下一條指令的地址;控制器內(nèi)有指令寄存器,它對(duì)指令進(jìn)行譯碼,產(chǎn)生相應(yīng)的控制信號(hào),完成對(duì)存儲(chǔ)器和數(shù)據(jù)通路部分的控制。由于指令高度簡(jiǎn)約, RISC 處理器的晶體管規(guī)模普遍都很小而性能強(qiáng)大,深受超級(jí)計(jì)算機(jī)廠(chǎng)商所青睞。RISCCPU 與一般的 CPU 相比 , 通過(guò)簡(jiǎn)化指令系統(tǒng)使計(jì)算機(jī)的結(jié)構(gòu)更加簡(jiǎn)單合理,從而提高了運(yùn)算速度。 RISCCPU 優(yōu)勢(shì)與現(xiàn)實(shí)意義 RISCCPU具備的優(yōu)勢(shì) RISC 有一套優(yōu)化過(guò)的指令架構(gòu),它是根據(jù)著名的 80/20 法則所訂立。存儲(chǔ)器的地 址來(lái)源有兩個(gè):程序計(jì)數(shù)器和指令寄存器。 CPU 的作用是協(xié)調(diào)并控制計(jì)算機(jī)的各個(gè)部件執(zhí)行程序的指令序列,使其有條不紊地進(jìn)行。 end clkgen。 then clk4=not clk4。當(dāng)數(shù)據(jù)總線(xiàn)傳輸?shù)氖侵噶顣r(shí), ENA 置 1,指令寄存; 當(dāng) 數(shù)據(jù)總線(xiàn)傳輸?shù)氖菙?shù)據(jù) 時(shí) , ENA置 0,指令寄存器不工作。 end ir。 =opc_iraddrs(15 downto 8)=data。
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1