vhdl課程設(shè)計(jì)---樂(lè)曲演奏電路設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩13頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  VHDL課程設(shè)計(jì)</b></p><p><b>  樂(lè)曲演奏電路設(shè)計(jì)</b></p><p><b>  一、概述</b></p><p>  在電子設(shè)計(jì)技術(shù)領(lǐng)域,可編程邏輯器件的廣泛應(yīng)用,為數(shù)字系統(tǒng)的設(shè)計(jì)帶來(lái)了極大的靈活性。由于該器件可以通過(guò)軟件編程而對(duì)其硬件的結(jié)構(gòu)和

2、工作方式進(jìn)行重構(gòu),使得硬件的設(shè)計(jì)可以如同軟件設(shè)計(jì)那樣方便快捷。這一切極大的改變了傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計(jì)方法、設(shè)計(jì)過(guò)程乃至設(shè)計(jì)觀念。在傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計(jì)中,用戶能夠通過(guò)編程方式改變器件邏輯功能只有兩種途徑,即微處理器的軟件編程(如單片機(jī))和特定器件的控制字配置(如8255)。在傳統(tǒng)的設(shè)計(jì)概念中,器件引腳功能的硬件方式的任意確定是不可能的。而對(duì)于系統(tǒng)構(gòu)成的設(shè)計(jì)過(guò)程只能對(duì)器件功能和電路板圖分別進(jìn)行設(shè)計(jì)和確定,通過(guò)設(shè)計(jì)電路板來(lái)規(guī)劃系統(tǒng)功能。在此期間

3、,大量的時(shí)間和精力花在元件選配和系統(tǒng)結(jié)構(gòu)的可行性定位上。但若采用可編程邏輯器件,便可以利用計(jì)算機(jī)軟件的方式對(duì)目標(biāo)進(jìn)行設(shè)計(jì),而以硬件的形式既定的系統(tǒng)功能。在設(shè)計(jì)過(guò)程中,設(shè)計(jì)者若可根據(jù)需要,隨時(shí)改變器件的內(nèi)部邏輯功能和管腳的信號(hào)方式。借助于大規(guī)模集成的可編程器件和高效的設(shè)計(jì)軟件,用戶不僅可通過(guò)直接對(duì)芯片結(jié)構(gòu)的設(shè)計(jì)實(shí)現(xiàn)多種數(shù)字邏輯器件和高效的設(shè)計(jì)軟件,用戶不僅可通過(guò)直接對(duì)芯片結(jié)構(gòu)的設(shè)計(jì)實(shí)現(xiàn)多種數(shù)字邏輯功能,而且由于管腳定義的靈活性,大大<

4、;/p><p>  EDA是電子設(shè)計(jì)自動(dòng)化(Electronic Design Automation)的縮寫,是20世紀(jì)90年代初,從CAD(計(jì)算機(jī)輔助設(shè)計(jì))、CAM(計(jì)算機(jī)輔助制造)、CAT(計(jì)算機(jī)輔助測(cè)試)和CAE(計(jì)算機(jī)輔助工程)的概念發(fā)展而是來(lái)的。EDA技術(shù)就是以計(jì)算機(jī)為工具,在EDA軟件平臺(tái)上,對(duì)以硬件描述HDL為系統(tǒng)邏輯描述手段完成的設(shè)計(jì)文件自動(dòng)地完成邏輯編譯、邏輯分割、邏輯綜合及優(yōu)化、邏輯布局、邏輯仿真

5、,直至對(duì)于特定目標(biāo)芯片的甜酸編譯、邏輯遇敵和編程下載等工作。設(shè)計(jì)者的工作僅限于利用軟件的方式,即利用硬件描述評(píng)議來(lái)完成對(duì)系統(tǒng)硬件功能的描述,在EDA工具的幫助下就可以得到最后的設(shè)計(jì)結(jié)果。盡管目標(biāo)系統(tǒng)是硬件,但整個(gè)設(shè)計(jì)和修改過(guò)程如同完成軟件設(shè)計(jì)一樣的方便和高效。</p><p>  EDA技術(shù)中最為矚目的功能,即最具現(xiàn)代電子設(shè)計(jì)技術(shù)特征的功能就是日益強(qiáng)大的邏輯設(shè)計(jì)仿真測(cè)試技術(shù)。EDA仿真測(cè)試技術(shù)只需通過(guò)計(jì)算機(jī)就能對(duì)

6、所設(shè)計(jì)的電子系統(tǒng)從各種不同屋次的系統(tǒng)性能特點(diǎn)完成一系列準(zhǔn)確的測(cè)試與仿真操作在完成實(shí)際系統(tǒng)的安裝后還能對(duì)系統(tǒng)上的目標(biāo)器件進(jìn)行所謂邊界掃描測(cè)試。這一切都極大地提高了大規(guī)模系統(tǒng)電子設(shè)計(jì)的自動(dòng)化程度。</p><p>  另一方面高速發(fā)展的CPLD/FPGA器件又為EDA技術(shù)的不斷進(jìn)步奠定了堅(jiān)實(shí)的物質(zhì)基礎(chǔ)。CPLD/FPGA器件更廣泛的應(yīng)用及廠商間的競(jìng)爭(zhēng),使得普通的設(shè)計(jì)人員獲得廉價(jià)的器件和EDA軟件成為可能。</p

7、><p>  現(xiàn)代的EDA工具軟件已突破了早期僅能進(jìn)行PCB版圖設(shè)計(jì),或類似某些僅限于電路功能模擬的、純軟件范圍的局限,以最終實(shí)現(xiàn)可靠的硬件系統(tǒng)為目標(biāo),配備了系統(tǒng)設(shè)計(jì)自動(dòng)化的全部工具。如配置了各種常用的硬件描述語(yǔ)言平臺(tái)VHDL、Verilog HDL、ABEL-HDL等;配置了多種功能兼用和混合使用的邏輯描述輸入工具,如硬件描述語(yǔ)言文本輸入法(其中包括布爾方程描述方式、原理圖描述方式、狀態(tài)圖描述方式等)以及原理圖輸入

8、法、波形輸入法等;同時(shí)還培植了高性能的邏輯綜合、優(yōu)化和仿真模擬工具。</p><p>  近十年由于超大規(guī)模集成電路和軟件技術(shù)的快速發(fā)展,使數(shù)字系統(tǒng)集成到一片集成電路內(nèi)成為可能,Altera、Xilinx、AMD等公司都推出了非常好的CPLD和FPGA產(chǎn)品,并為這些產(chǎn)品的設(shè)計(jì)配備了設(shè)計(jì)、下載軟件,這些軟件除了支持圖形方式設(shè)計(jì)數(shù)字系統(tǒng)外,還支持設(shè)計(jì)多種數(shù)字系統(tǒng)的設(shè)計(jì)語(yǔ)言,使數(shù)字系統(tǒng)設(shè)計(jì)起來(lái)更加容易,可以說(shuō)數(shù)字電子技

9、術(shù)的設(shè)計(jì)進(jìn)入了一個(gè)新時(shí)代。</p><p>  美國(guó)國(guó)防部開發(fā)的VHDL語(yǔ)言成為了IEEE. STD_1076標(biāo)準(zhǔn),VHDL作為IEEE標(biāo)準(zhǔn)的硬件描述語(yǔ)言和EDA的重要組成部分,經(jīng)過(guò)十幾年的發(fā)展、應(yīng)用和完善,以及強(qiáng)大的系統(tǒng)描述能力、 規(guī)范的程序設(shè)計(jì)結(jié)構(gòu)、靈活的語(yǔ)句表達(dá)風(fēng)格和多層次的仿真測(cè)試手段,受到業(yè)界的普遍認(rèn)同和廣泛的接受,從數(shù)十種國(guó)際流行的硬件描述語(yǔ)言中脫穎而出,成為EDA領(lǐng)域的首選硬件設(shè)計(jì)計(jì)算機(jī)語(yǔ)言,而且目

10、前流行的EDA工具軟件全部支持VHDL。該語(yǔ)言集成了各種HDL語(yǔ)言的優(yōu)點(diǎn),使數(shù)字系統(tǒng)設(shè)計(jì)更加簡(jiǎn)單和容易,是一個(gè)規(guī)模龐大的語(yǔ)言。</p><p>  VHDL語(yǔ)言通常包含實(shí)體(Entity),構(gòu)造體(Architecture),配置(Configuration),包集合(Package),和庫(kù)(Library)五部分.其中實(shí)體用于描述所設(shè)計(jì)的系統(tǒng)的外部接口信號(hào);構(gòu)造體用于描述系統(tǒng)內(nèi)部的結(jié)構(gòu)和行為;建立輸入和輸出之間

11、的關(guān)系;配置語(yǔ)句安裝具體元件到實(shí)體—結(jié)構(gòu)體對(duì),可以被看作是設(shè)計(jì)的零件清單;包集合存放各個(gè)設(shè)計(jì)模塊共享的數(shù)據(jù)類型、常數(shù)和子程序等;庫(kù)是專門存放預(yù)編譯程序包的地方。VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語(yǔ)句外,VHDL的語(yǔ)言形式和描述風(fēng)格與句法是十分類似于一般的計(jì)算機(jī)高級(jí)語(yǔ)言。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可是部分,及端口

12、)和內(nèi)部(或稱不可視部分),既涉及實(shí)體的內(nèi)部功能和算法完成部分。在對(duì)一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。這種將設(shè)計(jì)實(shí)體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計(jì)的基本點(diǎn)。應(yīng)用VHDL進(jìn)行工程設(shè)計(jì)的優(yōu)點(diǎn)有以下幾個(gè)方面:(1)與其他的硬件描述語(yǔ)言相比,</p><p>  MAX+PLUSII軟件是一個(gè)功能強(qiáng)大,容易使用的軟件包,它可以以圖形方式、文字輸入方式(AHDL、V

13、HDL和VERILOG)、和波形方式輸入設(shè)計(jì)文件,可以編譯并形成各種能。其主要功能為:</p><p>  (1) 原理圖輸入(Graphic Editor)</p><p>  MAX+PLUSII軟件具有圖形輸入能力,用戶可以方便的使用圖形編輯器輸入電路圖,圖中的元器件可以調(diào)用元件庫(kù)中元器件,除調(diào)用庫(kù)中的元件以外,還可以調(diào)用該軟件中的符號(hào)功能形成的功能塊。夠下裝到EPROM和各種ALT

14、ERA器件的文件,還可以進(jìn)行仿真以檢驗(yàn)設(shè)計(jì)的準(zhǔn)確性。</p><p>  波形編輯器(waveform Editor)</p><p>  在進(jìn)行邏輯電路的行為仿真時(shí),需要在所設(shè)計(jì)電路的輸入端加入一定的波形,波形編輯器可以生成和編輯仿真用的波形(*.SCF文件),使用該編輯器的工具條可以容易方便的生成波形和編輯波形。</p><p>  管腳(底層)編輯窗口(Flo

15、orplan Editor)</p><p>  該窗口用于將已設(shè)計(jì)好邏輯電路的輸入輸出節(jié)點(diǎn)賦予實(shí)際芯片的引腳,通過(guò)鼠標(biāo)的拖拉,方便的定義管腳的功能。</p><p><b>  自動(dòng)錯(cuò)誤定位</b></p><p>  在編譯源文件的過(guò)程中,若源文件有錯(cuò)誤,Max+Plus2軟件可以自動(dòng)指出錯(cuò)誤類型和錯(cuò)誤所在的位置。</p>&

16、lt;p><b>  邏輯綜合與適配</b></p><p>  該軟件在編譯過(guò)程中,通過(guò)邏輯綜合 (Logic Synthesizer)和適配(Fitter) 模塊,可以把最簡(jiǎn)單的邏輯表達(dá)式自動(dòng)的吻合在合適的器件中。</p><p><b>  設(shè)計(jì)規(guī)則檢查</b></p><p>  選取Compile\Proc

17、essing\Design Doctor菜單,將調(diào)出規(guī)則檢查醫(yī)生,該醫(yī)生可以按照三種規(guī)則中的一個(gè)規(guī)則檢查各個(gè)設(shè)計(jì)文件,以保證設(shè)計(jì)的可靠性。一旦選擇該菜單,在編譯窗口將顯示出醫(yī)生,用鼠標(biāo)點(diǎn)擊醫(yī)生,該醫(yī)生可以告訴你程序文件的健康情況。 </p><p>  多器件劃分(Partitioner)</p><p>  如果設(shè)計(jì)不能完全裝入一個(gè)器件,編譯器中的多器件劃分模塊,可自動(dòng)的將一個(gè)設(shè)計(jì)分

18、成幾個(gè)部分并分別裝入幾個(gè)器件中,并保證器件之間的連線最少。</p><p><b>  編程文件的產(chǎn)生</b></p><p>  編譯器中的裝配程序(Assembler)將編譯好的程序創(chuàng)建一個(gè)或多個(gè)編程目標(biāo)文件:</p><p>  EPROM配置文件(*.POF)例如,MAX7000系列;</p><p>  SRA

19、M文件(*.SCF)例如,FLEX8000系列的配置芯片EPROM;</p><p>  JEDEC文件(*.JED);</p><p>  十六進(jìn)制文件(*.HEX);</p><p>  文本文件(*.TTF);</p><p>  串行BIT流文件(*.SBF);</p><p><b>  (10)仿

20、真</b></p><p>  當(dāng)設(shè)計(jì)文件被編譯好,并在波形編輯器中將輸入波形編輯完畢后,就可以進(jìn)行行為仿真了,通過(guò)仿真可以檢驗(yàn)設(shè)計(jì)的邏輯關(guān)系是否準(zhǔn)確。</p><p>  (11)分析時(shí)間(Analyze Timing)</p><p>  該功能可以分析各個(gè)信號(hào)到輸出端的時(shí)間延遲,可以給出延遲矩陣和最高工作頻率。</p><p&g

21、t;<b>  (12)器件編程</b></p><p>  當(dāng)設(shè)計(jì)全部完成后,就可以將形成的目標(biāo)文件下載到芯片中,實(shí)際驗(yàn)證設(shè)計(jì)的準(zhǔn)確性。</p><p><b>  (13)設(shè)計(jì)過(guò)程</b></p><p>  1)進(jìn)入Max+plus2軟件環(huán)境</p><p>  2)輸入項(xiàng)目文件名(File/

22、Project/Name)</p><p>  3)輸入源文件(圖形、VHDL、AHDL、Verlog和波形輸入方式)</p><p>  4)(Max+plusⅡ/graphic Editor, Max+plusⅡ/Text Editor, Max+plusⅡ/Waveform Editor)</p><p>  5)指定CPLD型號(hào)(Assign/Device)

23、</p><p>  6)設(shè)置管腳、下載方式和邏輯綜合的方式</p><p>  (Assign/Global Project Device Option,Assign/Global Logic Synthesis)</p><p>  保存并檢查源文件(File/project/Save & Check)</p><p>  8)指

24、定管腳(Max+plusⅡ/Floorplan Editor)</p><p>  9)保存和編譯源文件(File/project/Save & Compile)</p><p>  10)生成波形文件(Max+plusⅡ/Waveform Editor)</p><p>  11)仿真(Max+plusⅡ/Simulator)</p><

25、;p>  12)下載配置(Max+plusⅡ/Programmer)</p><p><b>  二、設(shè)計(jì)</b></p><p>  下面設(shè)計(jì)一首《友誼天長(zhǎng)地久》樂(lè)曲演奏電路,通過(guò)查詢相關(guān)資料,得知音高與頻率的對(duì)應(yīng)關(guān)系,具體見(jiàn)下表:</p><p><b>  音高頻率對(duì)照表</b></p><

26、p>  此程序使用4MHZ時(shí)鐘,如果經(jīng)時(shí)鐘不同修改一下常數(shù)即好。</p><p>  模塊及模塊功能設(shè)計(jì):</p><p>  1、模塊PAIA 見(jiàn)圖1。該模塊控制每一個(gè)音的長(zhǎng)短,送初值給FANA模塊,從而控制音高.</p><p><b>  圖1</b></p><p>  2、模塊FANA見(jiàn)圖2。該模塊的功能

27、是根據(jù)PAIA送來(lái)的初值倒計(jì)時(shí),每次計(jì)到0時(shí)就使信號(hào)Q反轉(zhuǎn),由于初值不同,從而產(chǎn)生不同的音高。</p><p><b>  圖2 </b></p><p>  本設(shè)計(jì)的總體框圖如下圖3所示:</p><p><b>  圖3</b></p><p><b>  三、程序清單:</

28、b></p><p>  1、 PAIA模塊的程序:</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  entity paia is </p><p>  port(clk:in std_logic;</p>

29、;<p>  q:out integer range 0 to 10204);</p><p><b>  end paia;</b></p><p>  architecture paia_1 of paia is</p><p><b>  begin</b></p><p>  

30、process(clk)</p><p>  variable cnt1:integer range 0 to 1500000;</p><p>  variable cnt2:integer range 0 to 8;</p><p>  variable n:integer range 0 to 45;</p><p><b>

31、  begin</b></p><p>  if clk'event and clk='1' then</p><p>  if cnt1<1500000 then</p><p>  cnt1:=cnt1+1;</p><p><b>  else</b></p>

32、<p><b>  cnt1:=0;</b></p><p><b>  case n is</b></p><p>  when 0=>q<=10204;</p><p>  if cnt2<1 then</p><p>  cnt2:=cnt2+1;</p&g

33、t;<p><b>  else</b></p><p><b>  cnt2:=0;</b></p><p><b>  n:=1;</b></p><p><b>  end if;</b></p><p>  when 1=>q&

34、lt;=7634;</p><p>  if cnt2<6 then</p><p>  cnt2:=cnt2+1;</p><p><b>  else</b></p><p><b>  cnt2:=0;</b></p><p><b>  n:=2;&l

35、t;/b></p><p><b>  end if;</b></p><p>  when 2=>q<=6061;</p><p>  if cnt2<1 then</p><p>  cnt2:=cnt2+1;</p><p><b>  else</b

36、></p><p><b>  cnt2:=0;</b></p><p><b>  n:=3;</b></p><p><b>  end if;</b></p><p>  when 3=>q<=6803;</p><p>  if

37、 cnt2<3 then</p><p>  cnt2:=cnt2+1;</p><p><b>  else</b></p><p><b>  cnt2:=0;</b></p><p><b>  n:=4;</b></p><p><b

38、>  end if;</b></p><p>  when 4=>q<=7634;</p><p><b>  n:=5;</b></p><p>  when 5=>q<=6803;</p><p>  if cnt2<1 then</p><p>

39、;  cnt2:=cnt2+1;</p><p><b>  else</b></p><p><b>  cnt2:=0;</b></p><p><b>  n:=6;</b></p><p><b>  end if;</b></p>

40、<p>  when 6=>q<=6061;</p><p>  if cnt2<1 then</p><p>  cnt2:=cnt2+1;</p><p><b>  else</b></p><p><b>  cnt2:=0;</b></p><

41、;p><b>  n:=7;</b></p><p><b>  end if;</b></p><p>  when 7=>q<=7634;</p><p>  if cnt2<4 then</p><p>  cnt2:=cnt2+1;</p><p&

42、gt;<b>  else</b></p><p><b>  cnt2:=0;</b></p><p><b>  n:=8;</b></p><p><b>  end if;</b></p><p>  when 8=>q<=6061;&

43、lt;/p><p>  if cnt2<1 then</p><p>  cnt2:=cnt2+1;</p><p><b>  else</b></p><p><b>  cnt2:=0;</b></p><p><b>  n:=9;</b>&l

44、t;/p><p><b>  end if;</b></p><p>  when 9=>q<=5089;</p><p>  if cnt2<1 then</p><p>  cnt2:=cnt2+1;</p><p><b>  else</b></p

45、><p><b>  cnt2:=0;</b></p><p><b>  n:=10;</b></p><p><b>  end if;</b></p><p>  when 10=>q<=4535;</p><p>  if cnt2<

46、;9 then</p><p>  cnt2:=cnt2+1;</p><p><b>  else</b></p><p><b>  cnt2:=0;</b></p><p><b>  n:=11;</b></p><p><b>  e

47、nd if;</b></p><p>  when 11=>q<=5089;</p><p>  if cnt2<3 then</p><p>  cnt2:=cnt2+1;</p><p><b>  else</b></p><p><b>  cnt2

48、:=0;</b></p><p><b>  n:=12;</b></p><p><b>  end if;</b></p><p>  when 12=>q<=6061;</p><p>  if cnt2<2 then</p><p>  

49、cnt2:=cnt2+1;</p><p><b>  else</b></p><p><b>  cnt2:=0;</b></p><p><b>  n:=13;</b></p><p><b>  end if;</b></p>&l

50、t;p>  when 13=>q<=7634;</p><p>  if cnt2<1 then</p><p>  cnt2:=cnt2+1;</p><p><b>  else</b></p><p><b>  cnt2:=0;</b></p><

51、p><b>  n:=14;</b></p><p><b>  end if;</b></p><p>  when 14=>q<=6803;</p><p>  if cnt2<3 then</p><p>  cnt2:=cnt2+1;</p><p

52、><b>  else</b></p><p><b>  cnt2:=0;</b></p><p><b>  n:=15;</b></p><p><b>  end if;</b></p><p>  when 15=>q<=763

53、4;</p><p><b>  n:=16;</b></p><p>  when 16=>q<=6803;</p><p>  if cnt2<1 then</p><p>  cnt2:=cnt2+1;</p><p><b>  else</b>&l

54、t;/p><p><b>  cnt2:=0;</b></p><p><b>  n:=17;</b></p><p><b>  end if;</b></p><p>  when 17=>q<=6061;</p><p>  if cnt

55、2<1 then</p><p>  cnt2:=cnt2+1;</p><p><b>  else</b></p><p><b>  cnt2:=0;</b></p><p><b>  n:=18;</b></p><p><b>

56、;  end if;</b></p><p>  when 18=>q<=7634;</p><p>  if cnt2<3 then</p><p>  cnt2:=cnt2+1;</p><p><b>  else</b></p><p><b>  

57、cnt2:=0;</b></p><p><b>  n:=19;</b></p><p><b>  end if;</b></p><p>  when 19=>q<=9050;</p><p>  if cnt2<2 then</p><p&g

58、t;  cnt2:=cnt2+1;</p><p><b>  else</b></p><p><b>  cnt2:=0;</b></p><p><b>  n:=20;</b></p><p><b>  end if;</b></p>

59、<p>  when 20=>q<=10204;</p><p>  if cnt2<1 then</p><p>  cnt2:=cnt2+1;</p><p><b>  else</b></p><p><b>  cnt2:=0;</b></p>

60、<p><b>  n:=21;</b></p><p><b>  end if;</b></p><p>  when 21=>q<=7634;</p><p>  if cnt2<7 then</p><p>  cnt2:=cnt2+1;</p>

61、<p><b>  else</b></p><p><b>  cnt2:=0;</b></p><p><b>  n:=22;</b></p><p><b>  end if;</b></p><p>  when 22=>q<

62、;=4535;</p><p>  if cnt2<1 then</p><p>  cnt2:=cnt2+1;</p><p><b>  else</b></p><p><b>  cnt2:=0;</b></p><p><b>  n:=23;<

63、;/b></p><p><b>  end if;</b></p><p>  when 23=>q<=5089;</p><p>  if cnt2<3 then</p><p>  cnt2:=cnt2+1;</p><p><b>  else</b

64、></p><p><b>  cnt2:=0;</b></p><p><b>  n:=24;</b></p><p><b>  end if;</b></p><p>  when 24=>q<=6061;</p><p>  

65、if cnt2<2 then</p><p>  cnt2:=cnt2+1;</p><p><b>  else</b></p><p><b>  cnt2:=0;</b></p><p><b>  n:=25;</b></p><p>&l

66、t;b>  end if;</b></p><p>  when 25=>q<=7634;</p><p>  if cnt2<1 then</p><p>  cnt2:=cnt2+1;</p><p><b>  else</b></p><p><b

67、>  cnt2:=0;</b></p><p><b>  n:=26;</b></p><p><b>  end if;</b></p><p>  when 26=>q<=6083;</p><p>  if cnt2<3 then</p>&

68、lt;p>  cnt2:=cnt2+1;</p><p><b>  else</b></p><p><b>  cnt2:=0;</b></p><p><b>  n:=27;</b></p><p><b>  end if;</b><

69、/p><p>  when 27=>q<=7634;</p><p><b>  n:=28;</b></p><p>  when 28=>q<=6803;</p><p>  if cnt2<1 then</p><p>  cnt2:=cnt2+1;</p&g

70、t;<p><b>  else</b></p><p><b>  cnt2:=0;</b></p><p><b>  n:=29;</b></p><p><b>  end if;</b></p><p>  when 29=>

71、q<=4535;</p><p>  if cnt2<1 then</p><p>  cnt2:=cnt2+1;</p><p><b>  else</b></p><p><b>  cnt2:=0;</b></p><p><b>  n:=30

72、;</b></p><p><b>  end if;</b></p><p>  when 30=>q<=5089;</p><p>  if cnt2<3 then</p><p>  cnt2:=cnt2+1;</p><p><b>  else&l

73、t;/b></p><p><b>  cnt2:=0;</b></p><p><b>  n:=31;</b></p><p><b>  end if;</b></p><p>  when 31=>q<=6061;</p><p&g

74、t;  if cnt2<2 then</p><p>  cnt2:=cnt2+1;</p><p><b>  else</b></p><p><b>  cnt2:=0;</b></p><p><b>  n:=32;</b></p><p&g

75、t;<b>  end if;</b></p><p>  when 32=>q<=5089;</p><p>  if cnt2<1 then</p><p>  cnt2:=cnt2+1;</p><p><b>  else</b></p><p>&

76、lt;b>  cnt2:=0;</b></p><p><b>  n:=33;</b></p><p><b>  end if;</b></p><p>  when 33=>q<=4535;</p><p>  if cnt2<7 then</p>

77、;<p>  cnt2:=cnt2+1;</p><p><b>  else</b></p><p><b>  cnt2:=0;</b></p><p><b>  n:=34;</b></p><p><b>  end if;</b>

78、</p><p>  when 34=>q<=3089;</p><p>  if cnt2<1 then</p><p>  cnt2:=cnt2+1;</p><p><b>  else</b></p><p><b>  cnt2:=0;</b>&l

79、t;/p><p><b>  n:=35;</b></p><p><b>  end if;</b></p><p>  when 35=>q<=5089;</p><p>  if cnt2<3 then</p><p>  cnt2:=cnt2+1;<

80、;/p><p><b>  else</b></p><p><b>  cnt2:=0;</b></p><p><b>  n:=36;</b></p><p><b>  end if;</b></p><p>  when 36

81、=>q<=6061;</p><p>  if cnt2<2 then</p><p>  cnt2:=cnt2+1;</p><p><b>  else</b></p><p><b>  cnt2:=0;</b></p><p><b>  

82、n:=37;</b></p><p><b>  end if;</b></p><p>  when 37=>q<=7634;</p><p>  if cnt2<1 then</p><p>  cnt2:=cnt2+1;</p><p><b>  e

83、lse</b></p><p><b>  cnt2:=0;</b></p><p><b>  n:=38;</b></p><p><b>  end if;</b></p><p>  when 38=>q<=6803;</p>&l

84、t;p>  if cnt2<3 then</p><p>  cnt2:=cnt2+1;</p><p><b>  else</b></p><p><b>  cnt2:=0;</b></p><p><b>  n:=39;</b></p>&l

85、t;p><b>  end if;</b></p><p>  when 39=>q<=7634;</p><p><b>  n:=40;</b></p><p>  when 40=>q<=6803;</p><p>  if cnt2<1 then</

86、p><p>  cnt2:=cnt2+1;</p><p><b>  else</b></p><p><b>  cnt2:=0;</b></p><p><b>  n:=41;</b></p><p><b>  end if;</b

87、></p><p>  when 41=>q<=6061;</p><p>  if cnt2<1 then</p><p>  cnt2:=cnt2+1;</p><p><b>  else</b></p><p><b>  cnt2:=0;</b&g

88、t;</p><p><b>  n:=42;</b></p><p><b>  end if;</b></p><p>  when 42=>q<=7634;</p><p>  if cnt2<3 then</p><p>  cnt2:=cnt2+1

89、;</p><p><b>  else</b></p><p><b>  cnt2:=0;</b></p><p><b>  n:=43;</b></p><p><b>  end if;</b></p><p>  whe

90、n 43=>q<=9050;</p><p>  if cnt2<2 then</p><p>  cnt2:=cnt2+1;</p><p><b>  else</b></p><p><b>  cnt2:=0;</b></p><p><b&g

91、t;  n:=44;</b></p><p><b>  end if;</b></p><p>  when 44=>q<=10204;</p><p>  if cnt2<1 then</p><p>  cnt2:=cnt2+1;</p><p><b&g

92、t;  else</b></p><p><b>  cnt2:=0;</b></p><p><b>  n:=45;</b></p><p><b>  end if;</b></p><p>  when 45=>q<=7634;</p>

93、;<p>  if cnt2<7 then</p><p>  cnt2:=cnt2+1;</p><p><b>  else</b></p><p><b>  cnt2:=0;</b></p><p><b>  n:=0;</b></p>

94、<p><b>  end if;</b></p><p><b>  end case;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end proce

95、ss;</p><p>  end paia_1;</p><p>  2、FANA模塊程序清單:</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  entity fana is</p><p>  

96、port(a:in integer range 0 to 10204;</p><p>  clk:in std_logic;</p><p>  q:out std_logic);</p><p><b>  end fana;</b></p><p>  architecture fana_1 of fana is&

97、lt;/p><p><b>  begin</b></p><p>  process(clk)</p><p>  variable b,d:std_logic;</p><p>  variable c:integer range 0 to 10204;</p><p><b>  be

98、gin</b></p><p>  if clk'event and clk='1' then</p><p>  if b='0' then</p><p><b>  c:=a;</b></p><p><b>  b:='1';</

99、b></p><p><b>  else</b></p><p>  if c=0 then</p><p><b>  b:='0';</b></p><p><b>  d:=not d;</b></p><p><b&

100、gt;  else</b></p><p><b>  c:=C-1;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論