计算机组成原理上机实验报告.doc,计算机组成原理第二次上机实验报告.doc
《計算機組成原理第二次上機實驗報告.doc》由會員分享,提供在線免費全文閱讀可下載,此文檔格式為doc,更多相關《計算機組成原理第二次上機實驗報告.doc》文檔請在天天文庫搜索。
1、青島理工大學實 驗 報 告實驗課程: 計算機組成原理I 實驗日期: 2015年 10月23日, 交報告日期:2015 年11月2日,成績:實驗地點:現代教育技術中心303計算機工程 學院,計算機科學與技術 專業, 班級:計算132班實驗指導教師:林孟達 批閱教師:林孟達同組學生姓名學號一、 實驗課題及內容 按照題目要求設計一個通用寄存器組的邏輯,決定外部的端口(名稱、有效電平)和內部各元件的連接,畫出系統框圖和邏輯圖,設計仿真數據,用VHDL編程和仿真。實驗內容:一、主要元件設計 1.16位寄存器 功能要求:同步并行置數,異步復位(清零),三態輸出,片選信號,讀/寫控制。 2.地址譯碼器 功能要求:3-8譯碼器。二、頂層設計 用層次結構設計的方法設計一個通用寄存器組。包括8個16位寄存器,1個地址譯碼器等元件。 功能要求:每個寄存器能夠同步并行置數,異步復位(清零),三態輸出。每個都可以。
2、(用地址)獨立訪問。 三、仿真 設計仿真波形數據,要考慮到所有可能的情況。在實驗報告中必須清楚說明仿真波形數據是怎樣設計的。 四、深入的課題 ① 上面設計的通用寄存器組,每次只能訪問一個寄存器。如果想同時訪問兩個寄存器,應該怎樣設計? ② 16位的寄存器每次讀/寫都是一個16位字,如果需要寫入的是8位的字,即將8位的字寫到16位寄存器的高8位或低8位(例如,16位寄存器A由AH和AL兩個8位的寄存器組成),讀出時,可一次讀16位。應該怎樣設計?二、 邏輯設計 1、3-8譯碼器系統框圖A0A1A2 3-8譯碼器S2S1S0 ......Y0Y6Y7端口說明:a(2-0):輸入信號 S(2-0):使能端,s0是高電平有效,s1,s2是低電平有效。 y(0-7):輸出端口3-8譯碼器邏輯函數: 2、16位寄存器系統框圖d14d15d0d1......16位寄存器chipcpresetzrw...。
3、.q0q1q14q15端口說明:d(0-15):輸入 q(0-15):輸出 cp,reset,chip,rw,z:分別是時鐘信號,異步清零信號,片選信號,讀寫控制信 號,三態輸出。3、 通用寄存器組系統框圖d0d1d14d15......s2a2s1a1s0a0rwcp 通用寄存器組resetz......q0q1q14q15端口說明: d(0-15):數據輸入 q(0-15):數據輸出 a(0-2):譯碼器的輸入 s(0-2):使能端控制 cp,z,reset,rw:分別是時鐘信號,三態輸出,異步清零,讀寫控制三、仿真設計1、3-8譯碼器:3-8譯碼器功能表輸入輸出s0 s1 s2 a2 a1 a0 y7 y6 y5 y4 y3 y2 y1 y01 0 01 0 01 0 01 0 01 0 01 0 01 0 01 0 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1。
4、 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 01 1 1 1 1 1 0 11 1 1 1 1 0 1 11 1 1 1 0 1 1 11 1 1 0 1 1 1 11 1 0 1 1 1 1 11 0 1 1 1 1 1 10 1 1 1 1 1 1 1從它的功能表可以知道輸入的數據是有限的且只有八組,故可以按照功能表對全部數據進行仿真。2、 16位寄存器:16位寄存器功能表chipcpresetzrw工作狀態1不工作01異步清零(復位)0011讀000寫000高阻態根據功能表來輸入各個端口驗證各項功能。(1)驗證無工作狀態功能:令chip=‘1’,若輸出為Z則說明其沒有工作。(2)驗證異步清零功能:使chip=‘0’且r=‘1’,接著使chip=‘0’,cp處于上升沿,reset=0,z=1,rw=‘1’。 若仿真結果是16個0則表明異步清零功能有效,且簡潔驗證了,讀。
5、功能是正確的。(3)驗證寫入寄存器的功能:使chip=‘0’且cp處于上升沿,reset=‘0’,rw=0。接著讀出數據,若讀出的數據是這之前寫入寄存器的數據則表明寫功能正確。(4)驗證讀功能:使chip=‘0’且cp處于上升沿,reset=‘0’,rw=‘1’。若仿真的結果是之前寫入寄存器的數據,則表明讀功能是正確的。3、十六位寄存器組:對十六位寄存器組,共有8個寄存器。每一個寄存器都要進行功能驗證,一、為了驗證譯碼器的正確性;二、為了驗證每個寄存器的功能是否都正確。(實際上這些寄存器都是由一個模板復制而來,之所以每個都進行驗證是為了查看每個組件之間的連接是否正確)。按照十六位寄存器的仿真設計,對每一種片選信號都進行十六位寄存器的仿真。四、實驗步驟及工具實驗步驟:1、邏輯設計 2、根據邏輯原理設計數據并得出理論結果 3、用VHDL語言編寫程序 4、啟動Quartus系統 5、建立一個工程。
6、 6、建立一個VHDL文件,輸入源程序并檢查錯誤 7、編譯并修改語法錯誤 8、建立一個波形文件 9、功能仿真和時序仿真,修改邏輯錯誤,記錄仿真波形工具:1、PC機 2、Quartus Ⅱ系統五、結果分析討論1、3-8譯碼器功能仿真結果:結果討論:從仿真圖可以看出對于每種輸入,都可以得到和功能表一致的結果。故3-8譯碼器設計是正確的。2、十六位寄存器仿真結果:結果討論:從仿真圖可以看出對于精心選擇的數據,都輸出了正確的結果。因此可以斷定該十六位寄存器的設計是正確的。3、十六位寄存器組的仿真結果:各片寄存器的仿真圖:第一片:第二片:第三片:第四片:第五片:第六片:第七片:第八片:經過功能仿真,無論片選信號選擇哪個寄存器時,由仿真圖可知都能輸出正確的結果,所以可以推斷出該通用寄存器組的設計基本是正確的。六、VHDL程序--底層設計library ieee;--3-8譯碼器use ieee.std。
7、_logic_1164.all;entity Decoder isport(a:in std_logic_vector(2 downto 0); y:out std_logic_vector(7 downto 0); s:in std_logic_vector(2 downto 0)); end Decoder;architecture behave of Decoder isbeginprocess(s,a)beginif s="100" then if a="000" then y<=""; elsif a="001" then y<=""; elsif a="010" then y<=""; elsif a="011" then y<=""; elsif a="100" then y<=""; elsif a="101" then y<=""; e。
8、lsif a="110" then y<=""; elsif a="111" then y<=""; end if;else y<="";end if;end process;end behave;library ieee;--16位寄存器use ieee.std_logic_1164.all;entity Sregister isport(cp,chip,rw,z,reset:in std_logic; d:in std_logic_vector(15 downto 0); q:out std_logic_vector(15 downto 0)); end Sregister;architecture behave1 of Sregister issignal sign:std_logic_vector(15 downto 0);beginprocess(cp,chip。
9、,rw,z,reset)begin if chip='0' then if reset='1' then sign'0'); elsif rising_edge(cp)then if rw='1'then q<=sign; else sign<=d; end if; if z='0' then q'Z'); end if; end if; else q'Z'); end if; end process; end behave1; --頂層設計 library ieee;--通用寄存器 use ieee.std_logic_1164.all; entity Usual_register is port(d:in std_logic_vector(15 downto 0); q:out std_logic_vector(15 downto 0); z,reset,cp,rw:in 。
10、std_logic; a:in std_logic_vector(2 downto 0); s:in std_logic_vector(2 downto 0)); end Usual_register; architecture behave3 of Usual_register is signal Y:std_logic_vector(7 downto 0); component Sregister port(cp,reset,chip,z,rw:in std_logic; d:in std_logic_vector(15 downto 0); q:out std_logic_vector(15 downto 0)); end component; component Decoder port(a:in std_logic_vector(2 downto 0); y:out std_lo。
11、gic_vector(7 downto 0); s:in std_logic_vector(2 downto 0)); end component; begin D0:Decoder port map (a=>a,y=>y,s=>s); G0:Sregister port map (cp=>cp,z=>z,reset=>reset,rw=>rw,q=>q,d=>d,chip=>Y(0)); G1:Sregister port map (cp=>cp,z=>z,reset=>reset,rw=>rw,q=>q,d=>d,chip=>Y(1)); G2:Sregister port map (cp=>cp,z=>z,reset=>reset,rw=>rw,q=>q。
12、,d=>d,chip=>Y(2)); G3:Sregister port map (cp=>cp,z=>z,reset=>reset,rw=>rw,q=>q,d=>d,chip=>Y(3)); G4:Sregister port map (cp=>cp,z=>z,reset=>reset,rw=>rw,q=>q,d=>d,chip=>Y(4)); G5:Sregister port map (cp=>cp,z=>z,reset=>reset,rw=>rw,q=>q,d=>d,chip=>Y(5)); G6:Sregister port map (cp=>cp,z=>z,reset=>reset,rw=>rw,q=>q,d=>d,chip=>Y(6)); G7:Sregister port map (cp=>cp,z=>z,reset=>reset,rw=>rw,q=>q,d=>d,chip=>Y(7)); end behave3;。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的计算机组成原理上机实验报告.doc,计算机组成原理第二次上机实验报告.doc的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言解析xml字符串_Python X
- 下一篇: 4由通道检测_十堰城区108处桥隧通道接