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

下載本文檔

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

文檔簡介

1、<p>  課 程 設(shè) 計(jì) 報(bào) 告</p><p>  設(shè)計(jì)名稱 EDA(VHDL)課程設(shè)計(jì) </p><p>  專業(yè)班級(jí) 電子0942 </p><p>  姓 名 </p><p>  學(xué) 號(hào)

2、 </p><p><b>  電氣與信息工程學(xué)院</b></p><p><b>  二0一二年一月</b></p><p>  基于FPGA的半整數(shù)分頻器設(shè)計(jì)</p><p>  一、系統(tǒng)設(shè)計(jì)任務(wù)及功能概述</p><p>  本系統(tǒng)是利用VHDL硬件描述語言和

3、原理圖輸入方式,通過MUX+PLUSⅡ開發(fā)軟件和ALTER公司的FLEX系列EPF10K10LC84-4型FPGA方便的完成了半整數(shù)分頻器電路的設(shè)計(jì)。本系統(tǒng)是通過控制單位時(shí)間內(nèi)兩種分頻比出現(xiàn)的不同次數(shù)來獲得所需要的小數(shù)分頻值。</p><p>  二、系統(tǒng)設(shè)計(jì)方案和程序設(shè)計(jì)</p><p><b>  1.系統(tǒng)設(shè)計(jì)方案</b></p><p>

4、  我們采用脈沖吞吐計(jì)數(shù)器和鎖相環(huán)技術(shù),先設(shè)計(jì)兩個(gè)不同分頻比的整數(shù)分頻器,然后通過控制單位時(shí)間內(nèi)兩種分頻比出現(xiàn)的不同次數(shù)來獲得所需要的5.5分頻值。該分頻器電路可由一個(gè)異或門、一個(gè)模6數(shù)器和二分頻器組成。這樣可以實(shí)現(xiàn)分頻系數(shù)為5.5分頻器以及11分頻。</p><p><b>  設(shè)計(jì)框圖如下所示</b></p><p>  2.VHDL程序設(shè)計(jì)</p>

5、<p> ?。?)模6計(jì)數(shù)器VHDL描述設(shè)計(jì)</p><p>  該計(jì)數(shù)器可產(chǎn)生一個(gè)分頻系數(shù)為5.5分頻器,并產(chǎn)生一個(gè)默認(rèn)的邏輯符號(hào)cont6。其輸入端口為rst、en和clk;輸出端口為qa,qb,qc。下面給出模6數(shù)器的VHDL描述代碼:</p><p>  library ieee;</p><p>  use ieee.std_logic_116

6、4.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity cont6 is</p><p>  port(clk:in std_logic;</p><p>  rst:in std_logic;</p><p>  en:in std_log

7、ic;</p><p>  qa,qb,qc:out std_logic);</p><p>  end entity cont6;</p><p>  architecture wode of cont6 is</p><p>  signal count:std_logic_vector(2 downto 0);</p>&

8、lt;p><b>  begin</b></p><p>  process(clk,rst,en)is</p><p><b>  begin</b></p><p>  if rst='1'then count<="000";</p><p>  

9、elsif clk'event and clk='1'then</p><p>  if en='1'then</p><p>  if count="101" then count<="000";</p><p>  else count<=count+1;</p&g

10、t;<p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process;</p><p>  qa<=count(0);</p&

11、gt;<p>  qb<=count(1);</p><p>  qc<=count(2);</p><p>  end architecture wode;</p><p>  模六計(jì)數(shù)器原件生成圖如下:</p><p>  圖一 模六計(jì)數(shù)器原件生成</p><p>  上面的程序經(jīng)編譯、時(shí)

12、序模擬在MAX+PLUSⅡ中可得到如圖所示的仿真波形:</p><p>  圖2 模6計(jì)數(shù)器仿真波形</p><p> ?。?)半整數(shù)分頻器設(shè)計(jì)</p><p>  現(xiàn)在通過設(shè)計(jì)一個(gè)分頻系數(shù)為5.5的分頻器給出用FPGA設(shè)計(jì)半整數(shù)分頻器的一般方法。該5.5分頻器由前面設(shè)計(jì)的模6計(jì)數(shù)器、異或門和D觸發(fā)器組成,利用圖形設(shè)計(jì)方法構(gòu)造如圖所示的5.5分頻器電路原理圖。<

13、;/p><p>  圖3 5.5分頻器電路原理圖</p><p>  3. 將cont6、異或門和D觸發(fā)器通過圖3所示的電路建立邏輯連接關(guān)系,并用原理圖輸入方式調(diào)入圖形編輯器,然后經(jīng)過邏輯綜合即可得到如圖4所示的仿真波形。</p><p>  圖4 5.5分頻器仿真波形圖</p><p>  4.輸入、輸出接口說明</p>&l

14、t;p><b>  三.課程設(shè)計(jì)總結(jié)</b></p><p>  通過用VHDL語言描述模N計(jì)數(shù)器,然后進(jìn)行波形仿真,原理圖仿真等,了解了半整數(shù)分頻器的工作原理。試驗(yàn)中遇到了好多不會(huì)的通過查書,請(qǐng)教老師,請(qǐng)教同學(xué)一一解決了。通過這次的實(shí)驗(yàn)認(rèn)識(shí)了把課本的知識(shí)用到生活實(shí)踐中,來解決問題很好的培養(yǎng)了自己的動(dòng)手能力和學(xué)習(xí)能力。</p><p><b>  四.

15、參考文獻(xiàn)</b></p><p>  [1] 譚會(huì)生,張昌凡.EDA技術(shù)及應(yīng)用. 西安:西安電子科技大學(xué)出版社,2006,12.</p><p>  [2] 郭振武,從紅霞。EDA實(shí)驗(yàn)教程. 天津:南開大學(xué)出版社,2011,8 </p><p>  [3] 楊曉慧,楊永健.基于FPGA的EDA/SOPC技術(shù)與VHDL.北京

16、:國防工業(yè)出版社,2007,7.</p><p>  [4] 皺其宏 EDA實(shí)驗(yàn)技術(shù)教程。 北京:中國電力出版社。 2009.5.</p><p>  [5] 陳雪松,滕立中編著.VHDL入門與應(yīng)用.北京:人民郵電出版社. 2000.</p><p>  99分鐘定時(shí)器的VHDL設(shè)計(jì)</p><p>  一.系統(tǒng)設(shè)計(jì)任務(wù)及功能概述<

17、;/p><p><b>  1.系統(tǒng)設(shè)計(jì)任務(wù)</b></p><p>  任務(wù)要求:通過設(shè)計(jì),定時(shí)器可以整體清零;可以定時(shí)最高到99MIN;以秒速度遞增至預(yù)定時(shí)間,以秒速度遞減至零。</p><p><b>  2.系統(tǒng)功能概述</b></p><p>  本系統(tǒng)是一個(gè)99分鐘的定時(shí)器,具有以下功能:&

18、lt;/p><p>  具有整體清零(reset)功能,定時(shí)99分鐘。以秒速度遞增至99分鐘停止,啟動(dòng)報(bào)警(cout)5秒鐘。具有置位(cn)控制,即cn高電平時(shí),clk脈沖上升沿到來,計(jì)數(shù)加一;cn低電平時(shí),置位結(jié)束,進(jìn)入倒計(jì)時(shí)階段,以秒速度使輸出計(jì)數(shù)減一至零結(jié)束,并同時(shí)報(bào)警(cout)5秒鐘。時(shí)鐘信號(hào)提供秒信號(hào)(1HZ);四位數(shù)碼管靜態(tài)顯示,高位high(3 downto 0)顯示分,低位low(3 downto

19、 0)顯示秒。</p><p>  二.系統(tǒng)設(shè)計(jì)方案和程序設(shè)計(jì)</p><p>  1.系統(tǒng)設(shè)計(jì)方案 </p><p>  通過記數(shù)器控制中心輸入秒信號(hào),并輸出兩個(gè)四位的BCD碼,可分別來表示各位與十位,也可整體復(fù)位清零。通過該記數(shù)器實(shí)現(xiàn)以秒速度遞增至清零,該記數(shù)器以秒的速度遞增至99來實(shí)現(xiàn)置位,而以秒的速

20、度遞減至零以實(shí)現(xiàn)定時(shí)功能。當(dāng)以秒速度遞增至99分鐘停止,啟動(dòng)報(bào)警(cout)5秒鐘。cn低電平時(shí),置位結(jié)束,進(jìn)入倒計(jì)時(shí)階段,以秒速度使輸出計(jì)數(shù)減一至零結(jié)束時(shí)也同時(shí)報(bào)警(cout)5秒鐘。通過二選一選擇器對(duì)個(gè)位和十位進(jìn)行掃描輸出,并將輸出送到譯碼器,通過譯碼器對(duì)輸入的四位BCD碼進(jìn)行七段碼編譯,然后輸出到數(shù)碼管。</p><p>  2.VHDL程序設(shè)計(jì)</p><p>  Aaa控制計(jì)數(shù)模

21、塊,是該定時(shí)器的核心部分.res為復(fù)位端,用來清零,采用異步復(fù)位方式;cn用于置位,高電平有效。cout端將在定時(shí)結(jié)束時(shí)產(chǎn)生高電平。Low和high為四位BCD碼輸出端口,可用于顯示。當(dāng)cn有效時(shí),clk脈沖上升沿到來,計(jì)數(shù)加1;當(dāng)cn為低電平時(shí),置位結(jié)束,進(jìn)入計(jì)時(shí)階段,每1個(gè)時(shí)鐘周期發(fā)出一個(gè)脈沖,使輸出記數(shù)減1,直到記時(shí)結(jié)束,令cout位為高電平為止。該模塊的源程序如下:</p><p>  library i

22、eee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity jsq is </p><p>  port (cn,res,clk:in std_logic;</p><p>

23、;  cout :out std_logic;</p><p>  flow,fhigh,mlow,mhigh:out std_logic_vector(3 downto 0));</p><p><b>  end jsq;</b></p><p>  architecture art of jsq is</p><p&g

24、t;  signal fdisplow,fdisphigh,mdisplow,mdisphigh:std_logic_vector(3 downto 0); </p><p>  --定義信號(hào)分別表示分鐘和秒鐘的十位和個(gè)位</p><p><b>  begin</b></p><p>  process(clk,cn,res)</p&g

25、t;<p><b>  begin</b></p><p>  if(res='1')then</p><p>  mdisplow<="0000";</p><p>  mdisphigh<="0000";</p><p>  fdisp

26、low<="0000";</p><p>  fdisphigh<="0000"; </p><p>  cout<='0'; --res高電平執(zhí)行復(fù)位</p><p>  elsif (clk'event and clk='1')then</p><

27、;p>  if cn='1'then</p><p>  if mdisplow<9 then</p><p>  mdisplow<=mdisplow+1;--秒鐘個(gè)位數(shù)小于9時(shí)執(zhí)行計(jì)數(shù)加1</p><p>  cout<='0'; </p><p>  elsif

28、mdisplow="1001" and mdisphigh<5 then</p><p>  mdisplow<="0000";</p><p>  mdisphigh<=mdisphigh+1;--秒鐘十位進(jìn)位加1</p><p>  elsif mdisphigh="0101" an

29、d fdisplow<9 then</p><p>  mdisplow<="0000";</p><p>  mdisphigh<="0000";</p><p>  fdisplow<=fdisplow+1;--滿59秒后分鐘個(gè)位加1</p><p>  elsif fdis

30、plow="1001" and fdisphigh<9 then</p><p>  mdisplow<="0000";</p><p>  mdisphigh<="0000";</p><p>  fdisplow<="0000";</p><

31、;p>  fdisphigh<=fdisphigh+1;--滿9分59秒后分鐘十位加1</p><p>  elsif fdisplow="1000" and fdisphigh="1001" then</p><p>  mdisplow<="0000";</p><p>  mdis

32、phigh<="0000";</p><p>  fdisplow<="1001";--計(jì)時(shí)至99分停止</p><p>  elsif fdisplow="1001" and fdisphigh="1001" then</p><p>  cout<='1

33、';--計(jì)時(shí)停止cout變?yōu)楦唠娖?lt;/p><p><b>  end if;</b></p><p>  elsif cn='0' then --cn為0進(jìn)入倒計(jì)時(shí)</p><p>  if mdisplow>0 then</p><p>  mdisplow<=mdisplow-1

34、;--秒鐘減1</p><p>  cout<='0';</p><p>  elsif mdisplow="0000" and mdisphigh>0 then</p><p>  mdisplow<="1001";</p><p>  mdisphigh<=m

35、disphigh-1;--個(gè)位0時(shí)十位減1</p><p>  elsif mdisphigh="0000" and fdisplow>0 then</p><p>  mdisplow<="1001";</p><p>  mdisphigh<="0101";</p>&l

36、t;p>  fdisplow<=fdisplow-1;--分減1</p><p>  elsif fdisplow="0000" and fdisphigh>0 then</p><p>  mdisplow<="1001";</p><p>  mdisphigh<="0101&qu

37、ot;;</p><p>  fdisplow<="1001";</p><p>  fdisphigh<=fdisphigh-1;--分減10</p><p>  elsif fdisphigh="0000"and fdisplow="0000"and mdisphigh="0000

38、"and mdisplow="0000"then</p><p>  cout<='1';--倒計(jì)時(shí)結(jié)束cout變?yōu)楦唠娖?lt;/p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>&l

39、t;b>  end if;</b></p><p>  end process;</p><p>  mhigh<=mdisphigh;</p><p>  mlow<=mdisplow;</p><p>  fhigh<=fdisphigh;</p><p>  flow<=

40、fdisplow;</p><p><b>  end art;</b></p><p>  該計(jì)數(shù)器生成的原件如下圖所示:</p><p>  圖一 計(jì)數(shù)器原件生成圖</p><p>  計(jì)數(shù)器波形仿真圖如下圖所示:</p><p>  圖二 計(jì)數(shù)器波形仿真</p><p

41、>  報(bào)警器模塊:主要功能是計(jì)數(shù)器以秒速度遞增至99分鐘停止時(shí)啟動(dòng)報(bào)警(cout)5秒鐘。倒計(jì)時(shí)階段,計(jì)時(shí)器以秒速度使輸出計(jì)數(shù)減一至零結(jié)束時(shí)也同時(shí)報(bào)警(cout)5秒鐘。</p><p>  當(dāng)始終把脈沖clk上升沿到來時(shí)count開始計(jì)數(shù),同時(shí)speak置高電平開始報(bào)警,當(dāng)計(jì)數(shù)達(dá)到5s后speak置0,停止報(bào)警。它的操作源程序如下:</p><p>  library ieee;&

42、lt;/p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity cou5 is</p><p>  port(clk,reset,en:in std_logic;</p><p>  s

43、peak:out std_logic);</p><p><b>  end cou5;</b></p><p>  architecture behavior of cou5 is</p><p>  signal count:std_logic_vector(2 downto 0);--定義計(jì)數(shù)信號(hào)</p><p>

44、<b>  begin</b></p><p>  process(reset,clk)</p><p><b>  begin</b></p><p>  if reset='1' or en='0' then</p><p>  count(2 downto 0)

45、<="000";</p><p>  speak<='0';--有復(fù)位信號(hào)或始能端低電平時(shí)輸出0</p><p><b>  else</b></p><p>  if(clk'event and clk='1')then</p><p>  cou

46、nt<=count+1;</p><p>  speak<='1';--有時(shí)鐘上升沿計(jì)數(shù)加1,報(bào)警信號(hào)speak高電平</p><p>  if count>5 then</p><p>  speak<='0'; --5秒之后停止報(bào)警speak為0</p><p><b> 

47、 end if;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process;</p><p>  end behavior;</p><p>  該報(bào)警器生成的原件圖

48、如下:</p><p>  圖三 報(bào)警器原件生成圖</p><p>  該報(bào)警器波形仿真圖如下:</p><p>  圖四 報(bào)警器波形仿真</p><p>  譯碼器yima是對(duì)四位BCD碼進(jìn)行七段碼譯碼,其輸出p0~p6分別接數(shù)碼管各段進(jìn)行顯示輸出,它的操作源程序如下:</p><p>  library ieee

49、;</p><p>  use ieee.std_logic_1164.all;</p><p>  entity yima is</p><p>  port(a:in std_logic_vector(3 downto 0);</p><p>  p:out std_logic_vector(6 downto 0));</p>

50、<p><b>  end yima;</b></p><p>  architecture arc of yima is</p><p><b>  begin</b></p><p>  process(a)</p><p><b>  begin</b>&l

51、t;/p><p><b>  case a is</b></p><p>  when"0000"=>p<="0111111";</p><p>  when"0001"=>p<="0000110";</p><p>  

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

53、  when"0101"=>p<="1101101";</p><p>  when"0110"=>p<="1111101";</p><p>  when"0111"=>p<="0000111";</p><p&g

54、t;  when"1000"=>p<="1111111";</p><p>  when"1001"=>p<="1101111";--七段譯碼器顯示0—9</p><p>  when others=>p<="0000000";</p>&l

55、t;p><b>  end case;</b></p><p>  end process;</p><p><b>  end arc;</b></p><p>  該譯碼器原件生成圖如下:</p><p>  圖五 譯碼器原件生成圖</p><p>  該譯碼器波

56、形仿真圖如下:</p><p>  圖六 譯碼器波形仿真</p><p>  對(duì)定時(shí)器設(shè)計(jì)的各個(gè)模塊進(jìn)行原件例化,程序如下:</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  entity yjlh is</p>

57、<p>  port(sen,resa,clka,resb: in std_logic;</p><p>  myimal:out std_logic_vector(6 downto 0); --秒鐘個(gè)位譯碼輸出</p><p>  myimah:out std_logic_vector(6 downto 0); --秒鐘十位譯碼輸出</p><p>

58、  fyimal:out std_logic_vector(6 downto 0); --分鐘個(gè)位譯碼輸出</p><p>  fyimah:out std_logic_vector(6 downto 0); --分鐘十位譯碼輸出</p><p>  baoj:out std_logic</p><p><b>  );</b></p&g

59、t;<p>  end entity yjlh;</p><p>  architecture art of yjlh is</p><p>  component jsq is</p><p>  port (cn,res,clk:in std_logic;</p><p>  cout :out std_logic;<

60、/p><p>  flow,fhigh,mlow,mhigh:out std_logic_vector(3 downto 0));</p><p>  end component jsq; --jsq控制模塊</p><p>  component yima is</p><p>  port(a:in std_logic_vector(3 d

61、ownto 0);</p><p>  p:out std_logic_vector(6 downto 0));</p><p>  end component yima;--譯碼模塊</p><p>  component cou5 is</p><p>  port(clk,reset,en:in std_logic;</p>

62、<p>  speak:out std_logic);</p><p>  end component cou5;--報(bào)警模塊</p><p>  signal s1,s2,s3,s4:std_logic_vector(3 downto 0);</p><p>  signal s5:std_logic;</p><p><

63、;b>  begin</b></p><p>  u1:jsq port map(sen,resa,clka,s5,s1,s2,s3,s4);</p><p>  u2:yima port map(s1,fyimal);</p><p>  u3:yima port map(s2,fyimah);</p><p>  u4:

64、yima port map(s3,myimal);</p><p>  u5:yima port map(s4,myimah);</p><p>  u6:cou5 port map(clka,resb,s5,baoj);--各模塊通過位置關(guān)聯(lián)</p><p>  end architecture art;</p><p>  定時(shí)器原件例

65、化后生成的原件圖如下:</p><p>  圖七 定時(shí)器原件生成圖</p><p>  3. 定時(shí)器原件例化后波形仿真圖如下:</p><p>  圖八 定時(shí)器原件例化后波形仿真</p><p>  3.輸入、輸出接口說明</p><p><b>  三.課程設(shè)計(jì)總結(jié)</b></p>

66、;<p>  在這次課程設(shè)計(jì)中,基本完成了99分鐘定時(shí)器的設(shè)計(jì),實(shí)現(xiàn)了其所有功能。但是在此過程中,遇到了很多困難,如編寫程序過程中出現(xiàn)錯(cuò)誤語句,或者編寫的語句不能完成預(yù)期的功能等。但經(jīng)過反復(fù)修改與調(diào)試,程序沒有了錯(cuò)誤,盡管如此,該程序也未能編譯成功,后來才發(fā)現(xiàn)只有把要編譯的文件指成當(dāng)前文件才可進(jìn)行編譯。又如在設(shè)計(jì)原理圖過程當(dāng)中保存該文件時(shí)名字命名的問題,又有了新的認(rèn)識(shí),進(jìn)一步掌握了VHDL的命名規(guī)則。同時(shí)原理圖設(shè)計(jì)必須要規(guī)

67、范,連線必須要嚴(yán)謹(jǐn),且每一個(gè)步驟和過程都必須要編譯通過,才可逐步進(jìn)行下一環(huán)節(jié)。當(dāng)然還有很多問題都出現(xiàn)在設(shè)計(jì)過程中,但是經(jīng)過反復(fù)琢磨、推敲和老師的指導(dǎo)都完全解決了。最終完成了99分鐘定時(shí)器的設(shè)計(jì)。</p><p><b>  四.參考文獻(xiàn)</b></p><p>  [1] 譚會(huì)生,張昌凡.EDA技術(shù)及應(yīng)用. 西安:西安電子科技大學(xué)出版社,2006,12.</p&

68、gt;<p>  [2] 孫俊逸,劉江海。EDA技術(shù)課程設(shè)計(jì)。北京:華中科技大學(xué)出版社,2009,5</p><p>  [3] 徐志軍,徐光輝編著.CPLD/FPGA的開發(fā)與應(yīng)用. 北京:電子工業(yè)出版社.2002.</p><p>  [4] 楊曉慧,楊永健.基于FPGA的EDA/SOPC技術(shù)與VHDL.北京:國防工業(yè)出版社,2007,7.</p><p

溫馨提示

  • 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)論