2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p><b>  計算機組成原理</b></p><p><b>  課程設(shè)計</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è)計目的·····&#

3、183;·································1</p><p

4、>  設(shè)計要求···································

5、····1</p><p>  設(shè)計方案····························

6、···········1</p><p>  較詳細的設(shè)計過程····················&#

7、183;··········2</p><p>  編程與調(diào)試程序方法的介紹····················

8、···19</p><p>  結(jié)果及分析····························

9、3;········20</p><p>  收獲、體會及建議·······················

10、;········21</p><p><b>  一、設(shè)計目的</b></p><p>  1. 主要掌握微程序控制結(jié)構(gòu)計算機的設(shè)計方法,通過對機器指令和相對應(yīng)微程序的設(shè)計,加深對微程序控制器的理解,加深對微程序設(shè)計特點的了解,加深對計算機各部件的理解以及對整機結(jié)構(gòu)的理解。</p&

11、gt;<p>  2.掌握幾種尋址方式的控制執(zhí)行過程。</p><p>  3.了解多累加器計算機的特點。</p><p>  4.熟悉VHDL語言的編程。</p><p><b>  設(shè)計要求</b></p><p>  1.硬件設(shè)計,包括運算器、寄存器、寄存器、微程序控制器的VHDL描述。</p&

12、gt;<p>  2.軟件設(shè)計,包括指令系統(tǒng)設(shè)計及應(yīng)用程序的設(shè)計。</p><p>  3.硬件和軟件聯(lián)合調(diào)試,利用設(shè)計的模型計算機執(zhí)行應(yīng)用程序,通過數(shù)碼管顯示結(jié)果。 </p><p><b>  三、設(shè)計方案</b></p><p>  1.首先設(shè)計整機邏輯框圖,并分析各主要部件中所使用的關(guān)鍵器件,徹底理解主要芯片的工作原理。&

13、lt;/p><p>  根據(jù)設(shè)計要求,對實驗儀硬件模塊進行邏輯剪輯組合,便可設(shè)計出該實驗計算機的整機邏輯框圖。為利于調(diào)試,應(yīng)在邏輯框圖上表明各器件的控制信號及必要的輸出信號。</p><p>  2.指令系統(tǒng)和指令執(zhí)行流程設(shè)計</p><p><b> ?、?指令系統(tǒng)</b></p><p>  需確定實驗計算機的指令系統(tǒng)具

14、體由哪里指令組成,包括哪幾種類型指令,指令操作數(shù)有哪幾種尋址方式,以及指令編碼等。</p><p><b>  ② 指令執(zhí)行流程</b></p><p>  應(yīng)根據(jù)實驗計算機整機邏輯圖來設(shè)計指令系統(tǒng)中每條指令的執(zhí)行流程。</p><p>  一條指令從內(nèi)存取出到執(zhí)行完,需要若干個機器周期(節(jié)拍)。任何指令的第一個機器周期都是“取指令周期”,或稱

15、為公操作周期。而一條指令共需幾個機器周期取決于指令在機內(nèi)實現(xiàn)的復(fù)雜程度。</p><p>  3.微操作控制信號和微程序設(shè)計</p><p>  ① 微操作控制信號及其實現(xiàn)方法</p><p>  綜合實驗計算機指令系統(tǒng)各指令執(zhí)行流程中所涉及到的微操作控制信號,統(tǒng)計總共需要多少個微控制信號,每個信號的有效性,決定這些信號中哪些由軟件(微指令)直接產(chǎn)生,哪些需用硬件實

16、現(xiàn)。</p><p>  ② 設(shè)計微指令格式,微指令由32位組成,設(shè)計出每位微操作的定義。</p><p> ?、?確定微程序控制方式</p><p>  設(shè)計任務(wù)包括設(shè)計各微程序入口地址的形成方法和控存的順序控制(即下地址形成)方法。</p><p><b>  編寫各指令的微程序</b></p><

17、;p>  根據(jù)指令流程和微指令格式仔細地逐條填寫微指令各碼位。</p><p>  為減少填寫錯誤,可邊把本條微指令用到的微碼(微操作控制信號)按預(yù)定的有效性填入,檢查無誤后,再對本條微指令用不到的微碼(微操作控制信號)填入與預(yù)定的有效性相反的代碼,核對無誤后,最后將這32位微碼縮寫成8位十六進制微指令。</p><p><b>  4.設(shè)計接線表</b><

18、;/p><p>  要仔細設(shè)計接線表,因為它是組裝計算機的依據(jù)。</p><p> ?、?為了避免遺漏,應(yīng)按模塊逐個歸納整理,明確各模塊中器件各控制信號的處理方法。</p><p> ?、?對于模塊中不用的器件,也應(yīng)有所處理。</p><p><b>  較詳細的設(shè)計過程</b></p><p>  

19、先熟悉課程設(shè)計任務(wù)。</p><p>  實現(xiàn)基本門電路。利用如右圖所示軟件,啟動,建立</p><p>  一個新工程。具體操作步驟,參考《第二章 電路生成與下載</p><p><b>  步驟.ppt》</b></p><p>  最后,我們可以得到如下圖。</p><p>  電路生成結(jié)束

20、,再來實現(xiàn)電路的下載。啟動桌面圖標,</p><p>  選擇下載配置,加載下載文件,再實現(xiàn)電路下載。</p><p><b>  可得下圖:</b></p><p>  熟練掌握VHDL語言。</p><p>  用VHDL描述計算機各部件,包括存儲器的VHDL描述、寄存器的VHDL描述、運算器的VHDL描述以及總線的

21、VHDL描述。</p><p>  存儲器的VHDL描述</p><p>  a.存儲器的硬件描述圖</p><p>  b.存儲器實驗過程與信號</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>  第三步,當S10=0 AND S11=1時,發(fā)出寫內(nèi)存信號,將開關(guān)S0~S7設(shè)置的8位數(shù)據(jù)寫入由開關(guān)S8、S9的組合指定的內(nèi)存地址單元。</p><p>  第四步,當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.寄存器實驗過程與信號</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>  第三步,當WRE(寫寄存器)脈沖信號從0變1時,將總線上的數(shù)據(jù)寫入某寄存器。</p><p>  第四步,當RDE(讀寄存器)脈沖信號從0變1時,將某寄存器的值輸出到74LS244B。</p><p>  c.計算機部件實驗之寄存器的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>  運算器的VHDL描述</p><p>  a.運算器的硬件描述圖</p><p>  b.運算器實驗過程與信號</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保存,當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>  第四步,當S16、S17都為1時,控制74LS373從總線接收數(shù)據(jù),寄存。當當S16為1、S17為0時,控制74LS373中的數(shù)據(jù)送ALU的B端。</p><p>  第五步,利用S8~S10的組合在8種計算中選擇一個進行計算,選擇表如下:(L8~L10反映S8~S10的狀態(tài),CIN由開關(guān)S11確定,L11反映S11的值)。&

55、lt;/p><p>  計算結(jié)束后,運算結(jié)果F送74LS244B,L15反映向高位的進位COUT。</p><p>  第六步,當S12為0時(L12反映S11的值),將74LS244B中的值送總線,一次運算結(jié)束。</p><p>  c.計算機部件實驗之運算器的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.總線實驗過程與信號</p><p><b>  實驗設(shè)計:</b></p><p>  使用VHDL來完成本

75、實驗時,需注意以下問題:</p><p>  1).透明鎖存7應(yīng)使用組合電路實現(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>  實驗步驟</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>  第三步,當WRE(寫寄存器)脈沖信號從0變1時,將總線上的數(shù)據(jù)寫入某寄存器。</p><p>  第四步,當RDE(讀寄存器)脈沖信號從0變1時,將某寄存器的值輸出到74LS244B。</p><p>  c.計算機部件實驗之總線的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è)計</b></p><p><b>  模型計算機電路設(shè)計</b></p><p>  本次模型計算機結(jié)構(gòu)框圖見下:</p><p><b>  指令系統(tǒng)設(shè)計</b></p>&l

107、t;p>  本次模型計算機的指令系統(tǒng)設(shè)計如下:</p><p>  本次課程設(shè)計中使用的軟件</p><p>  根據(jù)ppt,經(jīng)操作,可生成目標代碼文件。</p><p>  然后進行編輯、編譯。</p><p><b>  微指令設(shè)計</b></p><p><b>  微指令設(shè)

108、計如下圖:</b></p><p><b>  程序設(shè)計</b></p><p><b>  應(yīng)用程序設(shè)計概述</b></p><p>  本次課程設(shè)計使用的指令文件(CPU8B.DEF)</p><p><b>  目標代碼生成</b></p>&l

109、t;p>  應(yīng)用程序?qū)崿F(xiàn)(編輯,匯編)</p><p>  找到桌面上的圖標,, </p><p><b>  啟動 。</b></p><p>  加載指令定義文件CPU8B.DEF。</p><p>  檢查加載的指令定義文件CPU8B.DEF。</p><p><b>  匯

110、編生成目標文件。</b></p><p><b>  系統(tǒng)調(diào)試</b></p><p><b>  電路生成和下載。</b></p><p>  應(yīng)用程序目標碼和微程序目標碼下載。</p><p><b>  調(diào)試。</b></p><p>

111、  注:在開始調(diào)試之前,必須保證:</p><p>  1.打開實驗儀電源開關(guān)。</p><p>  2.確保電路文件CPU8B.BIT已經(jīng)下載到實驗儀器的U3芯片。</p><p>  3.確保目標文件TEST.S19已經(jīng)生成。</p><p>  4.找到桌面上的圖標,啟動。</p><p>  5.注意該程序只能

112、啟動它的一個實例,</p><p>  否則聯(lián)機通信行失敗。</p><p>  打開界面后,設(shè)置串行口參數(shù)。</p><p>  選擇工具欄”系統(tǒng)”按鈕設(shè)置試驗?zāi)J健?lt;/p><p>  設(shè)置完畢后,先不加載文件,點擊”確定”,會依此出現(xiàn)下面5個窗口。</p><p>  再次選擇工具欄”系統(tǒng)”按鈕設(shè)置試驗?zāi)J?加載

113、三個文件。下圖是加載顯示配置文件。</p><p><b>  加載程序目標文件。</b></p><p>  等待程序和微程序目標碼下載完畢。</p><p>  執(zhí)行程序,在微機上執(zhí)行或是在實驗儀器上執(zhí)行。</p><p>  運行結(jié)束,看到結(jié)果后,復(fù)位,否則不能再次運行。</p><p> 

114、 編程與調(diào)試程序方法的介紹</p><p>  要將所設(shè)計機器指令對應(yīng)的微程序裝入到控制存儲器中,還要將調(diào)試程序(匯編程序)裝入到內(nèi)部存儲器中。各有兩種裝入方法,一種是通過實驗箱鍵盤輸入,另一種是通過編程下載實現(xiàn)。在調(diào)試過程中,往往會發(fā)現(xiàn)設(shè)計中的問題,需要修改設(shè)計,再根據(jù)修改后的設(shè)計進行調(diào)試,直到完全成功為止。調(diào)試成功后,整理出最后的設(shè)計文件。</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è)計的任務(wù)的硬件部分用VHDL描述,包括運算器、寄存器、寄存器、微程序控制器的VHDL描述,實現(xiàn)一個VHDL描述的模型計算機。</p><p><b>  收獲、體會及建議</b></p>

117、<p>  這次課程設(shè)計主要是掌握微程序控制結(jié)構(gòu)計算機的設(shè)計方法,通過對機器指令和相對應(yīng)微程序的設(shè)計,加深對微程序控制器的理解,加深對微程序設(shè)計特點的了解,加深對計算機各部件的理解以及對整機結(jié)構(gòu)的理解。目的是綜合運用前面所學(xué)內(nèi)容,加深對計算機系統(tǒng)各模塊的工作原理及相互聯(lián)系的認識,取得工和設(shè)計與組裝調(diào)試的實踐和經(jīng)驗。這次的課程設(shè)計讓我對計算機組成原理這門課程有了一個新的認識:軟件與硬件的統(tǒng)一、程序與電路的融合。讓我對“硬件是軟件

118、的身軀、軟件是硬件的靈魂”有了更進一步的理解。</p><p>  課設(shè)的第一天,我感覺自己就像一個“無頭蒼蠅”似的,沒有任何方向,沒有任何目標,就是一頭霧水。后來,認真聽了老師們給我們臨時的補課,我才漸漸理解了這次課設(shè)的目標。有了頭緒之后,整個人也就豁然開朗了,就開始付之于實踐了!漸漸地,從實踐中我領(lǐng)悟到只有將所學(xué)知識真正應(yīng)用到實際操作中,才能更好地掌握,才能不斷發(fā)現(xiàn)自已存在的問題,從而不斷進步。實驗最難的部分

119、就是調(diào)試了,這也是最麻煩的。所以最好的辦法就是每一個模塊設(shè)計好后都進行驗證,保證正確性。但很多時候我以為我那樣做是對的,其實卻是有邏輯錯誤的,這個錯誤還好,只要多和同學(xué)討論,請教老師就比較容易發(fā)現(xiàn)。</p><p>  課程設(shè)計是培養(yǎng)學(xué)生綜合運用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學(xué)生實際工作能力的具體訓(xùn)練和考察過程。通過這次課程設(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論