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

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  計(jì)算機(jī)組成原理課程設(shè)計(jì)報(bào)告</p><p>  題 目: 設(shè)計(jì)一臺(tái)嵌入式CISC模型機(jī) </p><p>  院 (系): 計(jì)算機(jī)科學(xué)與工程學(xué)院 </p><p>  專 業(yè): 網(wǎng)絡(luò)工程 </p><p>  學(xué)

2、 號(hào): </p><p>  學(xué)生姓名: </p><p>  指導(dǎo)教師: </p><p><b>  目錄</b></p><p>  設(shè)計(jì)一臺(tái)嵌入式CISC模型機(jī)選題及

3、要求3</p><p>  課程設(shè)計(jì)的題目和內(nèi)容(B類)3</p><p>  課程設(shè)計(jì)需要完成的內(nèi)容要求3</p><p>  系統(tǒng)開發(fā)環(huán)境及平臺(tái)介紹4</p><p>  嵌入式CISI模型機(jī)系統(tǒng)總體設(shè)計(jì)4</p><p>  嵌入式CISC系統(tǒng)設(shè)計(jì)模型圖4</p><p>  

4、控制器邏輯結(jié)構(gòu)框圖5</p><p>  設(shè)計(jì)模型機(jī)指令系統(tǒng)及指令格式5</p><p>  基本指令及匯編功能介紹5</p><p>  指令格式設(shè)計(jì)介紹6</p><p>  T1、T2、T3、T4與CLR、Q之間的關(guān)系圖7</p><p>  微程序控制流程圖8</p><p>

5、;  微程序微指令詳細(xì)設(shè)計(jì)9</p><p>  地址邏輯轉(zhuǎn)移電路單元9</p><p>  軟件代碼清單設(shè)計(jì)11</p><p>  微地址寄存器單元aa11</p><p>  控制存儲(chǔ)器單元CONTROM13</p><p>  微命令寄存器單元MCOMMAND15</p><p&

6、gt;  微地址轉(zhuǎn)換器單元(F1、F2、F3)17</p><p>  微程序操作器單元CROM19</p><p>  算術(shù)邏輯運(yùn)算執(zhí)行單元ALU21</p><p>  狀態(tài)條件寄存器單元LS7422</p><p>  公共寄存器單元LS27323</p><p>  1:2分配器FEN2單元24&l

7、t;/p><p>  3選1數(shù)據(jù)選擇器MUX3單元25</p><p>  4選1數(shù)據(jù)選擇器MUX4單元26</p><p>  程序計(jì)數(shù)器PC單元27</p><p>  主存儲(chǔ)器ROM芯片ROM16單元28</p><p>  時(shí)序產(chǎn)生器COUNTER單元29</p><p>  嵌入

8、式CISC模型機(jī)頂層電路單元31</p><p>  匯編語言源程序設(shè)計(jì)31</p><p>  機(jī)器語言源程序代碼設(shè)計(jì)32</p><p>  功能仿真及波形圖結(jié)果分析33</p><p>  嵌入式CISC模型機(jī)的故障現(xiàn)象分析35</p><p>  課設(shè)總結(jié)心得體會(huì)36</p><

9、p>  設(shè)計(jì)一臺(tái)嵌入式CISC模型機(jī)選題及要求</p><p>  課程設(shè)計(jì)的題目和內(nèi)容(B類)</p><p>  設(shè)計(jì)一臺(tái)嵌入式CISC模型計(jì)算機(jī)(采用定長CPU周期、聯(lián)合控制方式),并運(yùn)行能完成一定功能的機(jī)器語言程序進(jìn)行驗(yàn)證。</p><p>  要求連續(xù)輸入5個(gè)有符號(hào)整數(shù)(用8位二進(jìn)制補(bǔ)碼表示,十六進(jìn)制數(shù)輸入)求所有正數(shù)的平方和并輸出顯示。</p

10、><p>  說明:①5個(gè)有符號(hào)數(shù)從外部輸入;</p><p> ?、谝欢ㄒ褂梅?hào)位(比如說SF),并且要使用負(fù)的時(shí)候轉(zhuǎn)移(比如 說JS)或不為負(fù)的時(shí)候轉(zhuǎn)移(比如說JNS)指令。</p><p>  課程設(shè)計(jì)需要完成的內(nèi)容要求</p><p>  完成系統(tǒng)的總體設(shè)計(jì),畫出模型機(jī)數(shù)據(jù)通路框圖;</p><p>  設(shè)

11、計(jì)微程序控制器(CISC模型計(jì)算機(jī))的邏輯結(jié)構(gòu)框圖; </p><p>  設(shè)計(jì)機(jī)器指令格式和指令系統(tǒng); </p><p>  設(shè)計(jì)時(shí)序產(chǎn)生器電路; </p><p>  設(shè)計(jì)所有機(jī)器指令的微程序流程圖; </p><p>  設(shè)計(jì)操作控制器單元;</p><p>  設(shè)計(jì)模型機(jī)的所有單元電路,并用VHDL語言(也可使

12、用GDF文件----圖形描述文件)對(duì)模型機(jī)中的各個(gè)部件進(jìn)行編程,并使之成為一個(gè)統(tǒng)一的整體,即形成頂層電路或頂層文件; </p><p>  由給出的題目和設(shè)計(jì)的指令系統(tǒng)編寫相應(yīng)的匯編語言源程序;</p><p>  根據(jù)設(shè)計(jì)的指令格式,將匯編語言源程序手工轉(zhuǎn)換成機(jī)器語言源程序,并將其設(shè)計(jì)到模型機(jī)中的ROM中去;</p><p>  使用EDA軟件進(jìn)行功能仿真,要保證

13、其結(jié)果滿足題目的要求;(其中要利用EDA軟件提供的波形編輯器,選擇合適的輸入輸出信號(hào)及中間信號(hào)進(jìn)行調(diào)試。)</p><p>  系統(tǒng)開發(fā)環(huán)境及平臺(tái)介紹</p><p>  EDA軟件(Maxplus版本系列)、Windows操作系統(tǒng)平臺(tái)。</p><p>  Max+plusⅡ是Altera公司上一代的PLD開發(fā)軟件,Max+plusⅡ界面友好,使用便捷,被譽(yù)為業(yè)界

14、最易用易學(xué)的EDA軟件。在Max+plusⅡ上可以完成設(shè)計(jì)輸入、元件適配、時(shí)序仿真和功能仿真、編程下載整個(gè)流程,它提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計(jì)環(huán)境,使設(shè)計(jì)者能方便地進(jìn)行設(shè)計(jì)輸入、快速處理和器件編程。Maxplus基本使用介紹:Graphic Editor圖形編輯器;Symbol Editor符號(hào)編輯器;Text Editor文本編輯器;Waveform Editor波形編輯器;Compiler編譯器;Simulator仿真器;File:P

15、roject:Name建立工程名;Save,Compile,Simulator保存,編譯,仿真;New新建文件;Open打開文件;Create Default Symbol創(chuàng)建當(dāng)前模塊圖形符號(hào)。</p><p>  嵌入式CISI模型機(jī)系統(tǒng)總體設(shè)計(jì)</p><p>  嵌入式CISC系統(tǒng)設(shè)計(jì)模型圖</p><p><b>  控制器邏輯結(jié)構(gòu)框圖</b

16、></p><p>  設(shè)計(jì)模型機(jī)指令系統(tǒng)及指令格式</p><p>  基本指令及匯編功能介紹</p><p>  說明:對(duì)Rs和Rd的規(guī)定:</p><p>  模型機(jī)規(guī)定數(shù)據(jù)的表示采用定點(diǎn)整數(shù)補(bǔ)碼表示,單字長為8位,其格式如下:</p><p><b>  指令格式設(shè)計(jì)介紹</b>&l

17、t;/p><p> ?。?)I/O指令(單字節(jié))</p><p><b>  IN輸入指令:</b></p><p><b>  OUT輸出指令:</b></p><p> ?。?)MOV指令(雙字節(jié))</p><p>  MUL指令(單字節(jié))</p><p&

18、gt;<b>  乘法指令:</b></p><p>  “Rs”為源寄存器,存放的是源操作數(shù) </p><p>  “Rd”為目的寄存器,存放的是目的操作數(shù)所在的地址</p><p> ?。?)ADD(單字節(jié))</p><p><b>  求和指令:</b></p><p&g

19、t;  “Rs”為源寄存器,存放的是源操作數(shù) </p><p>  “Rd”為目的寄存器,存放的是目的操作數(shù)所在的地址</p><p>  (5)INC(單字節(jié))</p><p><b>  自加1指令:</b></p><p> ?。?)TEST指令(單字節(jié))</p><p> ?。?)JS、

20、JMP條件轉(zhuǎn)移指令(雙字節(jié))</p><p>  T1、T2、T3、T4與CLR、Q之間的關(guān)系圖</p><p><b>  微程序控制流程圖</b></p><p>  微程序微指令詳細(xì)設(shè)計(jì)</p><p>  微指令設(shè)計(jì)依次從左到右:</p><p>  微地址:(6位) (根據(jù)流程圖設(shè)計(jì)而設(shè)

21、計(jì));</p><p>  微命令字段+P字段:25位:包含后繼微地址:(6位)(根據(jù)流程圖設(shè)計(jì)而設(shè)計(jì))</p><p>  24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0</p><p>  LOAD LDPC LDAR LDIR LDRi RD_B RS_B S1 S0 ALU_B

22、 LDAC LDDR WR CS SW_B LED_B LDFR P1 P2 </p><p>  地址邏輯轉(zhuǎn)移電路單元</p><p>  地址邏輯轉(zhuǎn)移電路為了實(shí)現(xiàn)微地址的多路轉(zhuǎn)移。</p><p>  微地址寄存器中的觸發(fā)器異步置“1”端低電平有效,與µA4~µA0對(duì)應(yīng)的異步置“1”控制信號(hào)SE5~SE1的邏輯表達(dá)式為:(µA5

23、的異步置“1”端SE6實(shí)際未使用。)其中邏輯表達(dá)式如下:</p><p>  SE5=FS·P(2)·T4</p><p>  SE4=I7·P(1)·T4</p><p>  SE3=I6·P(1)·T4</p><p>  SE2=I5·P(1)·T4<

24、/p><p>  SE1=I4·P(1)·T4</p><p>  地址轉(zhuǎn)移邏輯電路中異步置“1”信號(hào)SE5~SE1表達(dá)式的確定與P字段測(cè)試時(shí)轉(zhuǎn)移微地址的確定密切相關(guān).地址轉(zhuǎn)移邏輯電路的實(shí)現(xiàn)代碼如下:</p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;&

25、lt;/p><p>  ENTITY ADDR IS</p><p><b>  PORT(</b></p><p>  I7,I6,I5,I4:IN STD_LOGIC;</p><p>  FS,T4,P1,P2:IN STD_LOGIC;</p><p>  SE6,SE5,SE4,SE3,SE

26、2,SE1:OUT STD_LOGIC</p><p><b>  );</b></p><p><b>  END ADDR;</b></p><p>  ARCHITECTURE A OF ADDR IS</p><p><b>  BEGIN</b></p>

27、<p><b>  SE6<='1';</b></p><p>  SE5<=NOT(NOT FS AND P2 AND T4);</p><p>  SE4<=NOT(I7 AND P1 AND T4);</p><p>  SE3<=NOT(I6 AND P1 AND T4);</p

28、><p>  SE2<=NOT(I5 AND P1 AND T4);</p><p>  SE1<=NOT(I4 AND P1 AND T4);</p><p><b>  END A;</b></p><p>  編譯成功通過之后生成圖形符號(hào),地址轉(zhuǎn)移邏輯電路就可以使用了。</p><p&g

29、t;<b>  軟件代碼清單設(shè)計(jì)</b></p><p>  微地址寄存器單元aa</p><p>  由6個(gè)MMM器件單元組成:</p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  ENTITY MMM

30、 IS</p><p><b>  PORT(</b></p><p>  SE:IN STD_LOGIC;</p><p>  T2:IN STD_LOGIC;</p><p>  D:IN STD_LOGIC;</p><p>  CLR:IN STD_LOGIC;</p>&

31、lt;p>  UA:OUT STD_LOGIC</p><p><b>  );</b></p><p><b>  END MMM;</b></p><p>  ARCHITECTURE A OF MMM IS</p><p><b>  BEGIN</b><

32、/p><p>  PROCESS(CLR,SE,T2)</p><p><b>  BEGIN</b></p><p>  IF(CLR='0')THEN</p><p>  UA<='0';</p><p>  ELSIF(SE='0'

33、;)THEN</p><p>  UA<='1';</p><p>  ELSIF(T2'EVENT AND T2='1') THEN</p><p><b>  UA<=D;</b></p><p><b>  END IF;<

34、/b></p><p>  END PROCESS;</p><p><b>  END A; </b></p><p>  編譯成功后生成MMM元器件,生成微地址寄存器單元aa,如圖所示: </p><p>  控制存儲(chǔ)器單元CONTROM</p><p>  LIBRARY IEE

35、E;</p><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>  ENTITY CONTROM IS</p><p>

36、;  PORT(ADDR: IN STD_LOGIC_VECTOR(5 DOWNTO 0);</p><p>  UA:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);</p><p>  D:OUT STD_LOGIC_VECTOR(18 DOWNTO 0)</p><p><b>  );</b></p>&

37、lt;p>  END CONTROM;</p><p>  ARCHITECTURE A OF CONTROM IS</p><p>  SIGNAL DATAOUT: STD_LOGIC_VECTOR(24 DOWNTO 0);</p><p><b>  BEGIN </b></p><p>  PROCESS

38、(ADDR)</p><p><b>  BEGIN</b></p><p>  CASE ADDR IS </p><p>  WHEN "000000" => DATAOUT<="1110011001001111000000010";</p><p>  WH

39、EN "000010" => DATAOUT<="1001011001001011010000000";</p><p>  WHEN "000011" => DATAOUT<="1000111001001011000000000";</p><p>  WHEN "00010

40、0" => DATAOUT<="1000011101001111100000000";</p><p>  WHEN "000101" => DATAOUT<="1000001001011111000000110";</p><p>  WHEN "000110" =>

41、DATAOUT<="1000111010001111000000000";</p><p>  WHEN "000111" => DATAOUT<="1000111001001101000000000";</p><p>  WHEN "001000" => DATAOUT<=&q

42、uot;1110011001001111000000011";</p><p>  WHEN "001001" => DATAOUT<="1000001001011111000000100";</p><p>  WHEN "001010" => DATAOUT<="1110011001

43、001111001100000";</p><p>  WHEN "001011" => DATAOUT<="1000010001101111000000101";</p><p>  WHEN "001100" => DATAOUT<="100001000110111100001001

44、0";</p><p>  WHEN "001101" => DATAOUT<="1000001001101111000010100";</p><p>  WHEN "001110" => DATAOUT<="1110011001001111000010101";</p

45、><p>  WHEN "001111" => DATAOUT<="1000010001000110000000000";</p><p>  WHEN "010010" => DATAOUT<="1000001001011111000010011";</p><p>

46、;  WHEN "010011" => DATAOUT<="1000111000001111000000000";</p><p>  WHEN "010100" => DATAOUT<="1000111110001111000000000";</p><p>  WHEN "

47、010101" => DATAOUT<="0100011001001011000000000";</p><p>  WHEN "100000" => DATAOUT<="0100011001001011000000000";</p><p>  WHEN "110000" =

48、> DATAOUT<="1000011001001111000000000";</p><p>  WHEN OTHERS => DATAOUT<="1000011001001111000000000";</p><p><b>  END CASE;</b></p><p>

49、  UA(5 DOWNTO 0)<=DATAOUT(5 DOWNTO 0);</p><p>  D(18 DOWNTO 0)<=DATAOUT(24 DOWNTO 6);</p><p>  END PROCESS;</p><p>  END A; </p><p>  微命令寄存器單元MCOMMAND </p&g

50、t;<p>  LIBRARY IEEE;</p><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>  ENTITY MCOM

51、MAND IS</p><p><b>  PORT(</b></p><p>  T2,T3,T4,I3,I2,I1,I0:IN STD_LOGIC;</p><p>  O:IN STD_LOGIC_VECTOR(18 DOWNTO 0);</p><p>  P1,P2,LOAD,LDPC,LDAR,LDIR,LD

52、R0,LDR1,LDR2,R0_B,R1_B,R2_B,S1,S0,ALU_B,LDAC,LDDR,WR,CS,SW_B,LED_B,LDFR:OUT STD_LOGIC</p><p><b>  );</b></p><p>  END MCOMMAND;</p><p>  ARCHITECTURE A OF MCOMMAND IS<

53、;/p><p>  SIGNAL DATAOUT:STD_LOGIC_VECTOR(18 DOWNTO 0);</p><p><b>  BEGIN</b></p><p>  PROCESS(T2)</p><p><b>  BEGIN</b></p><p>  IF(T

54、2'EVENT AND T2='1')THEN</p><p>  DATAOUT(18 DOWNTO 0)<=O(18 DOWNTO 0);</p><p><b>  END IF;</b></p><p>  P2<=DATAOUT(0);</p><p>  P1<=DA

55、TAOUT(1);</p><p>  LDFR<=DATAOUT(2) AND T4;</p><p>  LED_B<=DATAOUT(3);</p><p>  SW_B<=DATAOUT(4);</p><p>  CS<=DATAOUT(5);</p><p>  WR<=DAT

56、AOUT(6)OR(NOT T3);</p><p>  LDDR<=DATAOUT(7) AND T4;</p><p>  LDAC<=DATAOUT(8) AND T4;</p><p>  ALU_B<=DATAOUT(9);</p><p>  S0<=DATAOUT(10);</p><

57、p>  S1<=DATAOUT(11);</p><p>  R2_B<=(DATAOUT(13)OR(NOT I1)OR I0)AND(DATAOUT(12)OR(NOT I3)OR I2);</p><p>  R1_B<=(DATAOUT(13)OR(NOT I0)OR I1)AND(DATAOUT(12)OR(NOT I2)OR I3);</p>

58、<p>  R0_B<=(DATAOUT(13)OR I1 OR I0)AND(DATAOUT(12)OR I3 OR I2);</p><p>  LDR2<=T4 AND DATAOUT(14)AND I1 AND (NOT I0); </p><p>  LDR1<=T4 AND DATAOUT(14)AND (NOT I1) AND I0;</

59、p><p>  LDR0<=T4 AND DATAOUT(14)AND (NOT I1) AND (NOT I0);</p><p>  LDIR<=DATAOUT(15)AND T3;</p><p>  LDAR<=DATAOUT(16)AND T3;</p><p>  LDPC<=DATAOUT(17)AND T4

60、;</p><p>  LOAD<=DATAOUT(18);</p><p>  END PROCESS;</p><p><b>  END A;</b></p><p>  微地址轉(zhuǎn)換器單元(F1、F2、F3)</p><p>  LIBRARY IEEE;</p><

61、;p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  ENTITY F1 IS</p><p><b>  PORT(</b></p><p>  UA5,UA4,UA3,UA2,UA1,UA0:IN STD_LOGIC;</p><p>  D:OUT STD_LOGIC_VEC

62、TOR(5 DOWNTO 0)</p><p><b>  );</b></p><p><b>  END F1;</b></p><p>  ARCHITECTURE A OF F1 IS</p><p><b>  BEGIN</b></p><p&g

63、t;  D(5)<=UA5;</p><p>  D(4)<=UA4;</p><p>  D(3)<=UA3;</p><p>  D(2)<=UA2;</p><p>  D(1)<=UA1;</p><p>  D(0)<=UA0;</p><p>&l

64、t;b>  END A;</b></p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  ENTITY F2 IS</p><p><b>  PORT(</b></p><p>  UA5

65、,UA4,UA3,UA2,UA1,UA0:OUT STD_LOGIC;</p><p>  D:IN STD_LOGIC_VECTOR(5 DOWNTO 0)</p><p><b>  );</b></p><p><b>  END F2;</b></p><p>  ARCHITECTURE

66、A OF F2 IS</p><p><b>  BEGIN</b></p><p>  UA5<=D(5);</p><p>  UA4<=D(4);</p><p>  UA3<=D(3);</p><p>  UA2<=D(2);</p><p&g

67、t;  UA1<=D(1);</p><p>  UA0<=D(0);</p><p><b>  END A;</b></p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  ENTITY F3

68、 IS</p><p><b>  PORT(</b></p><p>  UA7,UA6,UA5,UA4,UA3,UA2,UA1,UA0:OUT STD_LOGIC;</p><p>  D:IN STD_LOGIC_VECTOR(7 DOWNTO 0)</p><p><b>  );</b>&

69、lt;/p><p><b>  END F3;</b></p><p>  ARCHITECTURE A OF F3 IS</p><p><b>  BEGIN</b></p><p>  UA7<=D(7);</p><p>  UA6<=D(6);</p&

70、gt;<p>  UA5<=D(5);</p><p>  UA4<=D(4);</p><p>  UA3<=D(3);</p><p>  UA2<=D(2);</p><p>  UA1<=D(1);</p><p>  UA0<=D(0);</p>

71、<p><b>  END A;</b></p><p>  微程序操作器單元CROM</p><p>  由地址轉(zhuǎn)移邏輯電路單元ADDR、微地址寄存器單元aa、控制存儲(chǔ)器單元CONTROM、微命令寄存器單元組成MCOMMAND等幾部分組成。</p><p>  算術(shù)邏輯運(yùn)算執(zhí)行單元ALU</p><p> 

72、 LIBRARY IEEE;</p><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>  ENTITY ALU IS</p>

73、<p><b>  PORT(</b></p><p>  A:IN STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p>  B:IN STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p>  S1,S0:IN STD_LOGIC;</p><p>  BCDOUT

74、:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p>  F: OUT STD_LOGIC</p><p><b>  );</b></p><p><b>  END ALU;</b></p><p>  ARCHITECTURE A OF ALU IS</p

75、><p>  SIGNAL TEMP:STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p><b>  BEGIN</b></p><p>  PROCESS(S1,S0)</p><p><b>  BEGIN</b></p><p>  IF(S1=&#

76、39;0' AND S0='0')THEN</p><p>  BCDOUT<=A+B;</p><p>  ELSIF(S1='0' AND S0='1')THEN</p><p>  BCDOUT<=A*B;</p><p>  ELSIF(S1='1'

77、AND S0='0')THEN</p><p><b>  F<=B(7);</b></p><p>  ELSIF(S1='1' AND S0='1')THEN</p><p>  BCDOUT<=A-1;</p><p><b>  END IF;

78、</b></p><p>  END PROCESS;</p><p><b>  END A;</b></p><p>  狀態(tài)條件寄存器單元LS74</p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;<

79、/p><p>  ENTITY LS74 IS</p><p><b>  PORT(</b></p><p>  LDFR:IN STD_LOGIC;</p><p>  F:IN STD_LOGIC;</p><p>  FS:OUT STD_LOGIC</p><p>&

80、lt;b>  );</b></p><p><b>  END LS74;</b></p><p>  ARCHITECTURE A OF LS74 IS</p><p><b>  BEGIN</b></p><p>  PROCESS(LDFR)</p><

81、p><b>  BEGIN</b></p><p>  IF(LDFR'EVENT AND LDFR='1')THEN</p><p><b>  FS<=F;</b></p><p><b>  END IF;</b></p><p>  

82、END PROCESS;</p><p><b>  END A;</b></p><p>  公共寄存器單元LS273</p><p>  累加器AC、數(shù)據(jù)寄存器DR、通用寄存器(R0、R1、R2)、地址寄存器AR</p><p>  LIBRARY IEEE;</p><p>  USE IE

83、EE.STD_LOGIC_1164.ALL;</p><p>  ENTITY LS273 IS</p><p><b>  PORT(</b></p><p>  D:IN STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p>  CLK:IN STD_LOGIC;</p><

84、p>  O:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)</p><p><b>  );</b></p><p>  END LS273;</p><p>  ARCHITECTURE A OF LS273 IS</p><p><b>  BEGIN</b></p

85、><p>  PROCESS(CLK)</p><p><b>  BEGIN</b></p><p>  IF(CLK'EVENT AND CLK='1')THEN</p><p><b>  O<=D;</b></p><p><b>

86、  END IF;</b></p><p>  END PROCESS;</p><p><b>  END A;</b></p><p>  1:2分配器FEN2單元</p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.

87、ALL;</p><p>  ENTITY FEN2 IS</p><p><b>  PORT(</b></p><p>  WR,LED_B:IN STD_LOGIC;</p><p>  X:IN STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p>  W1,W2:O

88、UT STD_LOGIC_VECTOR(7 DOWNTO 0)</p><p><b>  );</b></p><p><b>  END FEN2;</b></p><p>  ARCHITECTURE A OF FEN2 IS</p><p><b>  BEGIN</b>

89、;</p><p>  PROCESS(LED_B,WR)</p><p><b>  BEGIN</b></p><p>  IF(LED_B='0' AND WR='0')THEN</p><p><b>  W2<=X;</b></p>&l

90、t;p><b>  ELSE</b></p><p><b>  W1<=X;</b></p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p><b>  END A;</b></

91、p><p>  3選1數(shù)據(jù)選擇器MUX3單元</p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  ENTITY MUX3 IS</p><p><b>  PORT(</b></p><p

92、>  ID:IN STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p>  SW_B,CS:IN STD_LOGIC;</p><p>  N1,N2:IN STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p>  EW:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)</p><

93、p><b>  );</b></p><p><b>  END MUX3;</b></p><p>  ARCHITECTURE A OF MUX3 IS</p><p><b>  BEGIN</b></p><p>  PROCESS(SW_B,CS)</p&

94、gt;<p><b>  BEGIN</b></p><p>  IF(SW_B='0')THEN</p><p><b>  EW<=ID;</b></p><p>  ELSIF(CS='0')THEN</p><p><b>  E

95、W<=N2;</b></p><p><b>  ELSE</b></p><p><b>  EW<=N1;</b></p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p&g

96、t;<b>  END A;</b></p><p>  4選1數(shù)據(jù)選擇器MUX4單元</p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  ENTITY MUX4 IS</p><p><b>

97、  PORT(</b></p><p>  C,D,E,F: IN STD_LOGIC;</p><p>  X1,X2,X3,X4: IN STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p>  W: out STD_LOGIC_VECTOR(7 DOWNTO 0)</p><p><b>  

98、);</b></p><p><b>  END MUX4;</b></p><p>  ARCHITECTURE A OF MUX4 IS</p><p>  SIGNAL SEL: STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p><b>  BEGIN</b&g

99、t;</p><p>  SEL<=F&E&D&C;</p><p>  PROCESS(SEL)</p><p><b>  BEGIN </b></p><p>  IF(SEL="1110") THEN --R0_out</p><p&g

100、t;<b>  W<=X1;</b></p><p>  ELSIF(SEL="1101") THEN --R1_out</p><p><b>  W<=X2;</b></p><p>  ELSIF(SEL="1011") THEN --R2-out</p&

101、gt;<p><b>  W<=X3;</b></p><p>  ELSIF(SEL="0111") THEN --ALU_out</p><p><b>  W<=X4;</b></p><p><b>  ELSE</b></p>&

102、lt;p><b>  NULL;</b></p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p><b>  END A;</b></p><p><b>  程序計(jì)數(shù)器PC單元</b><

103、;/p><p>  LIBRARY IEEE;</p><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>  ENTITY

104、 PC IS</p><p><b>  PORT(</b></p><p>  LOAD,LDPC,CLR:IN STD_LOGIC;</p><p>  D:IN STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p>  O:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)<

105、;/p><p><b>  );</b></p><p><b>  END PC;</b></p><p>  ARCHITECTURE A OF PC IS</p><p>  SIGNAL QOUT:STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p>

106、;<b>  BEGIN</b></p><p>  PROCESS(LDPC,CLR,LOAD)</p><p><b>  BEGIN</b></p><p>  IF(CLR='0')THEN</p><p>  QOUT<="00000000"; -

107、-BUS->PC,將pc清0</p><p>  ELSIF(LDPC'EVENT AND LDPC='1')THEN</p><p>  IF(LOAD='0')THEN</p><p><b>  QOUT<=D;</b></p><p><b>  EL

108、SE</b></p><p>  QOUT<=QOUT+1;--PC+1</p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p><b>

109、  O<=QOUT;</b></p><p><b>  END A;</b></p><p>  主存儲(chǔ)器ROM芯片ROM16單元</p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  

110、USE IEEE.STD_LOGIC_ARITH.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  ENTITY ROM16 IS</p><p><b>  PORT(</b></p><p>  DOUT:OUT STD_LOGIC_VECTOR(

111、7 DOWNTO 0);</p><p>  ADDR:IN STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p>  CS:IN STD_LOGIC</p><p><b>  );</b></p><p>  END ROM16;</p><p>  ARCHITECTU

112、RE A OF ROM16 IS</p><p><b>  BEGIN</b></p><p>  DOUT<= "10000000" WHEN ADDR="00000000" AND CS='0' ELSE--MOV R0,FB</p><p>  "11111011

113、" WHEN ADDR="00000001" AND CS='0' ELSE</p><p>  "10000001" WHEN ADDR="00000010" AND CS='0' ELSE--MOV R1,00</p><p>  "00000000" WHEN A

114、DDR="00000011" AND CS='0'ELSE</p><p>  "01110010" WHEN ADDR="00000100" AND CS='0' ELSE--L1:IN R2</p><p>  "10010010" WHEN ADDR="00000

115、101" AND CS='0' ELSE--TEST R2</p><p>  "10100000" WHEN ADDR="00000110" AND CS='0' ELSE--JS L2</p><p>  "00001010" WHEN ADDR="00000111"

116、; AND CS='0' ELSE</p><p>  "10111010" WHEN ADDR="00001000" AND CS='0' ELSE--MUL R2,R2</p><p>  "11001001" WHEN ADDR="00001001" AND CS='

117、;0' ELSE--ADD R2,R1</p><p>  "11010000" WHEN ADDR="00001010" AND CS='0' ELSE--L2:INC R0</p><p>  "10010000" WHEN ADDR="00001011" AND CS='0

118、' ELSE--TEST R0</p><p>  "10100000" WHEN ADDR="00001100" AND CS='0' ELSE--JS L1</p><p>  "00000100" WHEN ADDR="00001101" AND CS='0' EL

119、SE</p><p>  "11110100" WHEN ADDR="00001110" AND CS='0' ELSE--L3:OUT R1</p><p>  "11100100" WHEN ADDR="00001111" AND CS='0' ELSE--JMP L3<

120、;/p><p>  "00001110" WHEN ADDR="00010000" AND CS='0' ELSE</p><p>  "00000000";</p><p><b>  END A;</b></p><p>  時(shí)序產(chǎn)生器COUNT

121、ER單元</p><p>  LIBRARY IEEE;</p><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> 

122、 ENTITY COUNTER IS</p><p><b>  PORT(</b></p><p>  Q,CLR:IN STD_LOGIC;</p><p>  T2,T3,T4:OUT STD_LOGIC</p><p><b>  );</b></p><p>  E

123、ND COUNTER;</p><p>  ARCHITECTURE A OF COUNTER IS</p><p>  SIGNAL X:STD_LOGIC_VECTOR(1 DOWNTO 0);</p><p><b>  BEGIN</b></p><p>  PROCESS(Q,CLR)</p>&

124、lt;p><b>  BEGIN</b></p><p>  IF(CLR='0')THEN</p><p><b>  T2<='0';</b></p><p><b>  T3<='0';</b></p><p&

125、gt;<b>  T4<='0';</b></p><p><b>  X<="00";</b></p><p>  ELSIF(Q'EVENT AND Q='1')THEN</p><p><b>  X<=X+1;</b>

126、;</p><p>  T2<=(NOT X(1)) AND X(0);</p><p>  T3<=X(1) AND (NOT X(0));</p><p>  T4<=X(1) AND X(0);</p><p><b>  END IF;</b></p><p>  END

127、 PROCESS;</p><p><b>  END A;</b></p><p>  嵌入式CISC模型機(jī)頂層電路單元</p><p><b>  匯編語言源程序設(shè)計(jì)</b></p><p>  機(jī)器語言源程序代碼設(shè)計(jì)</p><p>  功能仿真及波形圖結(jié)果分析<

128、/p><p>  從外部輸入5個(gè)有符號(hào)整數(shù),分別是03、FE(-2)、01、FF(-1)、FB(-5);</p><p>  1、當(dāng)執(zhí)行MOV R0,F(xiàn)B時(shí),R0為FB(-5),用于計(jì)數(shù),每輸入一個(gè)就自加1;當(dāng)執(zhí)行MOV R1,00時(shí),R1為00;輸入第一個(gè)數(shù):03,執(zhí)行IN R2指令,R2為03;對(duì)應(yīng)的AR的地址為輸入指令I(lǐng)N的地址:04;PC程序計(jì)數(shù)器為05,執(zhí)行了5次;微地址的04表示測(cè)

129、試目的寄存器的數(shù)值的符號(hào)位,并鎖存,來判斷是否要執(zhí)行跳轉(zhuǎn),對(duì)應(yīng)的指令為TEST Rd。如果是正數(shù)就不用跳轉(zhuǎn),就接著執(zhí)行下一條指令,如果是負(fù)數(shù),就跳轉(zhuǎn)到對(duì)應(yīng)的目標(biāo)子程序,執(zhí)行對(duì)應(yīng)的指令。如圖所示:</p><p>  輸入第一個(gè)數(shù)的結(jié)果為09,如圖所示:</p><p>  輸入第二個(gè)數(shù)FE(-2),存入R2,對(duì)應(yīng)的地址AR為07(輸入指令I(lǐng)N的地址),由于是負(fù)數(shù),跳轉(zhuǎn)到INC執(zhí)行,如圖所示

130、:</p><p>  第一個(gè)數(shù)03和第二個(gè)數(shù)FE輸出的結(jié)果為09,如圖所示:</p><p>  依次輸入5個(gè)有符號(hào)整數(shù),分別是03、FE(-2)、01、FF(-1)、FB(-5); 03*03+01*01=0A,正確。結(jié)果如圖所示:</p><p>  嵌入式CISC模型機(jī)的故障現(xiàn)象分析</p><p>  在設(shè)計(jì)的過程中,出現(xiàn)過以下問題

131、:</p><p>  第一個(gè)問題就是循環(huán)中斷,當(dāng)R0計(jì)數(shù)的FB只能加到FD,這就意味著,從外部只能輸入3個(gè)數(shù),心想是不是微地址有問題,于是就按照老師的方法從里到外地查找控制存儲(chǔ)器單元CONTROM,一一對(duì)應(yīng)的波形圖和微程序控制設(shè)計(jì)流程圖,沒發(fā)現(xiàn)什么問題;難道是主存儲(chǔ)器單元ROM16有問題嗎?于是帶著疑問去檢查自己的機(jī)器源程序代碼設(shè)計(jì),一一對(duì)應(yīng)器件上的VDHL語言,結(jié)果發(fā)現(xiàn),是有一個(gè)跳轉(zhuǎn)有問題,于是對(duì)應(yīng)機(jī)器代碼設(shè)

132、計(jì),把它修改了過來。再重新生成ROM16主存儲(chǔ)器,再重新生成頂層電路單元,選定當(dāng)前波形仿真文件,然后模擬仿真測(cè)試,結(jié)果R0計(jì)數(shù)的FB可以自加到00了,于是就可以輸入5個(gè)有符號(hào)整數(shù)了。</p><p>  第二個(gè)問題就是判斷符號(hào)位SF,當(dāng)每次輸入一個(gè)有符號(hào)整數(shù)存入R2時(shí),這時(shí)就需要怎么去判斷它的符號(hào)位,才能執(zhí)行下一條指令,我用了測(cè)試指令TEST,測(cè)試它的最高位,鎖存了它的符號(hào)位。但是由于沒有改ALU和ADDR的位置

133、,不管是輸入正數(shù)還是負(fù)數(shù),它都要去計(jì)算平方,這就達(dá)不到課設(shè)的要求。于是查找資料,ALU的算法不變,在S1=1和S0=0的時(shí)候,賦值給FS;這就需要修改ADDR 器件里修改為SE5<=NOT(NOT FS AND P2 AND T4);于是按照步驟重新仿真就可以正確判斷符號(hào)位了。</p><p><b>  課設(shè)總結(jié)心得體會(huì)</b></p><p>  對(duì)于計(jì)算機(jī)

134、組成原理課程設(shè)計(jì),一開始上第一節(jié)課的時(shí)候,聽得一頭霧水,之后以為是一件很簡(jiǎn)單的事情,想憑著自己對(duì)軟件的熟悉使用和以前做Web的經(jīng)驗(yàn)去做。但是實(shí)踐下來,發(fā)現(xiàn)里面存在很多問題,比如什么是微地址,什么是微程序,什么是后繼微地址,機(jī)器代碼要與什么關(guān)聯(lián)起來,控制器產(chǎn)生單元又是什么,一大堆問題暴露在我的面前。于是就去復(fù)印店復(fù)印了一份計(jì)算機(jī)組成原理課設(shè)教材。一頁一頁地研究,發(fā)現(xiàn)里面的邏輯很清晰,雖然第一次看不懂,但是里面的代碼很直觀,比如算術(shù)執(zhí)行單元

135、ALU的幾種運(yùn)算,需要什么運(yùn)算就設(shè)計(jì)什么運(yùn)算,還有要設(shè)置控制信號(hào),與狀態(tài)寄存器關(guān)聯(lián),與暫存器關(guān)聯(lián),與輸出總線關(guān)聯(lián)。按照課本的步驟,首先設(shè)計(jì)指令系統(tǒng)和指令格式,然后設(shè)計(jì)匯編及機(jī)器代碼,接著設(shè)計(jì)微程序流程圖和微指令字段,最后生成器件和模擬仿真。最讓我頭疼的是為什么會(huì)模擬仿真頻頻會(huì)出現(xiàn)循環(huán)中斷,也就是只能輸入兩三個(gè)數(shù),又為什么輸入的數(shù)不管是正數(shù)還是負(fù)數(shù),仿真測(cè)試都通過了,并且都算了平方和。于是就去檢查匯編,改了又改,還是沒有結(jié)果,還沒有改到正

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論