【正文】
塊用組合邏輯判斷 狀態(tài)的 邏輯輸出 , 其 VHDL代碼如下: process (clk,wr,input,start) begin //第一個進程模塊用同步時序描述狀態(tài)轉移 if wr = 39。狀態(tài)機FSM的當前狀態(tài),由變量 state記錄。因此這個模塊在整個 CPU的設計中是最關鍵的也是最難精準實現的模塊。 elsif fload =39。 LSR 指令組分為帶進位的循環(huán)左移和不帶進位的算術左移操作 。取操作數單元在數據選擇的控制信號控制下,可以選取一個或者兩個操作數輸入執(zhí)行單元。 toreg_rd=ram(conv_integer(fromrd))。 時鐘發(fā)生器的外部接口如圖 35。 通過上一章的流水線分析部分、指令時序分析部分和程序存儲器模塊分析部分可以得到,在指令寄存器模塊中,當前存放的并不是 CPU正在執(zhí)行的指令,而是下一條指令 。因為程序計數器可以尋址到 256條指令,所以程序存儲器也必需可以至少存放 128 條 16 位的指令 ,這樣只需申請一個變量 Ram,有 256個元素 ,每個元素 16 位即可。 圖 31 PC 模塊外部接口信號 圖 31 所示是從外部看的 PC 模塊的接口。第一種是在所有需要傳送數據的部件創(chuàng)建一條直接通路,采用多路選擇器或者緩沖器為那些有多個數據源的寄存器從多個可能的輸入中選擇一個,這種方案適用于規(guī)模比較小的微處理器設計。這種劃分將 CPU 的運算、執(zhí)行單元與控制部件分離開,是非常合理、自然的。取指單元和執(zhí)行單元共同構成了 CPU 的微控制單元。有些模塊是比較簡單的像指令寄存器 (IR),有些模塊則是比較難的像 ALU模塊和控制單元模塊。 CPU 整體結構即設計思想 在設計 CPU 之前整個結構的特性及由哪些模塊組成,這些模塊之間的 互連關系以及整個 CPU 的最后輸出信號等都是要事先定義好的 .。在時鐘上升沿 PC產生進入PCRAM的地址,由于 PCRAM 有反應時間,經過一段很短的時間讀出指令,在下一個時鐘上升沿到來時,指令寄存器鎖存指令,然后開始對指令進行譯碼,并產生操作數、目的存儲器/寄存器地址、寫信號及各種控制信號。 表 2 指令編碼 指令類型 指令機器碼 ADD 0001 0000 r r r r d d d d SUB 0010 0000 r r r r d d d d AND 0011 0000 r r r r d d d d OR 0100 0000 r r r r d d d d LSL 0101 0000 0000 d d d d LSR 0110 0000 0000 d d d d MOV 0111 LLLL HHHH d d d d ST 1000 0000 0000 d d d d LD 1001 0000 0000 d d d d SLEEP 1011 0000 0000 0000 山東大學威海分校畢業(yè)設計(論文) 8 指令時序分析 RISC 與流水線 指令的執(zhí)行分成兩個階段:取指階段和執(zhí)行階段。所有的指令碼都很容易譯碼。再次,該微處理器采用了硬布線邏輯代替微程序控制的方法,提高了指令的執(zhí)行速度和效 率。結構見圖 22 所示: 圖 22 馮 .諾依曼結構圖 這種結構有兩個明顯的缺點: ( 1) CPU 中控制器和運算器的速度必須與存儲器的速度相匹配; ( 2) 指令和數據的流動都通過同一條總線,使指令和數據的獨立性消弱; 目前, RISC 架構的微處理器都采用哈佛結構,這種結構具有分離地址總線的兩 個存儲器,其中一個放程序,另一個放數據,其指令和數據空間完全分開,可以同時訪問,且一次讀出,簡化控制電路,提高數據的吞吐率 [12]。 執(zhí)行指令:根據分析指令時產生的“操作命令”形成相應的操作控制序列, 通過運算器、存儲器及輸入輸出的執(zhí)行,實現每條指令的功能,其中包括對運算結果的處理及下條指令地址的形成。 第五章 CPU 的仿真驗證。 山東大學威海分校畢業(yè)設計(論文) 3 課題 工作內容 本文一共分為七章。在 20 世紀 90 年代中期之前,大多數的微處理器都采用 CISC 體系 包括 Intel 的 80x86 和 Motorola 的 6sK 系列等 [6]。 ( 4) 具有良好的可移植能力 。因此研究 8位 CPU內核具有廣泛的現實意義 ,由于其具有較高的處理性能和較少的資源占用,故具有更加廣泛的應用前景。其中 CPU是 SOC的重要組成部分,可以完成簡單的數據處理,內存的調度,中斷處理等操作。 最后 采用 QUARTUSII對設計進行了 仿真測試, 結果 表明設計實現了微處理器的主要 功能 。簡單來說, SOC是一種將多個獨立的 VLSI設計拼合在一起,來形成某一應用所需的全部功能的集成電路,以其高集成度、低功耗等優(yōu)點越來越受歡迎 [1]。 微處理器的概況 微處理器是計算機系統(tǒng)中非常之重要的核心組成部分,它用來控制計算機的各種操作過程,通常也被稱為 CPU,即中央處理器。不難看出,采用自頂向下的設計方法實際上就是基于芯片的系統(tǒng)設計方法,這種方法有助于在設計早期發(fā)現結構設計中的錯誤,提高設計成功率。 2. CISC指令集和 RISC指令集 CISC 是一種為了便于編程和提高內存訪問效率的芯片設計體系。典型的 RISC 處理器具有以下特點: ( 1) 指令功能簡單,各指令的復雜度分布均衡,有利于形成流水線; ( 2) 控制電路簡單,多采用硬連線方式來實現。研究了 CPU的整體設計,指令系統(tǒng)和時序分析以及流水線的實現。 山東大學威海分校畢業(yè)設計(論文) 4 第二章 微處理器體系結構 CPU 的功能和構成 CPU 是計算機的核心組成部分。 盡管各種 CPU 的性能指標和結構細節(jié)各不相同,但它們所能完成的基本功能相同,簡化 CPU 內部結構如圖 21 所示。這對現代微控制器應用十分重要,因為為了使掉電 后數據表不丟失,就要將它放在程序存儲器中, RISC 架構很好地解 決了這個問題。 指令集 表 1 是本文所涉及的 CPU 所有指令的一個集合 指令名稱 指令操作 影響標志位 周期 算術與邏輯類指令 ADD R1, R2 Add Two Register C 1 SUB R1, R2 Sub Two Register Z 1 AND R1, R2 And Two Register Z 1 OR R1, R2 Or Two Register Z 1 位操作指令 LSL R1 Logical Shift Left None 1 LSR R1 Logical Shift Right None 1 數據傳送類指令 MOV R1, II Move Between Register None 1 LD R1 Load Immediate from Register None 1 SD R1 Store Result to Register None 1 停機指令 SLEEP Sleep(Wait for ) None Any 山東大學威海分校畢業(yè)設計(論文) 7 尋址方式 本文指令系統(tǒng)的尋址方式為下面兩種直接尋址方式: ( 1) 單一寄存器尋址。這種指令格式包括 LD, LSL, LSR 指令。為了解決這個問題,本次設計中引入了流水線 (pipeline)操作。同時,程序計數器也是和流水線密切相關的單元。 WR 信號是系統(tǒng)的異步指令輸入信號,高電平有效。它們的輸出僅僅依賴于當前的輸入狀態(tài),沒有內部存儲功能; ( 2) 寄存器堆、臨時寄存器都是狀態(tài)單元,它的輸出不僅依賴于輸入,還有其自身內部的狀態(tài)。 系統(tǒng)中包括了很多寄存器的設計包括指令寄存器 (IR),程序計數器 (PC),這些寄存器大都在我們頂層可見的模塊的內部,系統(tǒng)的工作也可以看作就是數據在這些寄存器之間的“遷移”,也即寄存器內容的遷移。 山東大學威海分校畢業(yè)設計(論文) 12 第三章 CPU 數據通路設計 從這一章開始將詳細介紹整 個 CPU 的 細化設計模塊。下面將一一介紹數據通路的各個模塊功能及其實現。 PC_INC 控制信號來自控制單元,若 PC_INC 有效則 PC將執(zhí)行加 1 操作。當 WR 有效時,程序存儲器為寫狀態(tài),即將輸入程序 存入其輸入地址對應的存儲單元中 , 即執(zhí)行操作 ram(conv_integer(waddr)) = wdata;當 WR 為低電平時,程序存儲器處于讀狀態(tài),其將程序計數器輸出地址 PC_OUT上 對應的存儲單元中的指令輸出,即執(zhí)行操作 instruction = ram(conv_integer(pc_in))。 圖 34指令寄存器外部接口 圖 34所示,指令寄存器的指令流向是: 4位操作碼 IR指令送往控制單元已做譯碼使用,而根據不同指令分離出來的要操作的立即數 DATA、源操作寄存器RR、目的操作寄存器 RD送到寄存器堆 TRAM模塊。 將指定目的操作寄存器地址中的數據讀出并輸出。 山東大學威海分校畢業(yè)設計(論文) 16 ALU 模塊 ALU 單元即算術運算單元,是 CPU 的核心處理的單元,不但能完成算術和邏輯運算,而且很多數據都要通過 ALU 送出到輸出端口并輸出。 2 位邏輯控制輸入信號 Logic 決定一個輸入數據的邏輯操作類型,可以有 4 種不同的功能組合。 case fromlogic is 山東大學威海分校畢業(yè)設計(論文) 17 … end case。 else R=a1(7 downto 0)。為了實現控制模塊的功能,可以將該模塊細化為兩個部分,即 控制指令操作的控制器和控制狀態(tài)轉換的有限狀態(tài)機 (FSM)。 Mealy型狀態(tài)機的輸出是當前狀態(tài)和所輸入信號決定的,它的輸出是在輸入變化后立即發(fā)生的,不依賴時鐘的同步 [16]。 // 當寫信號有效時程序寫入,此時狀態(tài)機保持待機 elsif ( rising_edge(clk)) then case state is when exe= // 利用 case語句對每一個狀態(tài)建立一項 case語句的分支 If input =39。 process (state) begin //第二 個模塊用組合邏輯判斷 狀態(tài)的 邏輯輸出 case state is //當 狀態(tài)發(fā)生改變時, 利用 case語句輸出對應狀態(tài)的信號 when exe = when sp = when tj = end case。 frompc_inc : IN STD_LOGIC 。 綜合 RTL 電路圖 利用 硬件語言法構建好頂層文件 ,把所有模塊組裝成了一個整體,在對這個整體 進行 編譯和 綜合 成功后 即可對它進行功能仿真。 0111000110000010 ADD R1 , R2。 山東大學威海分校畢業(yè)設計(論文) 25 邏輯運算類指令驗證 匯編語言 機器碼 OR R1 , R2。 總結 經 過仿真測試, 本設計可以完成以下指令功能: 算術運算類指令 可以完成兩個 8位操作數的 加 ( ADD) 、減 (SUB)、與(AND)、 或 (OR)運算 并輸出結果 。 本次設計中的 CPU可 以完成 8位操作數的算術和邏輯運算、移位運算、數據的輸出和寫入操作,兩級流水線控制時序,狀態(tài)機控制狀態(tài)轉換。 山東大學威海分校畢業(yè)設計(論文) 29 參考文獻 [1]( 慈艷柯 、陳秀英、 吳孫桃等 .片上系統(tǒng)的設計技術及其研究進展 .半導體技術, 20xx, 7(26):12— 16)。 fromnrst : IN STD_LOGIC 。 wdata : in std_logic_vector(15 downto 0)。 tord : out std_logic_vector(3 downto 0)。 COMPONENT ir_ram PORT ( clk : IN STD_LOGIC 。 COMPONENT pc_ram PORT ( clk : in std_logic。電子工業(yè)出版史, 20xx [9]竇振中 .AVR 系列單片機原理和程序設計 .北京