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

下載本文檔

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

文檔簡介

1、<p><b>  課程設計報告</b></p><p>  課程名稱脈沖與數(shù)字電路</p><p><b>  設計題目簡單運算器</b></p><p><b>  專業(yè)通信工程</b></p><p><b>  班級</b></p&

2、gt;<p><b>  學號</b></p><p><b>  姓名</b></p><p>  完成日期2012年06月12日</p><p><b>  運算器</b></p><p><b>  摘要</b></p>

3、<p>  設計一個簡單運算器。由頂層電路、運算器、按鍵輸入、控制信號產(chǎn)生、修正結果、顯示等模塊構成。用Quartus II繪制原理圖或編寫VHDL程序,然后封裝畫出電路圖,該簡單運算器可以實現(xiàn)加、減法算數(shù)運算和與、異或邏輯運算,且該運算器設計完之后經(jīng)過了Quartus II軟件和FPGA實驗板的下載驗證。</p><p>  關鍵詞:運算器,Quartus II,VHDL程序</p>&

4、lt;p><b>  前言</b></p><p>  隨著FPGA性能的不斷完善,F(xiàn)PGA器件的種類日益豐富,受到世界范圍內(nèi)電子設計人員的普遍歡迎,并占據(jù)了較大的市場,其生產(chǎn)廠家也由原來的Xilinx公司一家增加到Altera、Actel、lattice等十幾家公司。</p><p>  Altera公司的主要產(chǎn)品有:屬于FPGA的FLEX、ACEX、APEX

5、、Mercury、Excalibur、Stratix和Cyclone等系列;屬于CPLD的MAX和Classic系列。開發(fā)工具有,被普遍認為是最優(yōu)秀PLD 開發(fā)平臺之一的MAX+Plus II和支持APEX、Mercury、Excalibur、Stratix和Cyclone系列器件的Quartus II開發(fā)軟件。</p><p>  Cyclone系列器件是Altera公司推出的低價位FPGA產(chǎn)品,是Strati

6、x系列的簡化版,分為Cyclone I和Cyclone II兩個系列。Cyclone I系列產(chǎn)品為基于1.5V、采用0.13um全銅SRAM工藝的低成本FPGA。Cyclone II 系列產(chǎn)品基于1.2V,采用0.09um全銅CMOS工藝,SRAM編程技術,其成本更低、容量更高、速度更快。它和高性能的Stratix II系列的FPGA是目前Altera公司主流產(chǎn)品。</p><p>  我的簡單運算器主要是用VH

7、DL語言編寫,以Cyclone器件為依托,并下載到Altera仿真工具箱Cyclone-EP1C6Q240C8驗證功能成功,能夠初步完成簡單運算器的雛形。</p><p>  隨著大規(guī)模集成電路技術和計算機技術的高速發(fā)展,在涉及通信、國防、工業(yè)自動化、計算機設計與應用、儀器儀表等領域的電子系統(tǒng)設計工作中,F(xiàn)PGA技術的含量正以驚人的速度提升。電子類的新技術項目的開發(fā)也更多地依賴于FPGA技術的應用,特別是隨著HD

8、L等硬件描述語言綜合功能和性能的提高,計算機中許多重要的元件(包括CPU)都用硬件描述語言來設計和表達,許多微機CPU、硬核嵌入式系統(tǒng)(如ARM、MIPS)、軟核嵌入式系統(tǒng)(如NiosII)、大型CPU,乃至整個計算機系統(tǒng)都用FPGA來實現(xiàn),即所謂的單片系統(tǒng)SOC或SOPC(System On a Chip、System On a Programmerable Chip)。計算機和CPU的設計技術及其實現(xiàn)途徑進入了一個全新的時代!不但如

9、此,傳統(tǒng)的CPU結構模式,如馮諾依曼結構和哈佛結構正在接受巨大的挑戰(zhàn)。</p><p>  例如美國Wincom Systems 公司推出一款令人驚嘆的服務器,其核心部分是由FPGA完成的超強功能CPU。該系統(tǒng)工作能力超過50臺DELL或IBM計算機,或SUN Microsystems 公司的服務器。該服務器的處理速度要比傳統(tǒng)服務器快50到300倍。我們知道,傳統(tǒng)的PC機及服務器通常采用諸如Intel公司的奔騰處

10、理器或SUN公司的SPARC芯片作為中央處理單元,而Wincom Systems的這款產(chǎn)品卻沒有采用微處理器,而是由FPGA芯片驅動。FPGA芯片的運行速度雖比奔騰處理器慢,但可并行處理多項任務,而微處理器一次僅能處理一項任務。因此,Wincom Systems的服務器只需配置幾個價格僅為2000多美元的FPGA芯片,便可擊敗SUN公司的服務器或采用Intel處理器的計算機。</p><p>  50多年前,匈牙

11、利數(shù)學家馮諾依曼提出了計算機的設計構想:通過中央處理器從儲存器中存取數(shù)據(jù),并逐一處理各項任務。然而現(xiàn)在,卻采用FPGA取代傳統(tǒng)微處理器獲得了更高的性能,致使美國Xilinx公司的首席執(zhí)行官Willem Roelandts認為:“由馮諾依曼提出的電腦架構已經(jīng)走到盡頭”,“可編程芯片將掀起下一輪應用高潮”。</p><p>  FPGA芯片操作靈活,可以重復擦寫無限次,而微處理器均采用固定電路,只能進行一次性設計。設

12、計人員可通過改變FPGA中晶體管的開關狀態(tài)對電路進行重寫,即重配置,從而盡管FPGA芯片的時鐘頻率要低于奔騰處理器,但是由于FPGA芯片可并行處理各種不同的運算,所以可以完成許多復雜的任務。正如Willem Roelandts所說的,“我們認為下一代超級電腦將基于可編程邏輯器件”,他聲稱,這種機器的功能比目前最大的超級電腦還要強大許多倍。EDA專家William Carter認為,只要EDA開發(fā)工具的功能允許,將有無數(shù)的證據(jù)證明FPGA

13、 具有這種神奇的能力,進而實現(xiàn)基于FPGA的超級電腦的開發(fā)。</p><p>  此外,美國加州大學伯克利分校和楊百翰大學的研究人員也正在設計基于FPGA的電腦,這些電腦可在運行中實現(xiàn)動態(tài)重配置。這對定位危險目標等軍事應用和面容識別之類的計算密集型安全應用十分有用。由此看來,在計算機應用領域和計算機系統(tǒng)設計領域中,EDA技術和FPGA的應用方興未艾!</p><p>  硬件描述語言HDL

14、(Hardware Description Language)是EDA技術的另一重要組成部分,常見的HDL有:VHDL、Verilog HDL、System Verilog和SystemC。其中VHDL、Verilog在現(xiàn)在EDA設計中使用最多,也得到幾乎所有的主流EDA工具的支持。而后兩種HDL 語言尚處于完善過程中。</p><p>  VHDL語言具有很強的電路描述和建模能力,能從多個層次對數(shù)字系統(tǒng)進行建模

15、和描述,從而大大簡化了硬件設計任務,提高了設計效率和可靠性。</p><p>  VHDL具有與具體硬件電路無關和與設計平臺無關的特性,并且具有良好的電路行為描述和系統(tǒng)描述能力,在語言易讀性和層次化結構設計方面表現(xiàn)了強大的生命力和應用潛力。因此,VHDL支持各種模式的設計方法:自頂向下與自底向上或混合方法,在面對當今許多電子產(chǎn)品生命周期縮短,需要多次重新設計以融入最新技術、改變工藝等方面, VHDL都表現(xiàn)了良好的

16、適應性。</p><p><b>  第一章系統(tǒng)原理</b></p><p><b>  1.1系統(tǒng)功能</b></p><p>  該系統(tǒng)是基于FPGA設計的簡單運算器,可以實現(xiàn)簡單的-7到+7范圍內(nèi)的加、減、與、以及異或四則運算。將設計好的系統(tǒng)電路圖與硬件實驗板相連接,進行運算驗證。該實驗板由一個8按鍵電路和一個32位

17、LCD顯示器組成,通過相應的按鍵輸入把運算結果顯示在LCD顯示器上。</p><p><b>  1.2系統(tǒng)原理圖</b></p><p><b>  1.3電路設計原理</b></p><p>  該運算器電路由按鍵輸入、控制、修正、顯示和運算五大模塊組成,來實現(xiàn)加、減、與、異或運算功能。首先按鍵模塊用于輸入兩個數(shù)和運算

18、符,通過控制模塊傳送到運算器模塊進行運算,再連接到修正模塊,通過修正模塊對“溢出”的數(shù)值進行修正,最后顯示模塊功能實現(xiàn)把運算過程反應到LCD顯示器上。</p><p><b>  第二章系統(tǒng)組成</b></p><p><b>  2.1按鍵模塊</b></p><p>  2.1.1按鍵模塊VHDL程序</p>

19、;<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 KEY I

20、S</p><p>  PORT(EN:OUT STD_LOGIC;</p><p>  YSF:OUT STD_LOGIC_VECTOR(1 DOWNTO 0);</p><p>  RSTN,CLK:IN STD_LOGIC;</p><p>  KEYA,KEYB:IN STD_LOGIC;</p><p>  

21、KADD,KSUB,KAND,KXOR,KEQU:IN STD_LOGIC;</p><p>  A,B,C,D:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  XSYSF:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p>  XA,XB:OUT STD_LOGIC_VECTOR(7 DOWN

22、TO 0));</p><p><b>  END KEY;</b></p><p>  ARCHITECTURE ARCH OF KEY IS</p><p>  SIGNAL TKADD,TKSUB,TKAND,TKXOR,TKEQU :STD_LOGIC;</p><p>  SIGNAL TA,TB:STD_LO

23、GIC_VECTOR(3 DOWNTO 0);</p><p><b>  BEGIN</b></p><p>  ----保存A------</p><p>  PROCESS (KEYA,RSTN)</p><p><b>  BEGIN</b></p><p>  IF

24、 RSTN='0' THEN TA<="0000";</p><p>  ELSIF (KEYA'EVENT AND KEYA='1')THEN</p><p><b>  TA<=TA+1;</b></p><p><b>  END IF;</b>

25、</p><p>  END PROCESS;</p><p>  -----保存B------</p><p>  PROCESS (KEYB,RSTN)</p><p><b>  BEGIN</b></p><p>  IF RSTN='0' THEN TB<=&quo

26、t;0000";</p><p>  ELSIF(KEYB'EVENT AND KEYB='1')THEN</p><p><b>  TB<=TB+1;</b></p><p><b>  END IF;</b></p><p>  END PROCESS;

27、</p><p>  ------獲取信號------</p><p>  PROCESS(RSTN,KADD)</p><p><b>  BEGIN </b></p><p>  IF RSTN='0' THEN TKADD<='0';</p><p> 

28、 ELSIF (KADD'EVENT AND KADD='1')THEN TKADD<='1';END IF;</p><p>  END PROCESS;</p><p>  ------------------</p><p>  PROCESS(RSTN,KSUB)</p><p><

29、b>  BEGIN </b></p><p>  IF RSTN='0' THEN TKSUB<='0';</p><p>  ELSIF (KSUB'EVENT AND KSUB='1')THEN TKSUB<='1';END IF;</p><p>  END

30、PROCESS;</p><p><b>  --------</b></p><p>  PROCESS(RSTN,KAND)</p><p><b>  BEGIN </b></p><p>  IF RSTN='0' THEN TKAND<='0';<

31、;/p><p>  ELSIF (KAND'EVENT AND KAND='1')THEN TKAND<='1';END IF;</p><p>  END PROCESS;</p><p>  PROCESS(RSTN,KXOR)</p><p><b>  BEGIN </b>

32、;</p><p>  IF RSTN='0' THEN TKXOR<='0';</p><p>  ELSIF (KXOR'EVENT AND KXOR='1')THEN TKXOR<='1';END IF;</p><p>  END PROCESS;</p>&l

33、t;p>  -------------</p><p>  PROCESS(RSTN,KEQU)</p><p><b>  BEGIN </b></p><p>  IF RSTN='0' THEN TKEQU<='0';</p><p>  ELSIF (KEQU'

34、EVENT AND KEQU='1')THEN TKEQU<='1';END IF;</p><p>  END PROCESS;</p><p>  PROCESS(RSTN,CLK,TKADD,TKSUB,TKAND,TKXOR,TKEQU,TA,TB)</p><p><b>  BEGIN</b>&

35、lt;/p><p>  IF RSTN='0' THEN YSF<="00";EN<='0';XSYSF<="00100000";</p><p>  ELSIF(CLK'EVENT AND CLK='1') THEN</p><p>  IF TKADD=

36、'1' THEN YSF<="00";XSYSF<="00101011";A<=TA;B<=TB;END IF;</p><p>  IF TKSUB='1' THEN YSF<="01";XSYSF<="00101101";A<=TA;B<=TB;END

37、 IF;</p><p>  IF TKAND='1' THEN YSF<="10";XSYSF<="00101010";A<=TA;C<=TB;END IF;</p><p>  IF TKEQU='1' THEN EN<='1';END IF;</p>&

38、lt;p><b>  END IF;</b></p><p>  END PROCESS;</p><p>  PROCESS(TA,TB,CLK)</p><p><b>  BEGIN</b></p><p>  IF(CLK'EVENT AND CLK='1')T

39、HEN</p><p>  CASE TA IS</p><p>  WHEN "0000"=>XA<="00110000";</p><p>  WHEN "0001"=>XA<="00110001";</p><p>  WHEN &q

40、uot;0010"=>XA<="00110010";</p><p>  WHEN "0011"=>XA<="00110011";</p><p>  WHEN "0100"=>XA<="00110100";</p><p&g

41、t;  WHEN "0101"=>XA<="00110101";</p><p>  WHEN "0110"=>XA<="00110110";</p><p>  WHEN "0111"=>XA<="00110111";</p&g

42、t;<p>  WHEN "1000"=>XA<="00111000";</p><p>  WHEN "1001"=>XA<="00111001";</p><p>  WHEN "1010"=>XA<="01000001&quo

43、t;;</p><p>  WHEN "1011"=>XA<="01000010";</p><p>  WHEN "1100"=>XA<="01000011";</p><p>  WHEN "1101"=>XA<="0

44、1000100";</p><p>  WHEN "1110"=>XA<="01000101";</p><p>  WHEN "1111"=>XA<="01000110";</p><p>  WHEN OTHERS =>NULL;</p&

45、gt;<p><b>  END CASE;</b></p><p>  CASE TB IS</p><p>  WHEN "0000"=>XB<="00110000";</p><p>  WHEN "0001"=>XB<="0011

46、0001";</p><p>  WHEN "0010"=>XB<="00110010";</p><p>  WHEN "0011"=>XB<="00110011";</p><p>  WHEN "0100"=>XB<

47、="00110100";</p><p>  WHEN "0101"=>XB<="00110101";</p><p>  WHEN "0110"=>XB<="00110110";</p><p>  WHEN "0111"

48、=>XB<="00110111";</p><p>  WHEN "1000"=>XB<="00111000";</p><p>  WHEN "1001"=>XB<="00111001";</p><p>  WHEN "

49、;1010"=>XB<="01000001";</p><p>  WHEN "1011"=>XB<="01000010";</p><p>  WHEN "1100"=>XB<="01000011";</p><p> 

50、 WHEN "1101"=>XB<="01000110";</p><p>  WHEN "1110"=>XB<="01000101";</p><p>  WHEN "1111"=>XB<="01000110";</p>

51、<p>  WHEN OTHERS=>NULL;</p><p><b>  END CASE;</b></p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p><b>  END ARCH;</b>&

52、lt;/p><p>  2.1.2按鍵模塊仿真波形</p><p>  2.1.3按鍵模塊電路封裝圖</p><p>  2.1.4按鍵模塊功能</p><p>  實現(xiàn)對按鍵的設定及控制,得以把運算數(shù)據(jù)輸入電路。</p><p>  2.2控制信號產(chǎn)生模塊</p><p>  2.2.1控制模塊V

53、HDL程序</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>

54、  ENTITY CP3 IS</p><p>  PORT(RSTN,CLK:IN STD_LOGIC;</p><p>  CP,CPT,CPMUX:BUFFER STD_LOGIC;</p><p>  SADD,SSUB,SAND,SXOR:OUT STD_LOGIC_VECTOR(1 DOWNTO 0));</p><p><

55、b>  END CP3;</b></p><p>  ARCHITECTURE BEHAVIORAL OF CP3 IS</p><p>  TYPE STATE1 IS(S0,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11);</p><p>  SIGNAL PRES1,NXS1:STATE1;</p>&l

56、t;p>  TYPE STATE2 IS(SS0,SS1,SS2,SS3);</p><p>  SIGNAL PRES2,NXS2:STATE2;</p><p><b>  BEGIN</b></p><p>  PROCESS(CLK,RSTN)</p><p><b>  BEGIN</b&

57、gt;</p><p>  IF (RSTN='0')THEN PRES1<=S0;</p><p>  ELSIF(CLK'EVENT AND CLK='1')THEN</p><p>  PRES1<=NXS1;</p><p><b>  END IF;</b>&

58、lt;/p><p>  END PROCESS;</p><p>  PROCESS(PRES1)</p><p><b>  BEGIN</b></p><p>  CASE PRES1 IS</p><p><b>  WHEN S0=></b></p>

59、<p>  CP<='1';CPMUX<='0';CPT<='0';NXS1<=S1;</p><p><b>  WHEN S1=></b></p><p>  CP<='0';CPMUX<='0';CPT<='0'

60、;;NXS1<=S2;</p><p><b>  WHEN S2=></b></p><p>  CP<='0';CPMUX<='1';CPT<='0';NXS1<=S3;</p><p><b>  WHEN S3=></b>&l

61、t;/p><p>  CP<='1';CPMUX<='1';CPT<='0';NXS1<=S4;</p><p><b>  WHEN S4=></b></p><p>  CP<='1';CPMUX<='0';CPT<=

62、'0';NXS1<=S5;</p><p><b>  WHEN S5=></b></p><p>  CP<='0';CPMUX<='0';CPT<='0';NXS1<=S6;</p><p><b>  WHEN S6=>&l

63、t;/b></p><p>  CP<='0';CPMUX<='1';CPT<='0';NXS1<=S7;</p><p><b>  WHEN S7=></b></p><p>  CP<='1';CPMUX<='1'

64、;;CPT<='0';NXS1<=S8;</p><p><b>  WHEN S8=></b></p><p>  CP<='1';CPMUX<='1';CPT<='0';NXS1<=S9;</p><p><b>  WHEN

65、 S9=></b></p><p>  CP<='0';CPMUX<='1';CPT<='1';NXS1<=S10;</p><p>  WHEN S10=></p><p>  CP<='0';CPMUX<='1';CPT&l

66、t;='1';NXS1<=S11;</p><p>  WHEN S11=></p><p>  CP<='1';CPMUX<='1';CPT<='1';NXS1<=S11;</p><p><b>  END CASE;</b></p&g

67、t;<p>  END PROCESS;</p><p>  PROCESS(CP,RSTN)</p><p><b>  BEGIN</b></p><p>  IF (RSTN='0')THEN PRES2<=SS0;</p><p>  ELSIF(CP'EVENT AN

68、D CP='0')THEN</p><p>  PRES2<=NXS2;</p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p>  PROCESS(PRES2)</p><p><b>  BEGIN<

69、;/b></p><p>  CASE PRES2 IS</p><p>  WHEN SS0=></p><p>  SADD<="00";SSUB<="00";SAND<="00";SXOR<="00";</p><p> 

70、 NXS2<=SS1;</p><p>  WHEN SS1=></p><p>  SADD<="01";SSUB<="00";SAND<="00";SXOR<="00";</p><p>  NXS2<=SS2;</p><

71、;p>  WHEN SS2=></p><p>  SADD<="00";SSUB<="01";SAND<="10";SXOR<="11";</p><p>  NXS2<=SS3;</p><p>  WHEN SS3=></p&g

72、t;<p>  SADD<="00";SSUB<="01";SAND<="10";SXOR<="11";</p><p>  NXS2<=SS3;</p><p><b>  END CASE;</b></p><p> 

73、 END PROCESS;</p><p>  END BEHAVIORAL;</p><p>  2.2.2控制模塊仿真波形</p><p>  2.2.3控制模塊電路封裝圖</p><p>  2.2.4控制模塊功能</p><p>  實現(xiàn)對電路運算的控制。</p><p><b&g

74、t;  2.3修正模塊</b></p><p>  2.3.1修正模塊VHDL程序</p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_ARITH.ALL;</p><p> 

75、 USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  ENTITY XZJG IS</p><p>  PORT(RSTN:IN STD_LOGIC;</p><p>  S:IN STD_LOGIC_VECTOR(1 DOWNTO 0);</p><p>  CLK,OVER,COUT:IN STD_LOG

76、IC;</p><p>  T:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  FH:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p>  SH,SL:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p><b>  END XZ

77、JG;</b></p><p>  ARCHITECTURE BEHAVIORAL OF XZJG IS</p><p>  SIGNAL OC:STD_LOGIC_VECTOR(1 DOWNTO 0);</p><p>  SIGNAL TH,TL:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>&l

78、t;b>  BEGIN</b></p><p>  PROCESS(RSTN,CLK,OVER,COUT)</p><p><b>  BEGIN</b></p><p>  IF(CLK'EVENT AND CLK='1')THEN</p><p>  OC<=OVER&

79、amp;COUT;</p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p>  PROCESS(OC,CLK)</p><p><b>  BEGIN</b></p><p>  IF(RSTN='0'

80、)THEN</p><p>  TH<="0000";TL<="0000";</p><p>  ELSIF(CLK'EVENT AND CLK='1')THEN</p><p>  CASE OC IS</p><p>  WHEN"00"=&g

81、t;TH<="0000";</p><p><b>  CASE T I</b></p><p>  WHEN"0000"=>TL<="0000";FH<="00101011";</p><p>  WHEN"0001"=

82、>TL<="0001";FH<="00101011";</p><p>  WHEN"0010"=>TL<="0010";FH<="00101011";</p><p>  WHEN"0011"=>TL<="001

83、1";FH<="00101011";</p><p>  WHEN"0100"=>TL<="0100";FH<="00101011";</p><p>  WHEN"0101"=>TL<="0101";FH<="

84、;00101011";</p><p>  WHEN"0110"=>TL<="0110";FH<="00101011";</p><p>  WHEN"0111"=>TL<="0111";FH<="00101011";<

85、/p><p>  WHEN"1000"=>TL<="1000";FH<="01011101";</p><p>  WHEN"1001"=>TL<="0111";FH<="00101101";</p><p>  W

86、HEN"1010"=>TL<="0110";FH<="00101101";</p><p>  WHEN"1011"=>TL<="0101";FH<="00101101";</p><p>  WHEN"1100"=

87、>TL<="0100";FH<="00101101";</p><p>  WHEN"1101"=>TL<="0011";FH<="00101101";</p><p>  WHEN"1110"=>TL<="001

88、0";FH<="00101101";</p><p>  WHEN"1111"=>TL<="0001";FH<="00101101";</p><p>  WHEN OTHERS=>NULL;</p><p><b>  END CASE

89、;</b></p><p>  WHEN"01"=>TH<="0000";</p><p><b>  CASE T IS</b></p><p>  WHEN"0000"=>TL<="0000";FH<="001

90、01011";</p><p>  WHEN"0001"=>TL<="0001";FH<="00101011";</p><p>  WHEN"0010"=>TL<="0010";FH<="00101011"; </p&

91、gt;<p>  WHEN"0011"=>TL<="0011";FH<="00101011";</p><p>  WHEN"0100"=>TL<="0100";FH<="00101011";</p><p>  WHEN

92、"0101"=>TL<="0101";FH<="00101011";</p><p>  WHEN"0110"=>TL<="0110";FH<="00101011";</p><p>  WHEN"0111"=>

93、;TL<="0111";FH<="00101011";</p><p>  WHEN"1000"=>TL<="1000";FH<="00101101";</p><p>  WHEN"1001"=>TL<="0111&q

94、uot;;FH<="00101101";</p><p>  WHEN"1010"=>TL<="0110";FH<="00101101";</p><p>  WHEN"1011"=>TL<="0101";FH<="00

95、101101";</p><p>  WHEN"1100"=>TL<="0100";FH<="00101101";</p><p>  WHEN"1101"=>TL<="0011";FH<="00101101";</p&

96、gt;<p>  WHEN"1110"=>TL<="0010";FH<="00101101";</p><p>  WHEN"1111"=>TL<="0001";FH<="00101101";</p><p>  WHEN

97、 OTHERS=>NULL;</p><p><b>  END CASE;</b></p><p>  WHEN"10"=>FH<="00101011";</p><p><b>  CASE T IS</b></p><p>  WHEN

98、"1000"=>TH<="0000";TL<="1000";</p><p>  WHEN"1001"=>TH<="0000";TL<="1001";</p><p>  WHEN"1010"=>TH<=

99、"0001";TL<="0000";</p><p>  WHEN"1011"=>TH<="0001";TL<="0001";</p><p>  WHEN"1100"=>TH<="0001";TL<=&quo

100、t;0010";</p><p>  WHEN"1101"=>TH<="0001";TL<="0011";</p><p>  WHEN"1110"=>TH<="0001";TL<="0100";</p><

101、;p>  WHEN OTHERS=>NULL;</p><p><b>  END CASE;</b></p><p>  WHEN"11"=>FH<="00101101";</p><p><b>  CASE T IS</b></p><

102、;p>  WHEN"0000"=>TH<="0001";TL<="0110";</p><p>  WHEN"0001"=>TH<="0001";TL<="0101";</p><p>  WHEN"0010"

103、=>TH<="0001";TL<="0100";</p><p>  WHEN"0011"=>TH<="0001";TL<="0011";</p><p>  WHEN"0100"=>TH<="0001"

104、;TL<="0010";</p><p>  WHEN"0101"=>TH<="0001";TL<="0001";</p><p>  WHEN"0110"=>TH<="0001";TL<="0000";<

105、;/p><p>  WHEN"0111"=>TH<="0000";TL<="1001";</p><p>  WHEN OTHERS=>NULL;</p><p><b>  END CASE;</b></p><p><b>  

106、END CASE;</b></p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p>  PROCESS(RSTN,S,TH,TL,CLK)</p><p><b>  BEGIN</b></p><p> 

107、 IF(RSTN='0')THEN SH<="0000";SL<="0000";</p><p>  ELSIF(CLK'EVENT AND CLK='0')THEN</p><p><b>  CASE S IS</b></p><p>  WHEN&

108、quot;00"=>SH<=TH;SL<=TL;</p><p>  WHEN"01"=>SH<=TH;SL<=TL;</p><p>  WHEN"10"=>SH<="0000";SL<=T;</p><p>  WHEN"11&q

109、uot;=>SH<="0000";SL<=T;</p><p><b>  END CASE;</b></p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p>  END BEHAVIORAL;</

110、p><p>  2.3.2修正模塊仿真波形</p><p><b>  正溢出波形</b></p><p><b>  負溢出波形</b></p><p>  2.3.3修正模塊電路封裝圖</p><p>  2.3.4修正模塊功能</p><p>  實

111、現(xiàn)對運算中有超過-7到7的溢出的結果進行修正,方便讀取</p><p><b>  2.4顯示模塊</b></p><p>  2.4.1顯示模塊VHDL程序</p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p&g

112、t;  USE IEEE.STD_LOGIC_ARITH.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  ENTITY XIANSHI IS</p><p>  PORT(CLK:IN STD_LOGIC;</p><p>  R0:IN STD_LOGIC_VECTOR(7

113、 DOWNTO 0);</p><p>  R1,R2:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  R3,R4,R5:IN STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p>  RS:BUFFER STD_LOGIC;</p><p>  RW:OUT STD_LOGIC;&

114、lt;/p><p>  EN:OUT STD_LOGIC;</p><p>  CLK_OUT:BUFFER STD_LOGIC;</p><p>  D:BUFFER STD_LOGIC_VECTOR(7 DOWNTO 0));</p><p>  END XIANSHI;</p><p>  ARCHITECTURE

115、BEHAVIORAL OF XIANSHI IS</p><p>  TYPE XIANSHI IS ARRAY(0 TO 31)OF STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p>  SIGNAL QX:XIANSHI:=((OTHERS=>"00100000"));</p><p>  TYPE STATE

116、 IS(CLEAR,IDS,DLNF,DCB,DDRAM1,OUTDATA1,DDRAM2,OUTDATA2);</p><p>  SIGNAL COUNT:STD_LOGIC_VECTOR(15 DOWNTO 0);</p><p>  SIGNAL LCLK_OUT:STD_LOGIC;</p><p>  SIGNAL COUNTS:INTEGER RANG

117、E 0 TO 3000000:=0;</p><p>  SIGNAL CURRENT_STATE:STATE;</p><p>  SIGNAL TEMPA:STD_LOGIC_VECTOR(4 DOWNTO 0):="00000";</p><p><b>  BEGIN</b></p><p>

118、  PROCESS(CLK_OUT,CLK)</p><p><b>  BEGIN</b></p><p>  IF(RISING_EDGE(CLK))THEN</p><p>  COUNTS<=COUNTS+1;</p><p>  IF(COUNTS=3000000)THEN</p><

119、p>  CLK_OUT<=NOT CLK_OUT;</p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p>  QX(2)<=R3;</p><p>

120、;  QX(3)<=R4;</p><p>  QX(4)<=R5;</p><p>  QX(5)<="00100000";</p><p>  QX(6)<=R0;</p><p>  QX(7)<="0011"&R1;</p><p>

121、  QX(8)<="0011"&R2;</p><p>  PROCESS(CLK,LCLK_OUT)</p><p><b>  BEGIN</b></p><p>  IF(RISING_EDGE(CLK))THEN</p><p>  COUNT<=COUNT+1;</

122、p><p>  IF(COUNT=0)THEN</p><p>  LCLK_OUT<=NOT LCLK_OUT;</p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p>  END PROCESS;</

123、p><p>  EN<=LCLK_OUT;</p><p>  PROCESS(LCLK_OUT,CURRENT_STATE)</p><p><b>  BEGIN</b></p><p>  IF RISING_EDGE(LCLK_OUT)THEN</p><p><b>  RS

124、<='0';</b></p><p><b>  RW<='0';</b></p><p>  CASE CURRENT_STATE IS</p><p>  WHEN CLEAR=></p><p>  D<="00000001";

125、</p><p>  CURRENT_STATE<=DLNF;</p><p>  WHEN DLNF=></p><p>  D<="00111000";</p><p>  CURRENT_STATE<=IDS;</p><p>  WHEN IDS=></p

126、><p>  D<="00000110";</p><p>  CURRENT_STATE<=DCB;</p><p>  WHEN DCB=></p><p>  D<="00001100";</p><p>  CURRENT_STATE<=DDRA

127、M1;</p><p>  WHEN DDRAM1=></p><p>  D<="10000000"+TEMPA(3 DOWNTO 0);</p><p>  CURRENT_STATE<=OUTDATA1;</p><p>  WHEN OUTDATA1=></p><p&g

128、t;<b>  RS<='1';</b></p><p>  D<=QX(CONV_INTEGER(TEMPA));</p><p>  TEMPA<=TEMPA+1;</p><p>  IF TEMPA="10000"THEN</p><p>  CURRENT_

129、STATE<=DDRAM2;</p><p><b>  ELSE</b></p><p>  CURRENT_STATE<=DDRAM1; </p><p><b>  END IF;</b></p><p>  WHEN DDRAM2=></p><p>

130、;  D<="11000000"+TEMPA(3 DOWNTO 0);</p><p>  CURRENT_STATE<=OUTDATA2;</p><p>  WHEN OUTDATA2=>RS<='1';</p><p>  D<=QX(CONV_INTEGER(TEMPA));</p>

131、;<p>  TEMPA<=TEMPA+1;</p><p>  IF TEMPA="00000"THEN</p><p>  CURRENT_STATE<=DDRAM1;</p><p><b>  ELSE</b></p><p>  CURRENT_STATE<=

132、DDRAM2;</p><p><b>  END IF;</b></p><p>  WHEN OTHERS=>NULL;</p><p><b>  END CASE;</b></p><p><b>  END IF;</b></p><p>

133、;  END PROCESS;</p><p>  END BEHAVIORAL;</p><p>  2.4.2顯示模塊電路封裝圖</p><p>  2.4.3顯示模塊功能</p><p>  通過顯示電路把運算結果顯示到LCD顯示器上。</p><p><b>  2.5運算器模塊</b>&

134、lt;/p><p>  2.5.1運算器模塊功能</p><p>  對輸入的數(shù)據(jù)進行簡單的運算,輸出運算結果。</p><p>  2.5.2運算器模塊電路圖</p><p><b>  第三章定制選擇器</b></p><p><b>  3.1定制選擇器</b></p

135、><p>  新建“原理圖Block Diagram”文件后,點打開下圖,</p><p>  點擊按鈕Megewizard Plug-In Manager, 打開下圖,點擊next,打開圖見下頁。</p><p>  在下圖左側選擇Gates Lpm_Mux</p><p>  在下圖右側找到你的文件夾后,輸入文件名MUX44<

136、/p><p>  點擊NEXT,打開下頁圖</p><p>  在下圖中設置選擇器的輸入輸出線:</p><p>  設置數(shù)據(jù)輸入端個數(shù)為4。</p><p>  設置每個數(shù)據(jù)輸入端的寬度(即總線位數(shù))為4。</p><p>  設置輸出緩沖時間為1個周期。</p><p>  點擊NEXT,打開下

137、頁圖。</p><p>  在下面圖中 mux43.bsf打鉤,然后點擊NEXT。</p><p>  點擊下圖的按鈕Finish,完成定制。</p><p>  3.2用VHDL符號圖畫運算器頂層電路圖</p><p>  1.新建文件夾:“運算器綜合電路”</p><p>  2. 新建原理圖文件,放置若干in

138、put后,保存,文件名TOP</p><p><b>  3. 建立工程</b></p><p>  4. 把KEY.VHD CP3.VHD XZJG.. VHD XIANSHI.VHD 和定制的2個選擇器文件:mux44.vhd mux42.vhd mux44.bsf mux42.bsf 共6個文件復制到文件夾“運算器綜合電路”中</p&

139、gt;<p>  5. 把這6個文件加到工程中:操作見下面2個圖</p><p>  在下圖中點擊按鈕“Add All”</p><p>  6. 把按鍵模塊、信號發(fā)生器模塊和修正結果模塊和顯示模塊的代碼封裝成符號圖:</p><p> ?。?)打開某個模塊的代碼,例如按鍵模塊代碼KEY.VHD,</p><p>  (2)選

140、擇FILE菜單的Create /Update,</p><p> ?。?)選Create Symbol Files For Current File 。</p><p>  系統(tǒng)自動把符號保存到工程中。</p><p><b>  7. 畫頂層電路</b></p><p>  點打開下圖,展開Project,選擇一個符號

141、名稱,放到原理圖文件中。</p><p>  第四章 下載驗證及調(diào)試</p><p>  4.1器件選擇及引腳設置</p><p><b>  圖3-1 器件選擇</b></p><p>  如圖,在Quartus II工具欄選擇Assignments->Devices如圖選擇,并在Device&Opiti

142、ons選項卡里如下圖設置。</p><p><b>  圖3-2 器件選擇</b></p><p>  然后再在Assignments里選擇Pins,打開如下圖的選項卡,按圖進行引腳設置。</p><p>  圖3-3 運算器引腳設置</p><p><b>  4.2配置文件下載</b></

143、p><p>  連上實驗板并安裝好驅動,在設置編程器選擇HardWare Setup里的USB-ByteBlasterMV,按下Start下載到試驗箱并進行按鍵測試。</p><p><b>  圖3-4 下載驗證</b></p><p><b>  結論</b></p><p>  經(jīng)過一周的時間,我

144、順利地完成了這次課程設計。在本次的課程設計中,我對課本上學到的數(shù)字邏輯知識有了進一步的了解和認識并且把課堂上學到的課本知識與實際融合聯(lián)系起來,拓寬了我對該專業(yè)的視野,增厚了我對這門課程的興趣。在課程設計中因為有了指導老師耐心的指導和同學熱心的幫助,我才能順利地完成本次課程設計,在此我對幫助過我的老師和同學表示真心的感謝。</p><p><b>  參考文獻</b></p>&

溫馨提示

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

評論

0/150

提交評論