計(jì)算機(jī)組成原理課程設(shè)計(jì)報(bào)告2_第1頁(yè)
已閱讀1頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  計(jì)算機(jī)組成原理</b></p><p><b>  課程設(shè)計(jì)</b></p><p>  指導(dǎo)教師: XXX </p><p>  學(xué)生班級(jí): XXX </p><p>  學(xué)生姓名: </p><p>

2、;  學(xué) 號(hào): </p><p>  班內(nèi)序號(hào): </p><p>  課設(shè)日期:2012/12/17~2012/12/28</p><p><b>  目 錄</b></p><p>  設(shè)計(jì)目的···

3、;····································1&l

4、t;/p><p>  設(shè)計(jì)要求································

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

6、83;·············1</p><p>  較詳細(xì)的設(shè)計(jì)過(guò)程··················

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

8、83;·····14</p><p>  結(jié)果及分析··························&

9、#183;··········14</p><p>  收獲、體會(huì)及建議····················&#

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

11、的理解以及對(duì)整機(jī)結(jié)構(gòu)的理解。</p><p>  2.掌握幾種尋址方式的控制執(zhí)行過(guò)程。</p><p>  3.了解多累加器計(jì)算機(jī)的特點(diǎn)。</p><p>  4.熟悉VHDL語(yǔ)言的編程。</p><p><b>  設(shè)計(jì)要求</b></p><p>  1.運(yùn)算器采用單累加器多寄存器結(jié)構(gòu)<

12、/p><p>  2.指令系統(tǒng):16條以上指令,有I/O指令,外部設(shè)備統(tǒng)一編址。</p><p>  3.內(nèi)存尋址范圍1K以上字節(jié)</p><p>  尋址方式: 寄存器直接尋址</p><p><b>  寄存器間接尋址</b></p><p><b>  直接尋址</b>&l

13、t;/p><p><b>  立即數(shù)尋址</b></p><p>  4.可執(zhí)行從鍵盤上輸入的十進(jìn)制兩位數(shù)與兩位數(shù)加法程序并打印輸入的數(shù)據(jù)及結(jié)果或?qū)崿F(xiàn)兩數(shù)相加通過(guò)數(shù)碼管顯示結(jié)果。</p><p><b>  三、設(shè)計(jì)方案</b></p><p>  1.首先設(shè)計(jì)整機(jī)邏輯框圖,并分析各主要部件中所使用的關(guān)

14、鍵器件,徹底理解主要芯片的工作原理。</p><p>  根據(jù)設(shè)計(jì)要求,對(duì)實(shí)驗(yàn)儀硬件模塊進(jìn)行邏輯剪輯組合,便可設(shè)計(jì)出該實(shí)驗(yàn)計(jì)算機(jī)的整機(jī)邏輯框圖。為利于調(diào)試,應(yīng)在邏輯框圖上表明各器件的控制信號(hào)及必要的輸出信號(hào)。</p><p>  2.指令系統(tǒng)和指令執(zhí)行流程設(shè)計(jì)</p><p><b> ?、?指令系統(tǒng)</b></p><p&

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

16、第一個(gè)機(jī)器周期都是“取指令周期”,或稱為公操作周期。而一條指令共需幾個(gè)機(jī)器周期取決于指令在機(jī)內(nèi)實(shí)現(xiàn)的復(fù)雜程度。</p><p>  3.微操作控制信號(hào)和微程序設(shè)計(jì)</p><p> ?、?微操作控制信號(hào)及其實(shí)現(xiàn)方法</p><p>  綜合實(shí)驗(yàn)計(jì)算機(jī)指令系統(tǒng)各指令執(zhí)行流程中所涉及到的微操作控制信號(hào),統(tǒng)計(jì)總共需要多少個(gè)微控制信號(hào),每個(gè)信號(hào)的有效性,決定這些信號(hào)中哪些由

17、軟件(微指令)直接產(chǎn)生,哪些需用硬件實(shí)現(xiàn)。</p><p> ?、?設(shè)計(jì)微指令格式,微指令由32位組成,設(shè)計(jì)出每位微操作的定義。</p><p> ?、?確定微程序控制方式</p><p>  設(shè)計(jì)任務(wù)包括設(shè)計(jì)各微程序入口地址的形成方法和控存的順序控制(即下地址形成)方法。</p><p>  編寫各指令的微程序,根據(jù)指令流程和微指令格式仔細(xì)

18、地逐條填寫微指令各碼位。</p><p>  為減少填寫錯(cuò)誤,可邊把本條微指令用到的微碼(微操作控制信號(hào))按預(yù)定的有效性填入,檢查無(wú)誤后,再對(duì)本條微指令用不到的微碼(微操作控制信號(hào))填入與預(yù)定的有效性相反的代碼,核對(duì)無(wú)誤后,最后將這32位微碼縮寫成8位十六進(jìn)制微指令。</p><p><b>  4.設(shè)計(jì)接線表</b></p><p>  要仔

19、細(xì)設(shè)計(jì)接線表,因?yàn)樗墙M裝計(jì)算機(jī)的依據(jù)。</p><p> ?、?為了避免遺漏,應(yīng)按模塊逐個(gè)歸納整理,明確各模塊中器件各控制信號(hào)的處理方法。</p><p> ?、?對(duì)于模塊中不用的器件,也應(yīng)有所處理。</p><p><b>  較詳細(xì)的設(shè)計(jì)過(guò)程</b></p><p>  先熟悉課程設(shè)計(jì)任務(wù)。</p>

20、<p>  熟練掌握VHDL語(yǔ)言。</p><p><b>  實(shí)現(xiàn)基本門電路。</b></p><p>  用VHDL描述計(jì)算機(jī)各部件。</p><p>  存儲(chǔ)器的VHDL描述</p><p>  a.存儲(chǔ)器的硬件描述圖</p><p>  b.存儲(chǔ)器實(shí)驗(yàn)過(guò)程與信號(hào)</p>

21、;<p>  首先利用開關(guān)S0~S7設(shè)置一個(gè)8位的數(shù)據(jù),用于寫入內(nèi)存時(shí)使用。</p><p>  第二步,利用開關(guān)S8、S9的組合生成一個(gè)4個(gè)字節(jié)的內(nèi)存,內(nèi)存地址如下:</p><p>  第三步,當(dāng)S10=0 AND S11=1時(shí),發(fā)出寫內(nèi)存信號(hào),將開關(guān)S0~S7設(shè)置的8位數(shù)據(jù)寫入由開關(guān)S8、S9的組合指定的內(nèi)存地址單元。</p><p>  第四步

22、,當(dāng)S10=1 AND S11=0時(shí),發(fā)出讀內(nèi)存信號(hào),將由開關(guān)S8、S9的組合指定的內(nèi)存地址單元中的數(shù)據(jù)讀出,由發(fā)光二極管L9~L12顯示。</p><p>  c.存儲(chǔ)器的VHDL描述</p><p>  Library IEEE;</p><p>  use IEEE.std_logic_1164.all;</p><p>  use I

23、EEE.std_logic_unsigned.all;</p><p>  use IEEE.std_logic_arith.all; </p><p>  entity busv1 is</p><p><b>  Port (</b></p><p>  CI: buffer std_logic_vector(19

24、 downto 0);</p><p>  CO: in std_logic_vector(11 downto 0)</p><p><b>  );</b></p><p>  end busv1;</p><p>  architecture busv1_behav of busv1 is</p>&l

25、t;p>  signal mux:std_logic_vector(1 downto 0);</p><p>  signal WR,RD:std_logic;</p><p><b>  begin</b></p><p>  mux <= CO(9 downto 8);</p><p>  RD <

26、= CO(11);</p><p>  WR <= CO(10);</p><p>  CI( 11 downto 0 ) <= CO(11 downto 0);</p><p>  process (WR,RD) </p><p>  VARIABLE TMP1,TMP2,TMP3,TMP4:std_logic_vector(7

27、 downto 0);</p><p><b>  begin</b></p><p>  if (WR='0'and RD='1') then --寫內(nèi)存</p><p>  case mux is </p><p>  when "00" => TMP1 :=

28、 CO(7 downto 0);--寫入地址0號(hào)</p><p>  when "01" => TMP2 := CO(7 downto 0);--寫入地址1號(hào)</p><p>  when "10" => TMP3 := CO(7 downto 0);--寫入地址2號(hào)</p><p>  when

29、 others => TMP4 := CO(7 downto 0);--寫入地址3號(hào)</p><p><b>  end case;</b></p><p>  elsif (WR='1' and RD='0') then --讀內(nèi)存</p><p>  case mux is</p>

30、<p>  when "00" => CI(19 downto 12) <= TMP1;--讀地址0號(hào)</p><p>  when "01" => CI(19 downto 12)<= TMP2;--讀地址1號(hào)</p><p>  when "10" => CI(19 downto

31、 12) <= TMP3;--讀地址2號(hào)</p><p>  when others => CI(19 downto 12)<= TMP4;--讀地址3號(hào)</p><p><b>  end case;</b></p><p><b>  end if;</b></p><p&

32、gt;  end process; </p><p>  end busv1_behav;</p><p>  寄存器的VHDL描述</p><p>  a.寄存器的硬件描述圖</p><p>  b.計(jì)算機(jī)部件實(shí)驗(yàn)之寄存器的VHDL描述</p><p>  library IEEE;</p><

33、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 declaratio

34、ns that are</p><p>  -- provided for instantiating Xilinx primitive components.</p><p>  --library UNISIM;</p><p>  --use UNISIM.VComponents.all;</p><p>  entity jicun

35、qi is</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>&l

36、t;/p><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_v

37、ector(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);

38、</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-

39、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><b>  begin</b></p><p>  --Define three-s

40、tate 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 o

41、r U244BOE)='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 WR

42、E='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><

43、;p>  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&g

44、t;  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>

45、<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>  w

46、hen "000" => U244B <= R0;</p><p>  when "001" => U244B <= R1;</p><p>  when "010" => U244B <= R2;</p><p>  when "011" =>

47、 U244B <= R3;</p><p>  when "100" => U244B <= R4;</p><p>  when "101" => U244B <= R5;</p><p>  when "110" => U244B <= R6;</p>

48、;<p>  when others => U244B <= R7; </p><p><b>  end case;</b></p><p><b>  end if;</b></p><p>  end process; </p><p>  U244BOE &l

49、t;= 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> 

50、 end Behavioral;</p><p>  運(yùn)算器的VHDL描述</p><p>  a.運(yùn)算器的硬件描述圖</p><p>  b.運(yùn)算器實(shí)驗(yàn)過(guò)程與信號(hào)</p><p>  首先利用開關(guān)S0~S7設(shè)置一個(gè)8位的數(shù)據(jù),寄存在74LS244A,使開關(guān)S13(U244AOE)為低電平,使寄存在74LS244中的數(shù)據(jù)向總線輸出。L13反映

51、S13的狀態(tài)。在總線上的數(shù)據(jù)可以通過(guò)L0~L7看到。</p><p>  第二步,把總線上的數(shù)據(jù)送入74LS377保存,當(dāng)S14為低電平(U377EN=0)并且S15有一個(gè)脈沖信號(hào)時(shí)從它輸出送ALU的A端。</p><p>  第三步,利用開關(guān)S0~S7設(shè)置一個(gè)8位的數(shù)據(jù),寄存在74LS244A,使開關(guān)S13(U244AOE)為低電平,使寄存在74LS244中的數(shù)據(jù)向總線輸出。L13反映S

52、13的狀態(tài)。在總線上的數(shù)據(jù)可以通過(guò)L0~L7看到。</p><p>  第四步,當(dāng)S16、S17都為1時(shí),控制74LS373從總線接收數(shù)據(jù),寄存。當(dāng)當(dāng)S16為1、S17為0時(shí),控制74LS373中的數(shù)據(jù)送ALU的B端。</p><p>  第五步,利用S8~S10的組合在8種計(jì)算中選擇一個(gè)進(jìn)行計(jì)算,選擇表如下:(L8~L10反映S8~S10的狀態(tài),CIN由開關(guān)S11確定,L11反映S11的

53、值)。</p><p>  計(jì)算結(jié)束后,運(yùn)算結(jié)果F送74LS244B,L15反映向高位的進(jìn)位COUT。</p><p>  第六步,當(dāng)S12為0時(shí)(L12反映S11的值),將74LS244B中的值送總線,一次運(yùn)算結(jié)束。</p><p>  c.計(jì)算機(jī)部件實(shí)驗(yàn)之運(yùn)算器的VHDL描述</p><p>  library IEEE;</p&g

54、t;<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 de

55、clarations that are</p><p>  -- provided for instantiating Xilinx primitive components.</p><p>  --library UNISIM;</p><p>  --use UNISIM.VComponents.all;</p><p>  enti

56、ty yunsuan 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_

57、logic_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 d

58、ownto 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,

59、U244BOE: 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>

60、  constant 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_

61、vector 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>&l

62、t;p><b>  begin</b></p><p>  --Define 74377</p><p>  process (U377CLK) begin</p><p>  if (U377CLK'event and U377CLK='0') then</p><p>  if (U37

63、7EN='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>

64、<p>  U373Q <= DBB when (U373GT='1'and U373OE='0') else ("11111111" and U373Q);</p><p>  --define the ALU </p><p>  FA<= '0'&U377Q;</p

65、><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

66、 ="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 &l

67、t;/p><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>

68、<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

69、0) <= 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><

70、;p>  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

71、);</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>

72、<p>  end Behavioral;</p><p><b>  總線的VHDL描述</b></p><p>  a.總線的硬件描述圖</p><p>  b.總線實(shí)驗(yàn)過(guò)程與信號(hào)</p><p><b>  實(shí)驗(yàn)設(shè)計(jì):</b></p><p>  使用VHDL

73、來(lái)完成本實(shí)驗(yàn)時(shí),需注意以下問(wè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四個(gè)三態(tài)門可用一個(gè)多路開關(guān)加一個(gè)三態(tài)門構(gòu)成。</p><p><b>  實(shí)驗(yàn)步驟</b></p>

74、<p>  1).輸入并編譯生成BIT文件,下載到XC2S150中。</p><p>  2).從開關(guān)通過(guò)244把數(shù)據(jù)(如10010110)輸入到373中。</p><p>  3). 從開關(guān)通過(guò)244把數(shù)據(jù)(如10100101)輸入到374中。</p><p>  4).把373的數(shù)據(jù)傳送到RAM中。</p><p>  5)

75、.把374的數(shù)據(jù)寫到373中。</p><p>  6).把RAM的數(shù)據(jù)傳送到374中。</p><p>  7).通過(guò)377檢查373和374的內(nèi)容。</p><p>  首先利用開關(guān)S0~S7設(shè)置一個(gè)8位的數(shù)據(jù),寄存在74LS244A,使開關(guān)S13(U244AOE)為低電平,使寄存在74LS244中的數(shù)據(jù)向總線輸出。</p><p>  

76、第二步,利用S8~S10的組合在R~0R7中選擇一個(gè)寄存器,選擇表如下:</p><p>  第三步,當(dāng)WRE(寫寄存器)脈沖信號(hào)從0變1時(shí),將總線上的數(shù)據(jù)寫入某寄存器。</p><p>  第四步,當(dāng)RDE(讀寄存器)脈沖信號(hào)從0變1時(shí),將某寄存器的值輸出到74LS244B。</p><p>  c.計(jì)算機(jī)部件實(shí)驗(yàn)之總線的VHDL描述</p><

77、;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>  entity busv1 is&

78、lt;/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(

79、0 to 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,IO

80、W,IOR,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_beh

81、av of 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);<

82、/p><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_log

83、ic;</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 spec

84、ific 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

85、9;range 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_logi

86、c_vector(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><

87、p>  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

88、);</p><p>  --Define RAM</p><p>  TADR(8)<= '0';</p><p>  TADR(7)<= '0';</p><p>  TADR(6) <= '0';</p><p>  TADR(5 downt

89、o 0) <= 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=>lo

90、gic0,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&

91、#39;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><

92、;p>  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

93、>  end if;</b></p><p>  end process;</p><p>  --Define 74373</p><p>  U373Q <= DBB when (U373GT='1') else ("11111111" and U373Q); </p><p>

94、  --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(U

95、374OE,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 MO

96、E)='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>

97、;<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>  U

98、244OE<= 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

99、>  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);<

100、;/p><p>  CI(24) <= CO(8);</p><p>  --Connect all unused pins</p><p>  IOR <= '1';</p><p>  IOW<= '1';</p><p>  CRD<= '1

101、';</p><p>  CWR<= '1';</p><p>  MCLK <=CLK;</p><p>  CTRL2 <= '1';</p><p>  CTRL3 <= '1';</p><p>  CTRL4 <= &

102、#39;1';</p><p>  CTRL1 <= '1';</p><p><b>  AB <= DB;</b></p><p>  CI(31 downto 29) <= MUX;</p><p>  CI(28) <= RESET;</p><

103、p>  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>

104、<p>  end busv1_behav;</p><p><b>  電路設(shè)計(jì)</b></p><p><b>  程序設(shè)計(jì)</b></p><p><b>  應(yīng)用程序設(shè)計(jì)概述</b></p><p>  本次課程設(shè)計(jì)使用的指令文件(CPU8B.DEF)<

105、;/p><p><b>  目標(biāo)代碼生成</b></p><p>  應(yīng)用程序?qū)崿F(xiàn)(編輯,匯編)</p><p>  找到桌面上的圖標(biāo),, </p><p><b>  啟動(dòng) 。</b></p><p>  加載指令定義文件CPU8B.DEF。</p><p&

106、gt;  檢查加載的指令定義文件CPU8B.DEF。</p><p><b>  匯編生成目標(biāo)文件。</b></p><p><b>  系統(tǒng)調(diào)試</b></p><p><b>  電路生成和下載。</b></p><p>  應(yīng)用程序目標(biāo)碼和微程序目標(biāo)碼下載。</p&

107、gt;<p><b>  調(diào)試。</b></p><p>  打開界面后,設(shè)置串行口參數(shù)。</p><p>  選擇工具欄”系統(tǒng)”按鈕設(shè)置試驗(yàn)?zāi)J健?lt;/p><p>  設(shè)置完畢后,先不加載文件,點(diǎn)擊”確定”,會(huì)依此出現(xiàn)下面5個(gè)窗口。</p><p>  再次選擇工具欄”系統(tǒng)”按鈕設(shè)置試驗(yàn)?zāi)J?加載三個(gè)文件

108、。下圖是加載顯示配置文件。</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>  編程與

109、調(diào)試程序方法的介紹</p><p>  要將所設(shè)計(jì)機(jī)器指令對(duì)應(yīng)的微程序裝入到控制存儲(chǔ)器中,還要將調(diào)試程序(匯編程序)裝入到內(nèi)部存儲(chǔ)器中。各有兩種裝入方法,一種是通過(guò)實(shí)驗(yàn)箱鍵盤輸入,另一種是通過(guò)編程下載實(shí)現(xiàn)。在調(diào)試過(guò)程中,往往會(huì)發(fā)現(xiàn)設(shè)計(jì)中的問(wèn)題,需要修改設(shè)計(jì),再根據(jù)修改后的設(shè)計(jì)進(jìn)行調(diào)試,直到完全成功為止。調(diào)試成功后,整理出最后的設(shè)計(jì)文件。</p><p><b>  結(jié)果及分析&l

110、t;/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=1,S

111、1=0</b></p><p><b>  S0=0,S1=0</b></p><p><b>  收獲、體會(huì)及建議</b></p><p>  通過(guò)本次的課程設(shè)計(jì),我的收獲很多!我領(lǐng)悟到只有將所學(xué)知識(shí)真正應(yīng)用到實(shí)際操作中,才能更好地掌握,才能不斷發(fā)現(xiàn)自已存在的問(wèn)題,從而不斷進(jìn)步!</p><

112、;p>  課程設(shè)計(jì)不僅鞏固我的理論知識(shí),將理論和實(shí)踐結(jié)合起來(lái),鍛煉了我的動(dòng)手能力,也讓我認(rèn)識(shí)到自己的不足之處,爭(zhēng)取以后能克服這些缺點(diǎn),更進(jìn)一步提高自己各個(gè)方面的能力! </p><p>  雖然這只是一次的簡(jiǎn)單的課程設(shè)計(jì),可是平心而論,也耗費(fèi)了不少的心血,這就讓我不得不佩服專門從事這方面的技術(shù)前輩,才意識(shí)到要想在此方面有所成就需要克服的困難太多了。要有足夠的耐心和毅力,不怕失敗,一次次的調(diào)試直到成功為止。遇

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論