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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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è)計(jì)原理…………………………………………2</p><p>  三.系統(tǒng)子程序設(shè)計(jì)………………………………………3</p><p>  3.1 8進(jìn)制計(jì)數(shù)器設(shè)計(jì)………………………………3</p><p>  3.2 16進(jìn)制計(jì)數(shù)器設(shè)計(jì)………………………………3</p><p>  3.3 列驅(qū)動(dòng)設(shè)計(jì)………

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

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

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

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

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

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

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

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

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

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進(jìn)制計(jì)數(shù)器設(shè)計(jì)</p><p>  COUNT16.vhd是16進(jìn)制的計(jì)數(shù)器,其輸出端控制行和列驅(qū)動(dòng)控制器的輸出數(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ū)動(dòng)設(shè)計(jì)</b></p><p>  HANG.vhd為列驅(qū)動(dòng)控制器,該模塊控制所亮的行,當(dāng)輸出為0001H時(shí),給點(diǎn)陣的第一行高電平,輸出為

28、0010H時(shí),給點(diǎn)陣的第二行高電平,依次類推,逐次給每行高電平。其描述如下</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è)計(jì)</p><p>  XIANSHI.vhd為字體顯示控制器,SHI控制的是所顯示的字。例如當(dāng)SHI為00H時(shí),表示顯示第一個(gè)字;當(dāng)SHI為01H時(shí),表示顯示第二個(gè)字,依次類推。WEI控制所顯示的為字的

39、第幾行,例如當(dāng)WEI為0000B時(shí),表示輸出字的第一行文字信息;WEI為0001B時(shí),表示輸出字的第二行文字信息,依次類推。其描述如下:</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è)計(jì)</b><

84、;/p><p>  JUZHEN16.vhd是頂層文件設(shè)計(jì),文件在實(shí)體中首先定義了頂層設(shè)計(jì)元件的端口信號(hào),然后在architecture和begin之間利用component語句對準(zhǔn)備調(diào)用的元件做了聲明,并定義了c,d兩個(gè)信號(hào)作為器件內(nèi)部的連接線。最后利用端口映射語句PORT MAP()將兩個(gè)計(jì)數(shù)器和列驅(qū)動(dòng),字體顯示驅(qū)動(dòng)連接起來構(gòu)成一個(gè)完整的器件。</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>  先將各個(gè)引腳按引腳分配表分配好,再將該源程序下載到試驗(yàn)箱里,再按相應(yīng)操作將“湖南工程學(xué)院”顯示出來即可。</p><p>  16*16 LED點(diǎn)陣顯示引腳分配</p><p>  16×

94、16 點(diǎn)陣LED 模塊</p><p><b>  時(shí)鐘:</b></p><p><b>  圖3.4 引腳分配</b></p><p>  圖3.5 實(shí)驗(yàn)箱顯示圖</p><p><b>  六 心得體會(huì) </b></p><p>  這次做EDA

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

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

97、這也是當(dāng)前社會(huì)追求人才所要求的。</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)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論