eda課程設(shè)計-- 1616點陣顯示_第1頁
已閱讀1頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  課 程 設(shè) 計 報 告</p><p>  課程名稱 數(shù)字系統(tǒng)與邏輯設(shè)計 </p><p>  課題名稱 16*16點陣顯示 </p><p>  專 業(yè) 通信工程 </p><p>  班 級 通信工程10

2、01班 </p><p>  學(xué) 號 </p><p>  姓 名 </p><p>  指導(dǎo)教師 </p><p>  2012年 7月 2日</p><p&g

3、t;  《數(shù)字系統(tǒng)與邏輯設(shè)計》課程設(shè)計任務(wù)書</p><p><b>  一 、設(shè)計目的</b></p><p>  全面熟悉、掌握VHDL語言基本知識,掌握利用VHDL語言對常用的的組合邏輯電路和時序邏輯電路編程,把編程和實際結(jié)合起來,熟悉編制和調(diào)試程序的技巧,掌握分析結(jié)果的若干有效方法,進一步提高上機動手能力,培養(yǎng)使用設(shè)計綜合電路的能力,養(yǎng)成提供文檔資料的習(xí)慣和規(guī)

4、范編程的思想。 </p><p><b>  二、設(shè)計要求</b></p><p>  1、設(shè)計正確,方案合理。</p><p>  2、程序精煉,結(jié)構(gòu)清晰。</p><p>  3、設(shè)計報告5000字以上,含程序設(shè)計說明,用戶使用說明,源程序清單及程序框圖。</p><p><b> 

5、 4、上機演示。</b></p><p>  5、有詳細的文檔。文檔中包括設(shè)計思路、設(shè)計仿真程序、仿真結(jié)果及相應(yīng)的分析與結(jié)論。 </p><p><b>  三、進度安排</b></p><p>  第二十周 星期一: 課題講解,查閱資料</p><p>  星期二: 總體設(shè)計,詳細設(shè)計</p&g

6、t;<p>  星期三: 編程,上機調(diào)試、修改程序</p><p>  星期四: 上機調(diào)試、完善程序</p><p><b>  星期五: 答辯</b></p><p>  星期六-星期天:撰寫課程設(shè)計報告</p><p><b>  附:</b></p><

7、p>  課程設(shè)計報告裝訂順序:封面、任務(wù)書、目錄、正文、評分、附件(A4大小的圖紙及程序清單)。 </p><p>  正文的格式:一級標題用3號黑體,二級標題用四號宋體加粗,正文用小四號宋體;行距為22。</p><p>  正文的內(nèi)容:一、課題的主要功能;二、課題的功能模塊的劃分(要求畫出模塊圖);三、主要功能的實現(xiàn);四、系統(tǒng)調(diào)試與仿真;五、總結(jié)與體會;六、附件(所有程序的原代

8、碼,要求對程序?qū)懗霰匾淖⑨專?;七、評分表。</p><p><b>  目 錄</b></p><p>  一.課題要求………………………………………………1</p><p>  1.1 問題描述…………………………………………1</p><p>  1,2 功能描述…………………………………………2</p&g

9、t;<p>  二.程序設(shè)計原理…………………………………………2</p><p>  三.系統(tǒng)子程序設(shè)計………………………………………3</p><p>  3.1 8進制計數(shù)器設(shè)計………………………………3</p><p>  3.2 16進制計數(shù)器設(shè)計………………………………3</p><p>  3.3 列驅(qū)動設(shè)計………

10、………………………………4</p><p>  3.4 字體顯示設(shè)計……………………………………6</p><p>  3.5 頂層文件設(shè)計……………………………………10</p><p>  四.程序框圖………………………………………………12</p><p>  五.用戶使用說明…………………………………………14</p>

11、<p>  六.心得體會………………………………………………16</p><p>  七.源程序清單……………………………………………17</p><p>  八.評分表…………………………………………………26</p><p><b>  一、課題要求</b></p><p><b>  1.1問題

12、描述:</b></p><p>  本實驗主要完成漢字字符在LED 上的顯示,16*16 掃描LED 點陣的工作原理與8 位掃描數(shù)碼管類似,只是顯示的方式與結(jié)果不一樣而已。下面就本實驗系統(tǒng)的16*16 點陣的工件原理做一些簡單的說明。16*16 點陣由此256 個LED 通過排列組合而形成16 行*16 列的一個矩陣式的LED 陣列,俗稱16*16 點陣。單個的LED 的電路如下圖11-1 所示:&l

13、t;/p><p>  圖11-1 單個LED 電路圖</p><p>  由上圖可知,對于單個LED 的電路圖當Rn 輸入一個高電平,同時Cn 輸入一個低電平時,電路形成一個回路,LED 發(fā)光。也就是LED 點陣對應(yīng)的這個點被點亮。16*16 點陣也就是由16 行和16 列的LED 組成,其中每一行的所有16 個LED的Rn 端并聯(lián)在一起,每一列的所有16 個LED 的Cn 端并聯(lián)在一起。通過

14、給Rn 輸入一個高電平,也就相當于給這一列所有LED 輸入了一個高電平,這時只要某個LED 的Cn 端輸入一個低電平時,對應(yīng)的LED 就會被點亮。具體的電路如下圖11-2所示:</p><p>  圖11-2 16*16 點陣電路原理圖</p><p>  在點陣上顯示一字符是根據(jù)其字符在點陣上的顯示的點的亮滅來表示的,如下圖11-3 所示:</p><p>  圖

15、11-3 字符在點陣上的顯示</p><p>  在上圖中,顯示的是一個“漢”字,只要將被“漢”字所覆蓋的區(qū)域的點點亮,則在點陣中就會顯示一個“漢”字。根據(jù)前面我們所介紹的點陣顯示的原理,當我們選中第一列后,根據(jù)要顯示漢字的第一列中所需要被點亮的點對應(yīng)的Rn置為高電平,則在第一列中需要被點亮的點就會被點亮。依此類推,顯示第二列、第三列……第N 列中需要被點亮的點。然后根據(jù)人眼的視覺原理,將每一列顯示的點的間隔時間

16、設(shè)為一定的值,那么我們就會感覺顯示一個完整的不閃爍的漢字。同時也可以按照這個原理來顯示其它的漢字。下圖11-4 是一個漢字顯示所需要的時序圖:</p><p>  圖11-4 顯示時序圖</p><p><b>  1.2功能描述:</b></p><p>  本實驗的示例程序依次顯示的是“湖南工程學(xué)院”,要求每隔一秒換下一個字顯示。</

17、p><p><b>  二 程序設(shè)計原理</b></p><p>  LED點陣每個點都有一個紅色的發(fā)光二極管。點陣內(nèi)的二極管間的連接都是行共陽,列共陰。本實驗采用共陰,當二極管的共陽極為高電平,共陰極為低電平時,所接點發(fā)光;反之處于截止狀態(tài),不放光。本實驗采取行掃描方式,用列給文字信息,利用周期為1s的脈沖來控制所顯示的字。</p><p> 

18、 本設(shè)計由8進制計數(shù)器(CNT8),16進制計數(shù)器(CNT16),字體顯示驅(qū)動(XIANSHI)和列驅(qū)動(HANG)組成。</p><p>  三 系統(tǒng)子程序設(shè)計</p><p>  3.1 8進制計數(shù)器設(shè)計</p><p>  CNT8.vhd是8進制的計數(shù)器,其每計一次數(shù),輸出一個字。例如當計數(shù)為“000B”時顯示“湖”,當計數(shù)為“001B”時顯示“南”。給

19、其脈沖周期為1S。其描述如下:</p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  ENTITY CNT8 IS</p><p>  POR

20、T( CLK1: IN STD_LOGIC;</p><p>  QOUT : OUT STD_LOGIC_VECTOR(2 DOWNTO 0));</p><p>  END ENTITY CNT8;</p><p>  ARCHITECTURE BEHV OF CNT8 IS</p><p>  SIGNAL CQI : STD_LOGI

21、C_VECTOR(2 DOWNTO 0);</p><p><b>  BEGIN</b></p><p>  PROCESS(CLK1)</p><p><b>  BEGIN</b></p><p>  IF (CLK1'EVENT AND CLK1='1') THEN&

22、lt;/p><p>  CQI<=CQI+1;</p><p><b>  END IF;</b></p><p>  QOUT<=CQI;</p><p>  END PROCESS;</p><p>  END ARCHITECTURE BEHV;</p><p&g

23、t;  3.2 16進制計數(shù)器設(shè)計</p><p>  COUNT16.vhd是16進制的計數(shù)器,其輸出端控制行和列驅(qū)動控制器的輸出數(shù)據(jù);其描述如下:</p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSI

24、GNED.ALL;</p><p>  ENTITY CNT16 IS</p><p>  PORT( CLK : IN STD_LOGIC;</p><p>  QOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p>  END ENTITY CNT16;</p><p>

25、  ARCHITECTURE BEHV OF CNT16 IS</p><p>  SIGNAL CQI : STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p><b>  BEGIN</b></p><p>  PROCESS(CLK)</p><p><b>  BEGIN</

26、b></p><p>  IF (CLK'EVENT AND CLK='1') THEN</p><p>  CQI<=CQI+1;</p><p><b>  END IF;</b></p><p>  QOUT<=CQI;</p><p>  END

27、PROCESS;</p><p>  END ARCHITECTURE BEHV;</p><p>  圖3-1 CNT16.vhd仿真波形圖</p><p><b>  3.3 列驅(qū)動設(shè)計</b></p><p>  HANG.vhd為列驅(qū)動控制器,該模塊控制所亮的行,當輸出為0001H時,給點陣的第一行高電平,輸出為

28、0010H時,給點陣的第二行高電平,依次類推,逐次給每行高電平。其描述如下</p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  ENTITY HANG IS<

29、/p><p>  PORT(DATAIN : IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  ROW : OUT STD_LOGIC_VECTOR(15 DOWNTO 0));</p><p>  END ENTITY HANG;</p><p>  ARCHITECTURE BEHV OF HANG IS&

30、lt;/p><p>  SIGNAL HANG : STD_LOGIC_VECTOR(15 DOWNTO 0);</p><p><b>  BEGIN</b></p><p>  PROCESS(DATAIN)</p><p><b>  BEGIN</b></p><p> 

31、 CASE DATAIN IS</p><p>  WHEN "0000"=> ROW<="1000000000000000";</p><p>  WHEN "0001"=> ROW<="0100000000000000";</p><p>  WHEN &qu

32、ot;0010"=> ROW<="0010000000000000";</p><p>  WHEN "0011"=> ROW<="0001000000000000";</p><p>  WHEN "0100"=> ROW<="0000100000000

33、000";</p><p>  WHEN "0101"=> ROW<="0000010000000000";</p><p>  WHEN "0110"=> ROW<="0000001000000000";</p><p>  WHEN "01

34、11"=> ROW<="0000000100000000";</p><p>  WHEN "1000"=> ROW<="0000000010000000";</p><p>  WHEN "1001"=> ROW<="0000000001000000&q

35、uot;;</p><p>  WHEN "1010"=> ROW<="0000000000100000";</p><p>  WHEN "1011"=> ROW<="0000000000010000";</p><p>  WHEN "1100&qu

36、ot;=> ROW<="0000000000001000";</p><p>  WHEN "1101"=> ROW<="0000000000000100";</p><p>  WHEN "1110"=> ROW<="0000000000000010";

37、</p><p>  WHEN "1111"=> ROW<="0000000000000001";</p><p>  WHEN OTHERS=> ROW<="0000000000000000";</p><p>  END CASE;END PROCESS;</p>

38、<p>  END ARCHITECTURE BEHV;</p><p>  圖3-2 HANG.vhd仿真波形圖</p><p>  3.4 字體顯示設(shè)計</p><p>  XIANSHI.vhd為字體顯示控制器,SHI控制的是所顯示的字。例如當SHI為00H時,表示顯示第一個字;當SHI為01H時,表示顯示第二個字,依次類推。WEI控制所顯示的為字的

39、第幾行,例如當WEI為0000B時,表示輸出字的第一行文字信息;WEI為0001B時,表示輸出字的第二行文字信息,依次類推。其描述如下:</p><p>  LIBRARY ieee;</p><p>  USE ieee.std_logic_1164.all;</p><p>  ENTITY XIANSHI IS</p><p>  PO

40、RT(WEI : IN STD_LOGIC_VECTOR(3 downto 0);</p><p>  SHI : IN STD_LOGIC_VECTOR(2 downto 0);</p><p>  Q : OUT STD_LOGIC_VECTOR(15 downto 0));</p><p>  END XIANSHI;</p><p&g

41、t;  ARCHITECTURE XIANSHI_architecture OF XIANSHI IS</p><p><b>  BEGIN</b></p><p>  process(shi,wei)</p><p>  variable b:std_logic_vector(15 downto 0);</p><p&

42、gt;<b>  begin</b></p><p>  case shi is</p><p>  When "000"=></p><p>  case wei is</p><p>  when "0000" =>b:="000000000000000

43、0"; </p><p>  when "0001" =>b:="0100000000001000"; </p><p>  when "0010" =>b:="0010000000001111"; </p><p>  when "0011"

44、; =>b:="0001000010001001";</p><p>  when "0100" =>b:="0000000010001001";</p><p>  when "0101" =>b:="0100000010001111";</p>&l

45、t;p>  when "0110" =>b:="0010011111111001";</p><p>  when "0111" =>b:="0001000010001001";</p><p>  when "1000" =>b:="00000000

46、10001111";</p><p>  when "1001" =>b:="0000001111101001";</p><p>  when "1010" =>b:="0000101000101001";</p><p>  when "1011&

47、quot; =>b:="0001001000101001";</p><p>  when "1100" =>b:="0010001111101001";</p><p>  when "1101" =>b:="0100000000010011";</p>

48、<p>  when "1110" =>b:="0100000000100001";</p><p>  when "1111" =>b:="0000000000000000"; </p><p>  when others=>

49、null; end case;</p><p>  When "001"=></p><p>  case wei is</p><p>  when "0000" =>b:="0000000000000000";</p><p>  when "0001&q

50、uot; =>b:="0000000001000000";</p><p>  when "0010" =>b:="0000000010000000";</p><p>  when "0011" =>b:="0001111111111000";</p>

51、<p>  when "0100" =>b:="0000001000000000";</p><p>  when "0101" =>b:="0000010000000000";</p><p>  when "0110" =>b:="00001

52、11111111000";</p><p>  when "0111" =>b:="0000101000101000";</p><p>  when "1000" =>b:="0000100101001000";</p><p>  when "10

53、01" =>b:="0000101111101000";</p><p>  when "1010" =>b:="0000100010001000";</p><p>  when "1011" =>b:="0000101111101000";</p&

54、gt;<p>  when "1100" =>b:="0000100010001000";</p><p>  when "1101" =>b:="0000100010001000";</p><p>  when "1110" =>b:="0

55、000000000000000";</p><p>  when "1111" =>b:="0000000000000000";</p><p>  when others=>null; end case;</p><p>  When "010"=></p>

56、<p>  case wei is</p><p>  when "0000" =>b:="0000000000000000"; </p><p>  when "0001" =>b:="0000000000001000"; </p><p>  when &q

57、uot;0010" =>b:="0111111111111100"; </p><p>  when "0011" =>b:="0000000100000000"; </p><p>  when "0100" =>b:="0000000100000000"

58、; </p><p>  when "0101" =>b:="0000000100000000"; </p><p>  when "0110" =>b:="0000000100000000"; </p><p>  when "0111" =>

59、;b:="0000000100000000"; </p><p>  when "1000" =>b:="0000000100000000"; </p><p>  when "1001" =>b:="0000000100000000"; </p><p&

60、gt;  when "1010" =>b:="0000000100000000"; </p><p>  when "1011" =>b:="0000000100000000"; </p><p>  when "1100" =>b:="0000000100

61、000100"; </p><p>  when "1101" =>b:="1111111111111110"; </p><p>  when "1110" =>b:="0000000000000000"; </p><p>  when "1111

62、" =>b:="0000000000000000"; </p><p>  when others=>null; end case;</p><p>  When "011"=></p><p>  case wei is</p>&

63、lt;p>  when "0000" =>b:="0000000000000000";</p><p>  when "0001" =>b:="0000010000000000";</p><p>  when "0010" =>b:="0000100

64、000000000";</p><p>  when "0011" =>b:="0001000011111000";</p><p>  when "0100" =>b:="0111000010001000";</p><p>  when "0101

65、" =>b:="0001000010001000";</p><p>  when "0110" =>b:="0001000011111000";</p><p>  when "0111" =>b:="0111111000000000";</p>

66、;<p>  when "1000" =>b:="0001000111111100";</p><p>  when "1001" =>b:="0011100000100000";</p><p>  when "1010" =>b:="010

67、1010111111100";</p><p>  when "1011" =>b:="1001010000100000";</p><p>  when "1100" =>b:="1001001000100000";</p><p>  when "

68、1101" =>b:="0001000111111100";</p><p>  when "1110" =>b:="0001000000000000";</p><p>  when "1111" =>b:="0000000000000000";</

69、p><p>  when others=>null; end case;</p><p>  When "100"=></p><p>  case wei is</p><p>  when "0000" =>b:="0010001000001000"; </

70、p><p>  when "0001" =>b:="0001000100001000"; </p><p>  when "0010" =>b:="0000000000000000"; </p><p>  when "0011" =>b:=&qu

71、ot;0000000000100000"; </p><p>  when "0100" =>b:="0111111111111110"; </p><p>  when "0101" =>b:="0100000000000010"; </p><p>  wh

72、en "0110" =>b:="1000000000000100"; </p><p>  when "0111" =>b:="0001111111100000"; </p><p>  when "1000" =>b:="0000000001000000&

73、quot;; </p><p>  when "1001" =>b:="0000000110000100"; </p><p>  when "1010" =>b:="1111111111111110"; </p><p>  when "1011"

74、 =>b:="0000000100000000"; </p><p>  when "1100" =>b:="0000000100000000"; </p><p>  when "1101" =>b:="0000000100000000"; </p>&

75、lt;p>  when "1110" =>b:="0000010100000000"; </p><p>  when "1111" =>b:="0000001000000000"; </p><p>  when others=>n

76、ull; end case;</p><p>  When "101"=></p><p>  case wei is</p><p>  when "0000" =>b:="0000000000000000";</p><p>  when "0001&qu

77、ot; =>b:="0000100001100000";</p><p>  when "0010" =>b:="0001010000010000";</p><p>  when "0011" =>b:="0010001011111110";</p>

78、<p>  when "0100" =>b:="0010001100000001";</p><p>  when "0101" =>b:="0011110100111001";</p><p>  when "0110" =>b:="001011

79、0000000000";</p><p>  when "0111" =>b:="0010001011111110";</p><p>  when "1000" =>b:="0011101000101000";</p><p>  when "100

80、1" =>b:="0010010000101000";</p><p>  when "1010" =>b:="0010000000101000";</p><p>  when "1011" =>b:="0010000001101000";</p&g

81、t;<p>  when "1100" =>b:="0010000001001010";</p><p>  when "1101" =>b:="0010000010001111";</p><p>  when "1110" =>b:="00

82、00000000000000";</p><p>  when "1111" =>b:="0000000000000000";</p><p>  when others=>null; end case;</p><p>  when others=>null;</p><p&

83、gt;<b>  end case;</b></p><p><b>  q<=b;</b></p><p>  end process;</p><p>  END XIANSHI_architecture;</p><p><b>  3.5頂層文件設(shè)計</b><

84、;/p><p>  JUZHEN16.vhd是頂層文件設(shè)計,文件在實體中首先定義了頂層設(shè)計元件的端口信號,然后在architecture和begin之間利用component語句對準備調(diào)用的元件做了聲明,并定義了c,d兩個信號作為器件內(nèi)部的連接線。最后利用端口映射語句PORT MAP()將兩個計數(shù)器和列驅(qū)動,字體顯示驅(qū)動連接起來構(gòu)成一個完整的器件。</p><p>  LIBRARY IEEE

85、;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  ENTITY JUZHEN16 IS </p><p>  PORT (a,b : IN STD_LOGIC ;</p><p> 

86、 Q1,W1: OUT STD_LOGIC_VECTOR(15 DOWNTO 0));</p><p>  END ENTITY JUZHEN16;</p><p>  ARCHITECTURE JZ16 OF JUZHEN16 IS </p><p>  COMPONENT CNT8</p><p>  PORT( CLK1: IN ST

87、D_LOGIC;</p><p>  QOUT : OUT STD_LOGIC_VECTOR(2 DOWNTO 0));</p><p>  END COMPONENT;</p><p>  COMPONENT CNT16</p><p>  PORT( CLK : IN STD_LOGIC;</p><p>  QO

88、UT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p>  END COMPONENT;</p><p>  COMPONENT HANG</p><p>  PORT(DATAIN : IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  ROW : OUT STD_L

89、OGIC_VECTOR(15 DOWNTO 0));</p><p>  END COMPONENT;</p><p>  COMPONENT XIANSHI</p><p>  PORT(WEI : IN STD_LOGIC_VECTOR(3 downto 0);</p><p>  SHI : IN STD_LOGIC_VECTOR(

90、2 downto 0);</p><p>  Q : OUT STD_LOGIC_VECTOR(15 downto 0));</p><p>  END COMPONENT;</p><p>  SIGNAL c: STD_LOGIC_VECTOR(3 downto 0);</p><p>  SIGNAL d: STD_LOGIC_VECT

91、OR(2 downto 0);</p><p><b>  BEGIN </b></p><p>  U1: CNT8 PORT MAP( CLK1=>b,QOUT=>d );</p><p>  U2: CNT16 PORT MAP( CLK=>a,QOUT=>c );</p><p>  U

92、3: HANG PORT MAP(datain=>c,ROW=>Q1);</p><p>  U4: XIANSHI PORT MAP (wei=>c,shi=>d,Q=>W1);</p><p>  END ARCHITECTURE JZ16;</p><p>  圖3.3 頂層仿真圖</p><p><

93、b>  四 程序框圖</b></p><p><b>  五.用戶使用說明</b></p><p>  先將各個引腳按引腳分配表分配好,再將該源程序下載到試驗箱里,再按相應(yīng)操作將“湖南工程學(xué)院”顯示出來即可。</p><p>  16*16 LED點陣顯示引腳分配</p><p>  16×

94、16 點陣LED 模塊</p><p><b>  時鐘:</b></p><p><b>  圖3.4 引腳分配</b></p><p>  圖3.5 實驗箱顯示圖</p><p><b>  六 心得體會 </b></p><p>  這次做EDA

95、課設(shè)的報告,是有關(guān)16*16點陣的顯示的。起初并不知道這個程序該怎么寫,但通過艱苦的鉆研,并運用以前老師教過的知識,仔細的想了一遍,覺得應(yīng)該構(gòu)建很多實現(xiàn)功能的模塊,來分別對要求的相應(yīng)的功能一一實現(xiàn),于是開始構(gòu)建基本的框架,并一個一個的將它編寫出來。盡管在此期間,遇到了很多困難,但通過自己的不懈努力,和老師的耐心指導(dǎo),并在課外積極的請教班上的同學(xué)一些不懂的地方,逐漸明白了自己的一些不解之處,既鞏固了以前學(xué)的EDA知識,也認識到了這門課程的

96、博大精深,使我們知道要學(xué)的東西還有很多。我們也從中懂得了做一件事情,真的要有足夠的耐心和克服困難的勇氣。</p><p>  我們不知道我們接下來的學(xué)期里會有多少課程設(shè)計,但我們已經(jīng)有足夠面對它的勇氣,從中學(xué)會的有關(guān)做事情的一些態(tài)度和方法,將對我們終身受用,以便我們能在社會里創(chuàng)造更好的成就,為社會做出更多的貢獻,所以真心的感謝所有老師,是你們讓我有了體驗的機會,讓我懂得了做事不可能一蹴而就,需要有耐心和毅力,當然

97、這也是當前社會追求人才所要求的。</p><p><b>  七 源程序清單</b></p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p>&

98、lt;p>  ENTITY CNT8 IS</p><p>  PORT( CLK1: IN STD_LOGIC;</p><p>  QOUT : OUT STD_LOGIC_VECTOR(2 DOWNTO 0));</p><p>  END ENTITY CNT8;</p><p>  ARCHITECTURE BEHV OF C

99、NT8 IS</p><p>  SIGNAL CQI : STD_LOGIC_VECTOR(2 DOWNTO 0);</p><p><b>  BEGIN</b></p><p>  PROCESS(CLK1)</p><p><b>  BEGIN</b></p><p&g

100、t;  IF (CLK1'EVENT AND CLK1='1') THEN</p><p>  CQI<=CQI+1;</p><p><b>  END IF;</b></p><p>  QOUT<=CQI;</p><p>  END PROCESS;</p>&l

101、t;p>  END ARCHITECTURE BEHV;</p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  ENTITY CNT16 IS</p>

102、;<p>  PORT( CLK : IN STD_LOGIC;</p><p>  QOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p>  END ENTITY CNT16;</p><p>  ARCHITECTURE BEHV OF CNT16 IS</p><p>  SI

103、GNAL CQI : STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p><b>  BEGIN</b></p><p>  PROCESS(CLK)</p><p><b>  BEGIN</b></p><p>  IF (CLK'EVENT AND CLK=&#

104、39;1') THEN</p><p>  CQI<=CQI+1;</p><p><b>  END IF;</b></p><p>  QOUT<=CQI;</p><p>  END PROCESS;</p><p>  END ARCHITECTURE BEHV;<

105、;/p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  ENTITY HANG IS</p><p>  PORT(DATAIN : IN STD_

106、LOGIC_VECTOR(3 DOWNTO 0);</p><p>  ROW : OUT STD_LOGIC_VECTOR(15 DOWNTO 0));</p><p>  END ENTITY HANG;</p><p>  ARCHITECTURE BEHV OF HANG IS</p><p>  SIGNAL HANG : STD_

107、LOGIC_VECTOR(15 DOWNTO 0);</p><p><b>  BEGIN</b></p><p>  PROCESS(DATAIN)</p><p><b>  BEGIN</b></p><p>  CASE DATAIN IS</p><p>  WH

108、EN "0000"=> ROW<="1000000000000000";</p><p>  WHEN "0001"=> ROW<="0100000000000000";</p><p>  WHEN "0010"=> ROW<="0010000

109、000000000";</p><p>  WHEN "0011"=> ROW<="0001000000000000";</p><p>  WHEN "0100"=> ROW<="0000100000000000";</p><p>  WHEN &q

110、uot;0101"=> ROW<="0000010000000000";</p><p>  WHEN "0110"=> ROW<="0000001000000000";</p><p>  WHEN "0111"=> ROW<="000000010000

111、0000";</p><p>  WHEN "1000"=> ROW<="0000000010000000";</p><p>  WHEN "1001"=> ROW<="0000000001000000";</p><p>  WHEN "1

112、010"=> ROW<="0000000000100000";</p><p>  WHEN "1011"=> ROW<="0000000000010000";</p><p>  WHEN "1100"=> ROW<="0000000000001000&

113、quot;;</p><p>  WHEN "1101"=> ROW<="0000000000000100";</p><p>  WHEN "1110"=> ROW<="0000000000000010";</p><p>  WHEN "1111&q

114、uot;=> ROW<="0000000000000001";</p><p>  WHEN OTHERS=> ROW<="0000000000000000";</p><p>  END CASE;END PROCESS;</p><p>  END ARCHITECTURE BEHV;</p&

115、gt;<p>  LIBRARY ieee;</p><p>  USE ieee.std_logic_1164.all;</p><p>  ENTITY XIANSHI IS</p><p>  PORT(WEI : IN STD_LOGIC_VECTOR(3 downto 0);</p><p>  SHI : IN

116、STD_LOGIC_VECTOR(2 downto 0);</p><p>  Q : OUT STD_LOGIC_VECTOR(15 downto 0));</p><p>  END XIANSHI;</p><p>  ARCHITECTURE XIANSHI_architecture OF XIANSHI IS</p><p>&l

117、t;b>  BEGIN</b></p><p>  process(shi,wei)</p><p>  variable b:std_logic_vector(15 downto 0);</p><p><b>  begin</b></p><p>  case shi is</p>

118、<p>  When "000"=></p><p>  case wei is</p><p>  when "0000" =>b:="0000000000000000"; </p><p>  when "0001" =>b:="010000

119、0000001000"; </p><p>  when "0010" =>b:="0010000000001111"; </p><p>  when "0011" =>b:="0001000010001001";</p><p>  when "0

120、100" =>b:="0000000010001001";</p><p>  when "0101" =>b:="0100000010001111";</p><p>  when "0110" =>b:="0010011111111001";</p

121、><p>  when "0111" =>b:="0001000010001001";</p><p>  when "1000" =>b:="0000000010001111";</p><p>  when "1001" =>b:="

122、0000001111101001";</p><p>  when "1010" =>b:="0000101000101001";</p><p>  when "1011" =>b:="0001001000101001";</p><p>  when &qu

123、ot;1100" =>b:="0010001111101001";</p><p>  when "1101" =>b:="0100000000010011";</p><p>  when "1110" =>b:="0100000000100001";&l

124、t;/p><p>  when "1111" =>b:="0000000000000000"; </p><p>  when others=>null; end case;</p><p>  When "001"=></p>

125、<p>  case wei is</p><p>  when "0000" =>b:="0000000000000000";</p><p>  when "0001" =>b:="0000000001000000";</p><p>  when &quo

126、t;0010" =>b:="0000000010000000";</p><p>  when "0011" =>b:="0001111111111000";</p><p>  when "0100" =>b:="0000001000000000";<

127、;/p><p>  when "0101" =>b:="0000010000000000";</p><p>  when "0110" =>b:="0000111111111000";</p><p>  when "0111" =>b:=&qu

128、ot;0000101000101000";</p><p>  when "1000" =>b:="0000100101001000";</p><p>  when "1001" =>b:="0000101111101000";</p><p>  when

129、"1010" =>b:="0000100010001000";</p><p>  when "1011" =>b:="0000101111101000";</p><p>  when "1100" =>b:="0000100010001000"

130、;</p><p>  when "1101" =>b:="0000100010001000";</p><p>  when "1110" =>b:="0000000000000000";</p><p>  when "1111" =>b:

131、="0000000000000000";</p><p>  when others=>null; end case;</p><p>  When "010"=></p><p>  case wei is</p><p>  when "0000" =>b:

132、="0000000000000000"; </p><p>  when "0001" =>b:="0000000000001000"; </p><p>  when "0010" =>b:="0111111111111100"; </p><p>

133、  when "0011" =>b:="0000000100000000"; </p><p>  when "0100" =>b:="0000000100000000"; </p><p>  when "0101" =>b:="0000000100000

134、000"; </p><p>  when "0110" =>b:="0000000100000000"; </p><p>  when "0111" =>b:="0000000100000000"; </p><p>  when "1000&qu

135、ot; =>b:="0000000100000000"; </p><p>  when "1001" =>b:="0000000100000000"; </p><p>  when "1010" =>b:="0000000100000000"; </p>

136、;<p>  when "1011" =>b:="0000000100000000"; </p><p>  when "1100" =>b:="0000000100000100"; </p><p>  when "1101" =>b:="1

137、111111111111110"; </p><p>  when "1110" =>b:="0000000000000000"; </p><p>  when "1111" =>b:="0000000000000000"; <

138、/p><p>  when others=>null; end case;</p><p>  When "011"=></p><p>  case wei is</p><p>  when "0000" =>b:="0000000000000000";</

139、p><p>  when "0001" =>b:="0000010000000000";</p><p>  when "0010" =>b:="0000100000000000";</p><p>  when "0011" =>b:="

140、;0001000011111000";</p><p>  when "0100" =>b:="0111000010001000";</p><p>  when "0101" =>b:="0001000010001000";</p><p>  when &q

141、uot;0110" =>b:="0001000011111000";</p><p>  when "0111" =>b:="0111111000000000";</p><p>  when "1000" =>b:="0001000111111100";&

142、lt;/p><p>  when "1001" =>b:="0011100000100000";</p><p>  when "1010" =>b:="0101010111111100";</p><p>  when "1011" =>b:=&

溫馨提示

  • 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

提交評論