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

下載本文檔

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

文檔簡介

1、<p>  課程設(shè)計(論文)任務(wù)書</p><p>  專業(yè)班級: 學(xué)生姓名: 指導(dǎo)教師(簽名): </p><p><b>  目 錄</b></p><p>  一、數(shù)字時鐘設(shè)計的背景2</p><p>  二、數(shù)字時鐘設(shè)計的目的2</p>&l

2、t;p>  三、數(shù)字時鐘的功能3</p><p>  四、數(shù)字時鐘的設(shè)計3</p><p><b>  1.設(shè)計思路3</b></p><p>  1.1數(shù)字時鐘控制器的輸入輸出總體框圖3</p><p>  1.2數(shù)字時鐘控制器的總體設(shè)計框圖3</p><p><b>

3、  2. 方案論證4</b></p><p>  2.1 數(shù)字鐘設(shè)計方案論證4</p><p>  3. 單元模塊設(shè)計部分4</p><p>  3.1 時鐘分頻模塊4</p><p>  3.2 時分秒計時控制電路模塊6</p><p>  3.3譯碼顯示模塊15</p><

4、;p>  4. 系統(tǒng)仿真16</p><p>  4.1數(shù)字鐘仿真圖16</p><p>  4.2 數(shù)字鐘原理圖17</p><p>  五、課程設(shè)計總結(jié)19</p><p>  一、數(shù)字時鐘設(shè)計的背景</p><p>  本學(xué)期我們完成了《EDA技術(shù)基礎(chǔ)》課程的學(xué)習(xí),相應(yīng)的已經(jīng)學(xué)習(xí)了有關(guān)的硬件語言:V

5、HDL語言,通過課程學(xué)習(xí)過程中理論與實踐的結(jié)合,已經(jīng)對應(yīng)用VHDL語言和EDA技術(shù)來設(shè)計電路有一些了解。</p><p>  二、數(shù)字時鐘設(shè)計的目的</p><p>  1.掌握多級計數(shù)器級聯(lián)的原理和其設(shè)計方法;</p><p>  2.掌握多個數(shù)碼管顯示的原理與方法;</p><p>  3.掌握用FPGA技術(shù)的層次化設(shè)計方法;</p

6、><p>  4.進一步掌握用VHDL硬件描述語言的設(shè)計思想,熟練的用原理圖方式或VHDL語言設(shè)計各種進制的數(shù)字計數(shù)器(6進制、10進制、12進制);</p><p>  5.了解有關(guān)數(shù)字系統(tǒng)的設(shè)計。</p><p><b>  三、數(shù)字時鐘的功能</b></p><p>  1.能顯示1/10秒、秒、分、時,能以12H循環(huán)

7、計數(shù)。</p><p>  2.精度是0.1秒。</p><p>  3.具有系統(tǒng)清零、暫停系統(tǒng)并使系統(tǒng)重新工作的功能。</p><p>  4可以進行調(diào)時調(diào)分調(diào)秒的功能擴展。</p><p><b>  四、數(shù)字時鐘的設(shè)計</b></p><p><b>  1.設(shè)計思路</b&

8、gt;</p><p>  基于VHDL語言,用TOP_DOWN的思想進行設(shè)計。</p><p>  1.1數(shù)字時鐘控制器的輸入輸出總體框圖</p><p><b>  Clk 時鐘輸入</b></p><p>  CLRN(清零端)七段數(shù)碼管的輸入</p><p><b> ?。ㄩ_始

9、/停止信號)</b></p><p>  START/STOP</p><p>  1.2數(shù)字時鐘控制器的總體設(shè)計框圖</p><p><b>  CLRN(清零端)</b></p><p><b>  置“1”</b></p><p>  START/STOP&

10、lt;/p><p><b>  CLK</b></p><p><b>  2. 方案論證</b></p><p>  2.1 數(shù)字鐘設(shè)計方案論證</p><p>  十進制計數(shù)器、六進制計數(shù)器、二進制計數(shù)器以及由此級聯(lián)成的六十進制計數(shù)器、十二進制計數(shù)器構(gòu)成數(shù)字時鐘的計數(shù)部分;輸入25MHZ的時鐘經(jīng)分

11、頻器產(chǎn)生100HZ的時鐘進入計數(shù)器電路;</p><p>  對于停止/開始的控制部分功能的實現(xiàn)有兩種方案:方案一 有普通門電路連接計數(shù)器的clrn、ldn和en,使其分別為“1”、“1”和“0”,則有各計數(shù)器真值表可知輸出Q值不變,從而實現(xiàn)該功能。方案二 輸入一個由T觸發(fā)器構(gòu)成的控制時鐘,來實現(xiàn)該功能。本設(shè)計采用的是方案二。</p><p>  3. 單元模塊設(shè)計部分</p&

12、gt;<p>  單元設(shè)計模塊分為三大部分:時鐘分頻模塊,時分秒計時控制電路模塊和譯碼顯示模塊。</p><p>  3.1 時鐘分頻模塊</p><p><b>  如圖3.1所示:</b></p><p><b>  圖 3.1</b></p><p><b>  程序如

13、下:</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  entity div is</p><p>  port(clr,clk: in bit;q: buffer bit);</p><p><b

14、>  end div;</b></p><p>  architecture a of div is</p><p>  signal counter:integer range 0 to 12499;</p><p><b>  begin</b></p><p>  process(clr,clk)

15、</p><p><b>  begin</b></p><p>  if (clk='1' and clk'event) then </p><p>  if clr='1' then</p><p>  counter<=0;</p><p&

16、gt;  elsif counter=12499 then</p><p>  counter<=0;</p><p>  q<= not q;</p><p><b>  else</b></p><p>  counter<=counter+1;</p><p><b&

17、gt;  end if;</b></p><p><b>  end if;</b></p><p>  end process;</p><p><b>  end a;</b></p><p><b>  其仿真波形如下:</b></p><

18、p>  3.2 時分秒計時控制電路模塊</p><p>  3.2.1時分秒計時控制電路模塊門控時鐘電路</p><p>  門控時鐘采用T觸發(fā)器來實現(xiàn),采用作為時鐘信號并將其輸入置1,當(dāng)每發(fā)生一次上沿跳變,其狀態(tài)就改變一次。與門另一輸入為分頻器的輸出Q。</p><p>  3.2.1.1 原理如圖 3.2.1.1 所示:</p><p&

19、gt;<b>  置“1”</b></p><p>  START/STOP門控時鐘</p><p><b>  Q</b></p><p><b>  圖 3.2.1.1</b></p><p>  3.2.1.2 門控電路T觸發(fā)器設(shè)計</p><p&g

20、t;  如圖3.2.1.2所示:</p><p><b>  圖 3.2.1.2</b></p><p><b>  程序如下:</b></p><p>  library IEEE; </p><p>  use IEEE.std_logic_1164.all; </p><p

21、>  use IEEE.std_logic_unsigned.all; </p><p>  entity tttt is </p><p><b>  port ( </b></p><p>  CLOCK : in std_logic ;--clock </p><p>  RESET : in std_log

22、ic ;--reset </p><p>  t_IN : in std_logic ;--data in </p><p>  t_OUT : out std_logic --data out </p><p><b>  ); </b></p><p>  end tttt; </p><p>

23、;  architecture a of tttt is </p><p>  signal REG_t_OUT : std_logic ; -- internal signals </p><p><b>  begin </b></p><p>  process (CLOCK,RESET) begin </p><p&

24、gt;  if (RESET = '1') then -- asynchronous reset </p><p>  REG_t_OUT <= '0'; </p><p>  elsif (CLOCK'event and CLOCK = '1') then </p><p>  if t_IN =

25、9;1' then</p><p>  REG_t_OUT<= not REG_t_OUT;</p><p><b>  end if;</b></p><p><b>  end if; </b></p><p>  end process; </p><p>

26、;  t_OUT <= REG_t_OUT ; </p><p><b>  end a;</b></p><p><b>  其仿真波形如下:</b></p><p>  3.2.2 時分秒計時控制電路模塊十分之一秒計數(shù)電路</p><p>  如圖3.2.2所示:</p>&

27、lt;p><b>  圖3.2.2</b></p><p><b>  程序如下:</b></p><p>  LIBRARY ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.

28、all;</p><p>  entity cout10v is</p><p><b>  port(</b></p><p>  clrn,ldn,en,clk :in std_logic;</p><p>  da :in std_logic_vector(3 downto 0);</p><p

29、>  qa :out std_logic_vector(3 downto 0);</p><p>  rco :out std_logic</p><p><b>  );</b></p><p>  end cout10v ;</p><p>  architecture a of cout10v is</

30、p><p><b>  begin</b></p><p>  process(clk)</p><p>  variable tmpa :std_logic_vector(3 downto 0);</p><p><b>  begin</b></p><p>  if cl

31、rn='0' then tmpa:="0000";</p><p>  else if(clk'event and clk='1') then</p><p>  if ldn='0' then tmpa:=da; </p><p>  elsif en='1' then

32、</p><p>  if tmpa="1001" then</p><p>  tmpa:="0000";</p><p>  elsif tmpa="1101" then</p><p>  tmpa:="0000";</p><p>

33、;<b>  else</b></p><p>  tmpa:=tmpa+1;</p><p><b>  end if; </b></p><p><b>  end if;</b></p><p><b>  end if;</b></p>

34、<p><b>  end if;</b></p><p><b>  qa<=tmpa;</b></p><p>  rco<= tmpa(0) and tmpa(3) and en;</p><p>  end process ;</p><p><b>  

35、end a;</b></p><p><b>  其仿真波形如下:</b></p><p>  3.2.3 時分秒計時控制電路模塊秒計數(shù)電路</p><p><b>  如圖3.2.3示:</b></p><p><b>  如圖 3.2.3</b></p&g

36、t;<p><b>  其程序如下:</b></p><p>  LIBRARY ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity cout60_v

37、 is</p><p><b>  port(</b></p><p>  clrn,ldn,en,clk :in std_logic;</p><p>  da :in std_logic_vector(3 downto 0);</p><p>  db :in std_logic_vector(2 downto 0)

38、;</p><p>  qa :out std_logic_vector(3 downto 0);</p><p>  qb :out std_logic_vector(2 downto 0);</p><p>  rco :out std_logic</p><p><b>  );</b></p>&l

39、t;p>  end cout60_v;</p><p>  architecture a of cout60_v is</p><p><b>  begin</b></p><p>  process(clk)</p><p>  variable tmpa :std_logic_vector(3 downto

40、0);</p><p>  variable tmpb:std_logic_vector(2 downto 0);</p><p><b>  begin</b></p><p>  if clrn='0' then tmpb:="000";tmpa:="0000";</p>

41、<p>  else if(clk'event and clk='1') then</p><p>  if ldn='0' then tmpa:=da;tmpb:=db; </p><p>  elsif en='1' then</p><p>  if tmpa="1001&qu

42、ot; then</p><p>  tmpa:="0000";tmpb:=tmpb+1;</p><p>  elsif (tmpb="101" and tmpb="1001") then </p><p>  tmpa:="0000";tmpb:="000";&l

43、t;/p><p><b>  else</b></p><p>  tmpa:=tmpa+1;</p><p><b>  end if; </b></p><p><b>  end if;</b></p><p><b>  end if;&l

44、t;/b></p><p><b>  end if;</b></p><p>  qa<=tmpa;qb<=tmpb;</p><p>  rco<=tmpb(0) and tmpb(2) and tmpa(0) and tmpa(3) and en;</p><p>  end process

45、 ;</p><p><b>  end a;</b></p><p><b>  其仿真波形如下:</b></p><p>  3.2.4 時分秒計時控制電路模塊分計數(shù)電路</p><p>  如圖3.2.4所示:</p><p><b>  如圖 3.2.4&l

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

47、 entity cout60_v is</p><p><b>  port(</b></p><p>  clrn,ldn,en,clk :in std_logic;</p><p>  da :in std_logic_vector(3 downto 0);</p><p>  db :in std_logic_ve

48、ctor(2 downto 0);</p><p>  qa :out std_logic_vector(3 downto 0);</p><p>  qb :out std_logic_vector(2 downto 0);</p><p>  rco :out std_logic</p><p><b>  );</b&g

49、t;</p><p>  end cout60_v;</p><p>  architecture a of cout60_v is</p><p><b>  begin</b></p><p>  process(clk)</p><p>  variable tmpa :std_logic_

50、vector(3 downto 0);</p><p>  variable tmpb:std_logic_vector(2 downto 0);</p><p><b>  begin</b></p><p>  if clrn='0' then tmpb:="000";tmpa:="0000&

51、quot;;</p><p>  else if(clk'event and clk='1') then</p><p>  if ldn='0' then tmpa:=da;tmpb:=db; </p><p>  elsif en='1' then</p><p>  if tm

52、pa="1001" then</p><p>  tmpa:="0000";tmpb:=tmpb+1;</p><p>  elsif (tmpb="101" and tmpb="1001") then </p><p>  tmpa:="0000";tmpb:=&q

53、uot;000";</p><p><b>  else</b></p><p>  tmpa:=tmpa+1;</p><p><b>  end if; </b></p><p><b>  end if;</b></p><p><

54、b>  end if;</b></p><p><b>  end if;</b></p><p>  qa<=tmpa;qb<=tmpb;</p><p>  rco<=tmpb(0) and tmpb(2) and tmpa(0) and tmpa(3) and en;</p><p&

55、gt;  end process ;</p><p><b>  end a;</b></p><p><b>  其仿真波形如下:</b></p><p>  3.2.5 時分秒計時控制電路模塊時計數(shù)電路</p><p>  如圖3.2.5所示:</p><p>  圖 3

56、.2.5    </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><p> 

57、 entity cout12_v is</p><p><b>  port(</b></p><p>  clrn,ldn,en,clk :in std_logic;</p><p>  da :in integer range 0 to 9;</p><p>  db :in integer range 0 to 1

58、;</p><p>  qa :out integer range 0 to 9;</p><p>  qb :out integer range 0 to 1</p><p><b>  );</b></p><p>  end cout12_v;</p><p>  architecture

59、a of cout12_v is</p><p><b>  begin</b></p><p>  process(clk)</p><p>  variable tmpa :integer range 0 to 9;</p><p>  variable tmpb:integer range 0 to 1;</

60、p><p><b>  begin</b></p><p>  if clrn='0' then tmpb:=0;tmpa:=0;</p><p>  else if(clk'event and clk='1') then</p><p>  if ldn='0' t

61、hen tmpa:=da;tmpb:=db; </p><p>  elsif en='1' then</p><p>  if tmpa=9 then</p><p>  tmpa:=9;tmpb:=tmpb+1;</p><p>  elsif tmpb=1 and tmpb=1 then</p><

62、;p>  tmpb:=0;tmpa:=0;</p><p>  else tmpa:=tmpa+1; </p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p&

63、gt;<p><b>  end if;</b></p><p>  qa<=tmpa;qb<=tmpb;</p><p>  end process ;</p><p><b>  end a;</b></p><p><b>  其仿真波形如下:</b&

64、gt;</p><p><b>  3.3譯碼顯示模塊</b></p><p><b>  如圖3.3</b></p><p><b>  圖 3.3</b></p><p><b>  其程序如下:</b></p><p>  l

65、ibrary ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  entity disp is</p><p>  port(d : in std_logic_vector(3 downto 0);</p><p>  q : out std_logic_vector(6 downto

66、 0));</p><p><b>  end;</b></p><p>  architecture one of disp is</p><p><b>  begin</b></p><p>  process(d)</p><p><b>  begin&l

67、t;/b></p><p><b>  case d is</b></p><p>  when "0000"=>q<="0111111";</p><p>  when "0001"=>q<="0000110";</p>

68、<p>  when "0010"=>q<="1011011";</p><p>  when "0011"=>q<="1001111";</p><p>  when "0100"=>q<="1100110";</p

69、><p>  when "0101"=>q<="1101101";</p><p>  when"0110"=>q<="1111101";</p><p>  when "0111"=>q<="0100111";&l

70、t;/p><p>  when"1000"=>q<="1111111";</p><p>  when"1001"=>q<="1101111";</p><p>  when others=>q<="0000000";</p>

71、;<p><b>  end case;</b></p><p>  end process;</p><p><b>  end one;</b></p><p><b>  其仿真波形如下:</b></p><p><b>  4. 系統(tǒng)仿真<

72、/b></p><p><b>  4.1數(shù)字鐘仿真圖</b></p><p>  4.2 數(shù)字鐘原理圖</p><p><b>  如圖4.2所示:</b></p><p><b>  五、課程設(shè)計總結(jié)</b></p><p>  通過對數(shù)字時鐘

73、的設(shè)計,我對VHDL語言有了更深層次的了解。多級計數(shù)器級聯(lián)的原理和其設(shè)計方法基本掌握了多級計數(shù)器級聯(lián)的原理和其設(shè)計方法;并對FPGA技術(shù)的層次化設(shè)計方法有了初步的掌握;加深了用VHDL硬件描述語言的設(shè)計思想和有關(guān)數(shù)字系統(tǒng)的設(shè)計的理解,能夠用原理圖方式或VHDL語言設(shè)計各種進制的數(shù)字計數(shù)器(6進制、10進制、12進制)。</p><p><b>  參考文獻:</b></p>&

74、lt;p>  王文虎 李賽斯 伍宗福 蔣冬初 田學(xué)軍 黎福海 方 寧 編著《EDA技術(shù)基礎(chǔ)》,湖南大學(xué)出版社.2008</p><p>  廖裕評 陸瑞強 編著《CPLDA 數(shù)字電路設(shè)計——使用MAX+plus2入門篇》,清華大學(xué)出版社.2003</p><p>  羅中華 楊戈 吳振庚 編著《EDA與可編程實驗教程》,重慶大學(xué)出版社.2007</p><p>

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論