版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 計(jì)算機(jī)組成原理</b></p><p><b> 課程設(shè)計(jì)</b></p><p> 指導(dǎo)教師: XXXX </p><p> 學(xué)生班級: XXX </p><p> 學(xué)生姓名: XX </p><p>
2、學(xué) 號: XX </p><p> 班內(nèi)序號: XX </p><p> 課設(shè)日期:2012/12/17~2012/12/28</p><p><b> 目 錄</b></p><p> 設(shè)計(jì)目的·····
3、183;·································1</p><p
4、> 設(shè)計(jì)要求···································
5、····1</p><p> 設(shè)計(jì)方案····························
6、···········1</p><p> 較詳細(xì)的設(shè)計(jì)過程····················
7、183;··········2</p><p> 編程與調(diào)試程序方法的介紹····················
8、···19</p><p> 結(jié)果及分析····························
9、3;········20</p><p> 收獲、體會及建議·······················
10、;········21</p><p><b> 一、設(shè)計(jì)目的</b></p><p> 1. 主要掌握微程序控制結(jié)構(gòu)計(jì)算機(jī)的設(shè)計(jì)方法,通過對機(jī)器指令和相對應(yīng)微程序的設(shè)計(jì),加深對微程序控制器的理解,加深對微程序設(shè)計(jì)特點(diǎn)的了解,加深對計(jì)算機(jī)各部件的理解以及對整機(jī)結(jié)構(gòu)的理解。</p&
11、gt;<p> 2.掌握幾種尋址方式的控制執(zhí)行過程。</p><p> 3.了解多累加器計(jì)算機(jī)的特點(diǎn)。</p><p> 4.熟悉VHDL語言的編程。</p><p><b> 設(shè)計(jì)要求</b></p><p> 1.硬件設(shè)計(jì),包括運(yùn)算器、寄存器、寄存器、微程序控制器的VHDL描述。</p&
12、gt;<p> 2.軟件設(shè)計(jì),包括指令系統(tǒng)設(shè)計(jì)及應(yīng)用程序的設(shè)計(jì)。</p><p> 3.硬件和軟件聯(lián)合調(diào)試,利用設(shè)計(jì)的模型計(jì)算機(jī)執(zhí)行應(yīng)用程序,通過數(shù)碼管顯示結(jié)果。 </p><p><b> 三、設(shè)計(jì)方案</b></p><p> 1.首先設(shè)計(jì)整機(jī)邏輯框圖,并分析各主要部件中所使用的關(guān)鍵器件,徹底理解主要芯片的工作原理。&
13、lt;/p><p> 根據(jù)設(shè)計(jì)要求,對實(shí)驗(yàn)儀硬件模塊進(jìn)行邏輯剪輯組合,便可設(shè)計(jì)出該實(shí)驗(yàn)計(jì)算機(jī)的整機(jī)邏輯框圖。為利于調(diào)試,應(yīng)在邏輯框圖上表明各器件的控制信號及必要的輸出信號。</p><p> 2.指令系統(tǒng)和指令執(zhí)行流程設(shè)計(jì)</p><p><b> ① 指令系統(tǒng)</b></p><p> 需確定實(shí)驗(yàn)計(jì)算機(jī)的指令系統(tǒng)具
14、體由哪里指令組成,包括哪幾種類型指令,指令操作數(shù)有哪幾種尋址方式,以及指令編碼等。</p><p><b> ② 指令執(zhí)行流程</b></p><p> 應(yīng)根據(jù)實(shí)驗(yàn)計(jì)算機(jī)整機(jī)邏輯圖來設(shè)計(jì)指令系統(tǒng)中每條指令的執(zhí)行流程。</p><p> 一條指令從內(nèi)存取出到執(zhí)行完,需要若干個機(jī)器周期(節(jié)拍)。任何指令的第一個機(jī)器周期都是“取指令周期”,或稱
15、為公操作周期。而一條指令共需幾個機(jī)器周期取決于指令在機(jī)內(nèi)實(shí)現(xiàn)的復(fù)雜程度。</p><p> 3.微操作控制信號和微程序設(shè)計(jì)</p><p> ① 微操作控制信號及其實(shí)現(xiàn)方法</p><p> 綜合實(shí)驗(yàn)計(jì)算機(jī)指令系統(tǒng)各指令執(zhí)行流程中所涉及到的微操作控制信號,統(tǒng)計(jì)總共需要多少個微控制信號,每個信號的有效性,決定這些信號中哪些由軟件(微指令)直接產(chǎn)生,哪些需用硬件實(shí)
16、現(xiàn)。</p><p> ?、?設(shè)計(jì)微指令格式,微指令由32位組成,設(shè)計(jì)出每位微操作的定義。</p><p> ?、?確定微程序控制方式</p><p> 設(shè)計(jì)任務(wù)包括設(shè)計(jì)各微程序入口地址的形成方法和控存的順序控制(即下地址形成)方法。</p><p><b> 編寫各指令的微程序</b></p><
17、;p> 根據(jù)指令流程和微指令格式仔細(xì)地逐條填寫微指令各碼位。</p><p> 為減少填寫錯誤,可邊把本條微指令用到的微碼(微操作控制信號)按預(yù)定的有效性填入,檢查無誤后,再對本條微指令用不到的微碼(微操作控制信號)填入與預(yù)定的有效性相反的代碼,核對無誤后,最后將這32位微碼縮寫成8位十六進(jìn)制微指令。</p><p><b> 4.設(shè)計(jì)接線表</b><
18、;/p><p> 要仔細(xì)設(shè)計(jì)接線表,因?yàn)樗墙M裝計(jì)算機(jī)的依據(jù)。</p><p> ① 為了避免遺漏,應(yīng)按模塊逐個歸納整理,明確各模塊中器件各控制信號的處理方法。</p><p> ② 對于模塊中不用的器件,也應(yīng)有所處理。</p><p><b> 較詳細(xì)的設(shè)計(jì)過程</b></p><p>
19、先熟悉課程設(shè)計(jì)任務(wù)。</p><p> 實(shí)現(xiàn)基本門電路。利用如右圖所示軟件,啟動,建立</p><p> 一個新工程。具體操作步驟,參考《第二章 電路生成與下載</p><p><b> 步驟.ppt》</b></p><p> 最后,我們可以得到如下圖。</p><p> 電路生成結(jié)束
20、,再來實(shí)現(xiàn)電路的下載。啟動桌面圖標(biāo),</p><p> 選擇下載配置,加載下載文件,再實(shí)現(xiàn)電路下載。</p><p><b> 可得下圖:</b></p><p> 熟練掌握VHDL語言。</p><p> 用VHDL描述計(jì)算機(jī)各部件,包括存儲器的VHDL描述、寄存器的VHDL描述、運(yùn)算器的VHDL描述以及總線的
21、VHDL描述。</p><p> 存儲器的VHDL描述</p><p> a.存儲器的硬件描述圖</p><p> b.存儲器實(shí)驗(yàn)過程與信號</p><p> 首先利用開關(guān)S0~S7設(shè)置一個8位的數(shù)據(jù),用于寫入內(nèi)存時使用。</p><p> 第二步,利用開關(guān)S8、S9的組合生成一個4個字節(jié)的內(nèi)存,內(nèi)存地址如下
22、:</p><p> 第三步,當(dāng)S10=0 AND S11=1時,發(fā)出寫內(nèi)存信號,將開關(guān)S0~S7設(shè)置的8位數(shù)據(jù)寫入由開關(guān)S8、S9的組合指定的內(nèi)存地址單元。</p><p> 第四步,當(dāng)S10=1 AND S11=0時,發(fā)出讀內(nèi)存信號,將由開關(guān)S8、S9的組合指定的內(nèi)存地址單元中的數(shù)據(jù)讀出,由發(fā)光二極管L9~L12顯示。</p><p> c.存儲器的VHD
23、L描述</p><p> Library IEEE;</p><p> use IEEE.std_logic_1164.all;</p><p> use IEEE.std_logic_unsigned.all;</p><p> use IEEE.std_logic_arith.all; </p><p>
24、 entity busv1 is</p><p><b> Port (</b></p><p> CI: buffer std_logic_vector(19 downto 0);</p><p> CO: in std_logic_vector(11 downto 0)</p><p><b>
25、);</b></p><p> end busv1;</p><p> architecture busv1_behav of busv1 is</p><p> signal mux:std_logic_vector(1 downto 0);</p><p> signal WR,RD:std_logic;</p&
26、gt;<p><b> begin</b></p><p> mux <= CO(9 downto 8);</p><p> RD <= CO(11);</p><p> WR <= CO(10);</p><p> CI( 11 downto 0 ) <= CO(11 d
27、ownto 0);</p><p> process (WR,RD) </p><p> VARIABLE TMP1,TMP2,TMP3,TMP4:std_logic_vector(7 downto 0);</p><p><b> begin</b></p><p> if (WR='0'and
28、 RD='1') then --寫內(nèi)存</p><p> case mux is </p><p> when "00" => TMP1 := CO(7 downto 0);--寫入地址0號</p><p> when "01" => TMP2 := CO(7 downto 0);
29、--寫入地址1號</p><p> when "10" => TMP3 := CO(7 downto 0);--寫入地址2號</p><p> when others => TMP4 := CO(7 downto 0);--寫入地址3號</p><p><b> end case;</b><
30、/p><p> elsif (WR='1' and RD='0') then --讀內(nèi)存</p><p> case mux is</p><p> when "00" => CI(19 downto 12) <= TMP1;--讀地址0號</p><p> when
31、"01" => CI(19 downto 12)<= TMP2;--讀地址1號</p><p> when "10" => CI(19 downto 12) <= TMP3;--讀地址2號</p><p> when others => CI(19 downto 12)<= TMP4;--讀地址3號
32、</p><p><b> end case;</b></p><p><b> end if;</b></p><p> end process; </p><p> end busv1_behav;</p><p> 寄存器的VHDL描述</p>
33、<p> a.寄存器的硬件描述圖</p><p> b.寄存器實(shí)驗(yàn)過程與信號</p><p> 首先利用開關(guān)S0~S7設(shè)置一個8位的數(shù)據(jù),寄存在74LS244A,使開關(guān)S13(U244AOE)為低電平,使寄存在74LS244中的數(shù)據(jù)向總線輸出。</p><p> 第二步,利用S8~S10的組合在R~0R7中選擇一個寄存器,選擇表如下:</p
34、><p> 第三步,當(dāng)WRE(寫寄存器)脈沖信號從0變1時,將總線上的數(shù)據(jù)寫入某寄存器。</p><p> 第四步,當(dāng)RDE(讀寄存器)脈沖信號從0變1時,將某寄存器的值輸出到74LS244B。</p><p> c.計(jì)算機(jī)部件實(shí)驗(yàn)之寄存器的VHDL描述</p><p> library IEEE;</p><p>
35、; use IEEE.STD_LOGIC_1164.ALL;</p><p> use IEEE.STD_LOGIC_ARITH.ALL;</p><p> use IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> -- Uncomment the following lines to use the declarations t
36、hat are</p><p> -- provided for instantiating Xilinx primitive components.</p><p> --library UNISIM;</p><p> --use UNISIM.VComponents.all;</p><p> entity jicunqi i
37、s</p><p><b> port(</b></p><p> CI: inout std_logic_vector(12 downto 0);</p><p> CO: in std_logic_vector(14 downto 0)</p><p><b> );</b></p
38、><p> end jicunqi;</p><p> architecture Behavioral of jicunqi is</p><p> signal RS:std_logic_vector(2 downto 0);</p><p> signal R0,R1,R2,R3,R4,R5,R6,R7:std_logic_vecto
39、r(7 downto 0);</p><p> signal WRE,RDE,U244AOE,U244BOE:std_logic;</p><p> signal U244A,U244B:std_logic_vector(7 downto 0);</p><p> signal DBB,DBX:std_logic_vector(7 downto 0);<
40、/p><p> constant bz:std_logic_vector:="ZZZZZZZZ";</p><p> Function sizeIt(a:std_logic;len:integer)return std_logic_vector is</p><p> variable rep:std_logic_vector(len-1 do
41、wnto 0);</p><p> begin for i in rep'range loop rep(i):=a;end loop; return rep;</p><p> end sizeIt;</p><p><b> begin</b></p><p> --Define three-state
42、 ports</p><p> U244A <= CO(7 downto 0);</p><p> DBX<= (SizeIt(U244AOE,8) and U244A) or (SizeIt(U244BOE,8) and U244B);</p><p> CI(7 downto 0) <= DBX when ((U244AOE or U2
43、44BOE)='1') else bz;</p><p> DBB <= CI(7 downto 0);</p><p> RS <= CO(10 downto 8);</p><p> process (WRE,RDE) begin</p><p> if(WRE'event and WRE=
44、39;1') then-- 寫寄存器</p><p> case RS is</p><p> when "000"=>R0<=DBB(7 downto 0);</p><p> when "001"=>R1<=DBB(7 downto 0);</p><p&g
45、t; when "010"=>R2<=DBB(7 downto 0);</p><p> when "011"=>R3<=DBB(7 downto 0);</p><p> when "100"=>R4<=DBB(7 downto 0);</p><p>
46、when "101"=>R5<=DBB(7 downto 0);</p><p> when "110"=>R6<=DBB(7 downto 0);</p><p> when others=>R7<=DBB(7 downto 0); </p><
47、p><b> end case;</b></p><p><b> end if;</b></p><p> if (RDE'event and RDE='1') then-- 讀寄存器</p><p> case RS is</p><p> when
48、"000" => U244B <= R0;</p><p> when "001" => U244B <= R1;</p><p> when "010" => U244B <= R2;</p><p> when "011" => U24
49、4B <= R3;</p><p> when "100" => U244B <= R4;</p><p> when "101" => U244B <= R5;</p><p> when "110" => U244B <= R6;</p>&
50、lt;p> when others => U244B <= R7; </p><p><b> end case;</b></p><p><b> end if;</b></p><p> end process; </p><p> U244BOE <=
51、CO(14);</p><p> U244AOE <= CO(13);</p><p> WRE <= CO(11);</p><p> RDE <= CO(12);</p><p> CI(12 downto 8) <= CO(12 downto 8);</p><p> end
52、 Behavioral;</p><p> 運(yùn)算器的VHDL描述</p><p> a.運(yùn)算器的硬件描述圖</p><p> b.運(yùn)算器實(shí)驗(yàn)過程與信號</p><p> 首先利用開關(guān)S0~S7設(shè)置一個8位的數(shù)據(jù),寄存在74LS244A,使開關(guān)S13(U244AOE)為低電平,使寄存在74LS244中的數(shù)據(jù)向總線輸出。L13反映S13的
53、狀態(tài)。在總線上的數(shù)據(jù)可以通過L0~L7看到。</p><p> 第二步,把總線上的數(shù)據(jù)送入74LS377保存,當(dāng)S14為低電平(U377EN=0)并且S15有一個脈沖信號時從它輸出送ALU的A端。</p><p> 第三步,利用開關(guān)S0~S7設(shè)置一個8位的數(shù)據(jù),寄存在74LS244A,使開關(guān)S13(U244AOE)為低電平,使寄存在74LS244中的數(shù)據(jù)向總線輸出。L13反映S13的狀
54、態(tài)。在總線上的數(shù)據(jù)可以通過L0~L7看到。</p><p> 第四步,當(dāng)S16、S17都為1時,控制74LS373從總線接收數(shù)據(jù),寄存。當(dāng)當(dāng)S16為1、S17為0時,控制74LS373中的數(shù)據(jù)送ALU的B端。</p><p> 第五步,利用S8~S10的組合在8種計(jì)算中選擇一個進(jìn)行計(jì)算,選擇表如下:(L8~L10反映S8~S10的狀態(tài),CIN由開關(guān)S11確定,L11反映S11的值)。&
55、lt;/p><p> 計(jì)算結(jié)束后,運(yùn)算結(jié)果F送74LS244B,L15反映向高位的進(jìn)位COUT。</p><p> 第六步,當(dāng)S12為0時(L12反映S11的值),將74LS244B中的值送總線,一次運(yùn)算結(jié)束。</p><p> c.計(jì)算機(jī)部件實(shí)驗(yàn)之運(yùn)算器的VHDL描述</p><p> library IEEE;</p>
56、<p> use IEEE.STD_LOGIC_1164.ALL;</p><p> use IEEE.STD_LOGIC_ARITH.ALL;</p><p> use IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> -- Uncomment the following lines to use the declar
57、ations that are</p><p> -- provided for instantiating Xilinx primitive components.</p><p> --library UNISIM;</p><p> --use UNISIM.VComponents.all;</p><p> entity y
58、unsuan is</p><p><b> port(</b></p><p> --DB:inout std_logic_vector(7 downto 0);</p><p> CI: inout std_logic_vector(15 downto 0);</p><p> CO: in std_logi
59、c_vector(17 downto 0)</p><p><b> );</b></p><p> end yunsuan;</p><p> architecture Behavioral of yunsuan is</p><p> signal U377Q:std_logic_vector(7 downt
60、o 0);</p><p> signal U373Q,U244A,U244B:std_logic_vector(7 downto 0);</p><p> signal DBB,DBX:std_logic_vector(7 downto 0);</p><p> signal U377CLK,U377EN,U373GT,U373OE,U244AOE,U244
61、BOE: std_logic;</p><p> signal FA,FB,FF:std_logic_vector(8 downto 0);</p><p> signal S:std_logic_vector(2 downto 0);</p><p> signal CIN,COUT:std_logic;</p><p> co
62、nstant bz:std_logic_vector:="ZZZZZZZZ";</p><p> -- sizeIt replicates a value to an array of specific length.</p><p> Function sizeIt(a: std_Logic; len: integer) return std_logic_vect
63、or is</p><p> variable rep: std_logic_vector( len-1 downto 0);</p><p> begin for i in rep'range loop rep(i) := a; end loop; return rep;</p><p> end sizeIt;</p><p&
64、gt;<b> begin</b></p><p> --Define 74377</p><p> process (U377CLK) begin</p><p> if (U377CLK'event and U377CLK='0') then</p><p> if (U377EN=
65、'0') then U377Q <= DBB;</p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process;</p><p> --Define 74373</p><
66、p> U373Q <= DBB when (U373GT='1'and U373OE='0') else ("11111111" and U373Q);</p><p> --define the ALU </p><p> FA<= '0'&U377Q;</p>
67、<p> FB<= '0'&U373Q; </p><p> FF<= FA + CIN when S ="000" else </p><p> FA - CIN when S ="001" else</p><p> FA or FB when S =&q
68、uot;010" else</p><p> FA and FB when S ="011" else</p><p> FA + FB + CIN when S ="100" else</p><p> FA - FB - CIN when S ="101" else </p
69、><p> FA * FB when S ="110" else</p><p> FA xor FB when S ="111"; </p><p> COUT<=FF(8);</p><p> U244B <= FF(7 downto 0); </p>&l
70、t;p> --Define three-state ports</p><p> U244A <= CO(7 downto 0);</p><p> DBX<= (SizeIt(U244AOE,8) and U244A) or (SizeIt(U244BOE,8) and U244B);</p><p> CI(7 downto 0) &
71、lt;= DBX when ((U244AOE or U244BOE)='1') else bz;</p><p> DBB <= CI(7 downto 0);</p><p> --CI(7 downto 0) is the BUS</p><p> CIN <= CO(11);</p><p&g
72、t; U244BOE <= CO(12);</p><p> U244AOE <= CO(13);</p><p> U377EN<= CO(14);</p><p> U377CLK<= not CO(15) or U377EN;</p><p> U373OE<= CO(16);&l
73、t;/p><p> U373GT<= CO(17);</p><p> S(2 downto 0) <= CO(10 downto 8);</p><p> CI(14 downto 8) <= CO(14 downto 8);</p><p> CI(15) <= COUT;</p><
74、p> end Behavioral;</p><p><b> 總線的VHDL描述</b></p><p> a.總線的硬件描述圖</p><p> b.總線實(shí)驗(yàn)過程與信號</p><p><b> 實(shí)驗(yàn)設(shè)計(jì):</b></p><p> 使用VHDL來完成本
75、實(shí)驗(yàn)時,需注意以下問題:</p><p> 1).透明鎖存7應(yīng)使用組合電路實(shí)現(xiàn)。</p><p> 2).XC2S150的RAM應(yīng)外加三態(tài)門。</p><p> 3).RAM,244,373,374四個三態(tài)門可用一個多路開關(guān)加一個三態(tài)門構(gòu)成。</p><p><b> 實(shí)驗(yàn)步驟</b></p>&l
76、t;p> 1).輸入并編譯生成BIT文件,下載到XC2S150中。</p><p> 2).從開關(guān)通過244把數(shù)據(jù)(如10010110)輸入到373中。</p><p> 3). 從開關(guān)通過244把數(shù)據(jù)(如10100101)輸入到374中。</p><p> 4).把373的數(shù)據(jù)傳送到RAM中。</p><p> 5).把37
77、4的數(shù)據(jù)寫到373中。</p><p> 6).把RAM的數(shù)據(jù)傳送到374中。</p><p> 7).通過377檢查373和374的內(nèi)容。</p><p> 首先利用開關(guān)S0~S7設(shè)置一個8位的數(shù)據(jù),寄存在74LS244A,使開關(guān)S13(U244AOE)為低電平,使寄存在74LS244中的數(shù)據(jù)向總線輸出。</p><p> 第二步,
78、利用S8~S10的組合在R~0R7中選擇一個寄存器,選擇表如下:</p><p> 第三步,當(dāng)WRE(寫寄存器)脈沖信號從0變1時,將總線上的數(shù)據(jù)寫入某寄存器。</p><p> 第四步,當(dāng)RDE(讀寄存器)脈沖信號從0變1時,將某寄存器的值輸出到74LS244B。</p><p> c.計(jì)算機(jī)部件實(shí)驗(yàn)之總線的VHDL描述</p><p&g
79、t; Library IEEE;</p><p> use IEEE.std_logic_1164.all;</p><p> use IEEE.std_logic_unsigned.all;</p><p> use IEEE.std_logic_arith.all; </p><p> entity busv1 is</
80、p><p><b> Port (</b></p><p> DB:inout std_logic_vector(15 downto 0);</p><p> AB:buffer std_logic_vector(15 downto 0);</p><p> MUX: in std_logic_vector(0 to
81、 2);</p><p> CLKG,CLK,RESET,RUN: in std_logic;</p><p> CI: inout std_logic_vector(31 downto 0);</p><p> CO: in std_logic_vector(31 downto 0);</p><p> CWR,CRD,IOW,IO
82、R,CTRL1,CTRL2,CTRL3,CTRL4,MCLK: buffer std_logic;</p><p> PRIX,KRIX:in std_logic</p><p><b> );</b></p><p> end busv1;</p><p> architecture busv1_behav o
83、f busv1 is</p><p> signal U377Q:std_logic_vector(7 downto 0);</p><p> signal U374Q:std_logic_vector(7 downto 0);</p><p> signal U373Q,U244B:std_logic_vector(7 downto 0);</p&g
84、t;<p> signal TADR:std_logic_vector(8 downto 0);</p><p> signal DBB,DBX,DBY:std_logic_vector(7 downto 0);</p><p> signal U377CLK,U377EN,U374CLK,U374OE,U373GT,U373OE,U244OE: std_logic;
85、</p><p> signal TCLK,MWR,MEN,logic0,CLKX,MOE: std_logic;</p><p> constant bz: std_logic_vector:="ZZZZZZZZ";</p><p> -- sizeIt replicates a value to an array of specific
86、 length.</p><p> Function sizeIt(a: std_Logic; len: integer) return std_logic_vector is</p><p> variable rep: std_logic_vector( len-1 downto 0);</p><p> begin for i in rep'ra
87、nge loop rep(i) := a; end loop; return rep;</p><p> end sizeIt;</p><p> component RAMB4_S8</p><p> port (WE,EN,RST,CLK: in std_logic;</p><p> ADDR: in std_logic_ve
88、ctor(0 to 8);</p><p> DI: in std_logic_vector(0 to 7);</p><p> DO: out std_logic_vector(0 to 7));</p><p> end component;</p><p> component IBUFG</p><p>
89、; port (I:in std_logic;O:out std_logic);</p><p> end component;</p><p><b> begin</b></p><p> CLKD:IBUFG</p><p> port map (I => CLKG,O => CLKX);&l
90、t;/p><p> --Define RAM</p><p> TADR(8)<= '0';</p><p> TADR(7)<= '0';</p><p> TADR(6) <= '0';</p><p> TADR(5 downto 0)
91、 <= CO(22 downto 17);</p><p> TCLK<= CLKX;</p><p> logic0 <= '0';</p><p> TRAM1: RAMB4_S8</p><p> port map (WE =>MWR, EN=>MEN,RST=>logic0
92、,CLK=>TCLK,</p><p> ADDR=>TADR,DI=>DBB(7 downto 0),DO=>DBY(7 downto 0));</p><p> --Define 74377</p><p> process (U377CLK) begin</p><p> if (U377CLK'
93、event and U377CLK='0') then</p><p> if (U377EN='0') then U377Q <= DBB;</p><p><b> end if;</b></p><p><b> end if;</b></p><p&g
94、t; end process;</p><p> --Define 74374</p><p> process (U374CLK) begin</p><p> if (U374CLK'event and U374CLK='0') then U374Q <= DBB;</p><p><b>
95、 end if;</b></p><p> end process;</p><p> --Define 74373</p><p> U373Q <= DBB when (U373GT='1') else ("11111111" and U373Q); </p><p> --
96、U373Q <= (SizeIt(U373GT,8) and DBB) or (SizeIt(not U373GT,8) and U373Q);</p><p> --Define three-state ports</p><p> U244B <= CO(7 downto 0);</p><p> DBX<= (SizeIt(U374O
97、E,8) and U374Q) or (SizeIt(U373OE,8) and U373Q)</p><p> or (SizeIt(U244OE,8) and U244B) or (SizeIt(MOE,8) and DBY);</p><p> CI(7 downto 0) <= DBX when ((U374OE or U373OE or U244OE or MOE)=&
98、#39;1') else bz;</p><p> DBB <= CI(7 downto 0);</p><p> --CI(7 downto 0) is the BUS</p><p> --Display 74377</p><p> CI(15 downto 8) <= U377Q;</p>&
99、lt;p> --Control signals</p><p> MOE <= CO(23);</p><p> MWR<= CO(16);</p><p> MEN<= CO(15);</p><p> U377EN<= CO(14);</p><p> U244O
100、E<= CO(13);</p><p> U373OE<= CO(12);</p><p> U373GT<= CO(11);</p><p> U374CLK<= not CO(10) or CLK;</p><p> U374OE<= CO(9);</p><p>
101、 U377CLK<= not CO(8) or U377EN;</p><p> --Display control signals</p><p> --CI(24 downto 16) <= CO(16 downto 8);</p><p> CI(23 downto 16) <= DBY(7 downto 0);</p&
102、gt;<p> CI(24) <= CO(8);</p><p> --Connect all unused pins</p><p> IOR <= '1';</p><p> IOW<= '1';</p><p> CRD<= '1'
103、;;</p><p> CWR<= '1';</p><p> MCLK <=CLK;</p><p> CTRL2 <= '1';</p><p> CTRL3 <= '1';</p><p> CTRL4 <= '
104、1';</p><p> CTRL1 <= '1';</p><p><b> AB <= DB;</b></p><p> CI(31 downto 29) <= MUX;</p><p> CI(28) <= RESET;</p><p>
105、; CI(27) <= PRIX;</p><p> CI(26) <= KRIX;</p><p> CI(25) <= RUN or CO(31) or CO(30) or CO(29) or CO(28) </p><p> or CO(27) or CO(26) or CO(25) or CO(24);</p><
106、;p> end busv1_behav;</p><p><b> 電路設(shè)計(jì)</b></p><p><b> 模型計(jì)算機(jī)電路設(shè)計(jì)</b></p><p> 本次模型計(jì)算機(jī)結(jié)構(gòu)框圖見下:</p><p><b> 指令系統(tǒng)設(shè)計(jì)</b></p>&l
107、t;p> 本次模型計(jì)算機(jī)的指令系統(tǒng)設(shè)計(jì)如下:</p><p> 本次課程設(shè)計(jì)中使用的軟件</p><p> 根據(jù)ppt,經(jīng)操作,可生成目標(biāo)代碼文件。</p><p> 然后進(jìn)行編輯、編譯。</p><p><b> 微指令設(shè)計(jì)</b></p><p><b> 微指令設(shè)
108、計(jì)如下圖:</b></p><p><b> 程序設(shè)計(jì)</b></p><p><b> 應(yīng)用程序設(shè)計(jì)概述</b></p><p> 本次課程設(shè)計(jì)使用的指令文件(CPU8B.DEF)</p><p><b> 目標(biāo)代碼生成</b></p>&l
109、t;p> 應(yīng)用程序?qū)崿F(xiàn)(編輯,匯編)</p><p> 找到桌面上的圖標(biāo),, </p><p><b> 啟動 。</b></p><p> 加載指令定義文件CPU8B.DEF。</p><p> 檢查加載的指令定義文件CPU8B.DEF。</p><p><b> 匯
110、編生成目標(biāo)文件。</b></p><p><b> 系統(tǒng)調(diào)試</b></p><p><b> 電路生成和下載。</b></p><p> 應(yīng)用程序目標(biāo)碼和微程序目標(biāo)碼下載。</p><p><b> 調(diào)試。</b></p><p>
111、 注:在開始調(diào)試之前,必須保證:</p><p> 1.打開實(shí)驗(yàn)儀電源開關(guān)。</p><p> 2.確保電路文件CPU8B.BIT已經(jīng)下載到實(shí)驗(yàn)儀器的U3芯片。</p><p> 3.確保目標(biāo)文件TEST.S19已經(jīng)生成。</p><p> 4.找到桌面上的圖標(biāo),啟動。</p><p> 5.注意該程序只能
112、啟動它的一個實(shí)例,</p><p> 否則聯(lián)機(jī)通信行失敗。</p><p> 打開界面后,設(shè)置串行口參數(shù)。</p><p> 選擇工具欄”系統(tǒng)”按鈕設(shè)置試驗(yàn)?zāi)J健?lt;/p><p> 設(shè)置完畢后,先不加載文件,點(diǎn)擊”確定”,會依此出現(xiàn)下面5個窗口。</p><p> 再次選擇工具欄”系統(tǒng)”按鈕設(shè)置試驗(yàn)?zāi)J?加載
113、三個文件。下圖是加載顯示配置文件。</p><p><b> 加載程序目標(biāo)文件。</b></p><p> 等待程序和微程序目標(biāo)碼下載完畢。</p><p> 執(zhí)行程序,在微機(jī)上執(zhí)行或是在實(shí)驗(yàn)儀器上執(zhí)行。</p><p> 運(yùn)行結(jié)束,看到結(jié)果后,復(fù)位,否則不能再次運(yùn)行。</p><p>
114、 編程與調(diào)試程序方法的介紹</p><p> 要將所設(shè)計(jì)機(jī)器指令對應(yīng)的微程序裝入到控制存儲器中,還要將調(diào)試程序(匯編程序)裝入到內(nèi)部存儲器中。各有兩種裝入方法,一種是通過實(shí)驗(yàn)箱鍵盤輸入,另一種是通過編程下載實(shí)現(xiàn)。在調(diào)試過程中,往往會發(fā)現(xiàn)設(shè)計(jì)中的問題,需要修改設(shè)計(jì),再根據(jù)修改后的設(shè)計(jì)進(jìn)行調(diào)試,直到完全成功為止。調(diào)試成功后,整理出最后的設(shè)計(jì)文件。</p><p><b> 結(jié)果及
115、分析</b></p><p> 電路下載后的執(zhí)行效果(1)</p><p><b> S0=1,S1=1</b></p><p> 電路下載后的執(zhí)行效果(2)</p><p><b> S0=0,S1=1</b></p><p><b> S0
116、=1,S1=0</b></p><p><b> S0=0,S1=0</b></p><p> 本次課程設(shè)計(jì)的任務(wù)的硬件部分用VHDL描述,包括運(yùn)算器、寄存器、寄存器、微程序控制器的VHDL描述,實(shí)現(xiàn)一個VHDL描述的模型計(jì)算機(jī)。</p><p><b> 收獲、體會及建議</b></p>
117、<p> 這次課程設(shè)計(jì)主要是掌握微程序控制結(jié)構(gòu)計(jì)算機(jī)的設(shè)計(jì)方法,通過對機(jī)器指令和相對應(yīng)微程序的設(shè)計(jì),加深對微程序控制器的理解,加深對微程序設(shè)計(jì)特點(diǎn)的了解,加深對計(jì)算機(jī)各部件的理解以及對整機(jī)結(jié)構(gòu)的理解。目的是綜合運(yùn)用前面所學(xué)內(nèi)容,加深對計(jì)算機(jī)系統(tǒng)各模塊的工作原理及相互聯(lián)系的認(rèn)識,取得工和設(shè)計(jì)與組裝調(diào)試的實(shí)踐和經(jīng)驗(yàn)。這次的課程設(shè)計(jì)讓我對計(jì)算機(jī)組成原理這門課程有了一個新的認(rèn)識:軟件與硬件的統(tǒng)一、程序與電路的融合。讓我對“硬件是軟件
118、的身軀、軟件是硬件的靈魂”有了更進(jìn)一步的理解。</p><p> 課設(shè)的第一天,我感覺自己就像一個“無頭蒼蠅”似的,沒有任何方向,沒有任何目標(biāo),就是一頭霧水。后來,認(rèn)真聽了老師們給我們臨時的補(bǔ)課,我才漸漸理解了這次課設(shè)的目標(biāo)。有了頭緒之后,整個人也就豁然開朗了,就開始付之于實(shí)踐了!漸漸地,從實(shí)踐中我領(lǐng)悟到只有將所學(xué)知識真正應(yīng)用到實(shí)際操作中,才能更好地掌握,才能不斷發(fā)現(xiàn)自已存在的問題,從而不斷進(jìn)步。實(shí)驗(yàn)最難的部分
119、就是調(diào)試了,這也是最麻煩的。所以最好的辦法就是每一個模塊設(shè)計(jì)好后都進(jìn)行驗(yàn)證,保證正確性。但很多時候我以為我那樣做是對的,其實(shí)卻是有邏輯錯誤的,這個錯誤還好,只要多和同學(xué)討論,請教老師就比較容易發(fā)現(xiàn)。</p><p> 課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 計(jì)算機(jī)組成原理課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)組成原理課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)組成原理課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)組成原理-課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)組成原理課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)組成原理-課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)組成原理課程設(shè)計(jì)報(bào)告--簡單計(jì)算機(jī)
- 《計(jì)算機(jī)組成原理》課程設(shè)計(jì)
- 計(jì)算機(jī)組成原理課程設(shè)計(jì)
- 計(jì)算機(jī)組成原理課程設(shè)計(jì)
- 計(jì)算機(jī)組成原理課程設(shè)計(jì)
- 計(jì)算機(jī)組成原理課程設(shè)計(jì)
- 計(jì)算機(jī)組成原理課程設(shè)計(jì)
- 計(jì)算機(jī)組成原理課程設(shè)計(jì)報(bào)告2
- 計(jì)算機(jī)組成原理課程設(shè)計(jì)報(bào)告 (2)
- 計(jì)算機(jī)組成原理課程設(shè)計(jì)報(bào)告1
- 計(jì)算機(jī)組成原理課程設(shè)計(jì)--計(jì)算機(jī)組成原理算法實(shí)現(xiàn)
- 計(jì)算機(jī)組成原理課程設(shè)計(jì)---模型機(jī)組成設(shè)計(jì)
- 計(jì)算機(jī)組成原理課程設(shè)計(jì)日志
- 計(jì)算機(jī)組成原理課程設(shè)計(jì) (2)
評論
0/150
提交評論