版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、實用1 引言簡易多功能信號發(fā)生器是信號發(fā)生器的一種,在生產(chǎn)實踐和科研領域中有著廣泛的應用。在研制、生產(chǎn)、測試和維修各種電子元件、部件以及整機設備時,都需要有信號源,由它產(chǎn)生不同頻率不同波形的電壓、電流信號并加到被測器件或設備上,用其他儀器觀察、測量被測儀器的輸出響應,以分析確定它們的性能參數(shù)。信號發(fā)生器是電子測量領域中最基本、應用最廣泛的一類電子儀器。它可以產(chǎn)生多種波形信號,如正弦波,三角波 ,方波和鋸齒波等,因而廣泛用于通信、雷達、導航、宇航等領域。在本設計中它能夠產(chǎn)生多種波形,如正弦波,三角波,方波和鋸齒波等,并能實現(xiàn)對各種波頻率和幅度的改變。正因為其在生活中應用的重要性,人們它做了大量的
2、研究,總結出了許多實現(xiàn)方式??梢曰贔PGA 、 VHDL 、單片機、DOS 技能、數(shù)字電路等多種方法實現(xiàn)。本設計是采用VHDL 來實現(xiàn)的簡易多功能信號發(fā)生器。它能產(chǎn)生正弦波,三角波 ,方波和鋸齒波。且對各種波形的要求如下:( 1)根據(jù)按鍵選擇不同的波形(實現(xiàn)正弦波,三角波,方波和鋸齒波);( 2)各波形的頻率范圍為100Hz-20KHz;( 3)各波形頻率可調(diào)(通過按鍵控制頻率的變化,步進值為500Hz) ;( 4)用LED 數(shù)碼管實時顯示輸出波形的頻率值;(5)用按鍵控制實現(xiàn)輸出信號的幅度調(diào)節(jié)(幅度調(diào)節(jié)為2.5V和5V)。文案2 EDA技術介紹2.1 EDA 介紹EDA是電子設計自動化(E
3、lectronic Design Automation)縮寫。EDA技術是以 計算機為工具,根據(jù)硬件描述語言 HDL ( Hardware Description language完成的 設計文件,自動地完成邏輯編譯、化簡、分割、綜合及優(yōu)化、布局布線、仿真以及 對于特定目標芯片的適配編譯和編程下載等工作。硬件描述語言HDL 是相對于一般的計算機軟件語言,如:C、 PASCAL 而言的。 HDL 語言使用與設計硬件電子系統(tǒng)的計算機語言,它能描述電子系統(tǒng)的邏輯功能、電路結構和連接方式。設計者可 利用 HDL 程序來描述所希望的電路系統(tǒng),規(guī)定器件結構特征和電路的行為方式; 然后利用綜合器和適配器將此
4、程序編程能控制FPGA 和 CPLD 內(nèi)部結構,并實現(xiàn)相應邏輯功能的的門級或更底層的結構網(wǎng)表文件或下載文件。目前,就FPGA/CPLD開發(fā)來說,比較常用和流行的HDL 主要有 ABEL-HDL 、 AHDL 和 VHDL1 。幾乎所有適于大學生做的數(shù)字邏輯電路實驗都可以在計算機上利用EDA(Electronic Design Automatic 電子設計自動化)軟件進行設計、仿真, 只有極少量外部配件不能在計算機上進行仿真。因此,在實驗前期階段,即實驗預習階段的主要 應用工具是EDA 軟件,利用EDA 軟件可以設計、仿真實驗課題,進行虛擬實驗。通過虛擬實驗使實驗者在進入真實實驗前就能對預做的實
5、驗有相當?shù)牧私?,甚至?以預測到實驗的結果。這樣在實際做實驗時,可以把許多設計型實驗的難度降低, 同時能有更多的時間讓實驗者動手做實驗,研究問題,提高實驗效率。當前數(shù)字電 路設計已由計算機輔助設計進入到以計算機為主的設計時代。2.2 VHDL 基本介紹VHD比一種主要的硬件描述語言之一,硬件描述語言(HDL是各種描述方法 中最能體現(xiàn)EDAffi越性的描述方法。所謂硬件描述語言,實際上就是一種描述工具, 其描述的對象就是待設計電路系統(tǒng)的邏輯功能,實現(xiàn)該功能的算法,選用的電路結 構以及其他各種約束條件等。通常要求 HDLKE能描述系統(tǒng)的行為,又能描述系統(tǒng)的 結構。VHDLS言是美國國防部與20世紀
6、80年代后期,出于軍事工業(yè)需要開發(fā)的。 1984年VHDLft IEEE確定為標準的硬件描述語言。1993年IEEE對VHDLS行了修 正,增加了部分新的VHDL#令與屬性,增強了對系統(tǒng)的描述能力。VHDLS蓋面廣,抽象描述強,支持硬件的設計,驗證,綜合和測試。VHDLfg在多級別上對同一邏輯功能進行描述。VHDL勺基本結構包含一個實體和一個結構 體,而完整的VHDLM構還包括配置,程序包與庫。各種硬件描述語言中,VHDL勺 描述能力最強,因此運用 VHDL進行復雜電路設計時,往往采用自頂向下結構化的 設計方法。2.3 設計工具簡介Quartus II是Altera 公司的綜合性 PLD開發(fā)軟
7、件,支持原理圖、VHDL VerilogHDL以及AHD(L Altera Hardware Description Language )等多種設計輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設計輸入到硬件配置的完整PLD設計流程。Quartus II 支持 Altera 的 IP 核,包含了LPM/MegaFunction 宏功能模塊庫,使用戶可以充分利用成熟的模塊,簡化了設計的復雜性、加快了設計速度。對第三方EDA工具的良好支持也使用戶可以在設計流程的各個階段使用熟悉的第三放EDA工具。此外, Quartus II 通過和 DSP Builder 工具與 Matlab/Simulink
8、 相結合,可以方便地實現(xiàn)各種DSP應用系統(tǒng);支持Altera的片上可編程系統(tǒng)(SOPC開發(fā),集系統(tǒng)級設計、嵌入式軟件開發(fā)、可編程邏輯設計于一體,是一種綜合性的開發(fā)平臺。Maxplus II作為Altera的上一代PLD®計軟件,由于其出色的易用性而得到了廣泛的應用。目前 Altera 已經(jīng)停止了對Maxplus II 的更新支持,Quartus II 與之相比不僅僅是支持器件類型的豐富和圖形界面的改變。Altera 在 Quartus II 中包含了許多諸如SignalTap II 、 Chip Editor 和 RTL Viewer 的設計輔助工具,集成了 SOPG口 HardCo
9、py設計流程,并且繼承了 Maxplus II 友好的圖形界面及簡便的使用方法。Altera Quartus II 作為一種可編程邏輯的設計環(huán)境, 由于其強大的設計能力和直觀易用的接口,越來越受到數(shù)字系統(tǒng)設計者的歡迎。Altera的Quartus II可編程邏輯軟件屬于第四代PLD開發(fā)平臺。該平臺支持一個工作組環(huán)境下的設計要求,其中包括支持基于Internet 的協(xié)作設計。Quartus平臺與 Cadence ExemplarLogic、 MentorGraphics 、 Synopsys 和 Synplicity 等 EDAft應商的開發(fā)工具相兼容。改進了軟件的 LogicLock模塊設計功
10、能,增添 了 FastFit 編譯選項,推進了網(wǎng)絡編輯性能,而且提升了調(diào)試能力。實用3設計流程3.1 設計思想及原理圖基于VHDL語言設計一個簡易多功能信號發(fā)生器,通過選入輸入信號,可以輸 出正弦波、三角波、方波和鋸齒波四種波形信號。信號發(fā)生器的控制模塊可以用數(shù) 據(jù)選擇器實現(xiàn),四種信號的信號選擇可以用 4選1數(shù)據(jù)選擇器實現(xiàn)。同時本設計使 用原理圖的方法,對正弦波、三角波、方波和鋸齒波和4選1數(shù)據(jù)選擇器元件進行調(diào)用。本設計的主題思想是各個模塊分別產(chǎn)生相應的波形,再通過一個4選1數(shù)據(jù)選擇器輸出相應的波形。通過其他按鍵控制波形的頻率和幅度的變化。3.2 正弦波、三角波、方波和鋸齒波的實現(xiàn)3.2.1
11、正弦波設計正弦波的產(chǎn)生思想是將對模擬波形采樣后的編碼存入定義好的ROM中,再根據(jù)時鐘循環(huán)的將這些編碼順序輸出,在輸出端將經(jīng)過數(shù)模轉換器轉換后的模擬信號 接入示波器即可顯示正弦波形。產(chǎn)生正弦波的 VHDL代碼如下:library ieee;use ieee.std_logic_1164.all;entity sin2 isport(clock,sel:in std_logic;dout4:out integer range 0 to 255);end sin2;architecture bhv of sin2 istype mem_type is array(0 to 63) of intege
12、r range 0 to 255;constant mem:mem_type:=(255,254,252,249,245,239,233,225,217,207,197,186,174,162,150,137,124,112,99,87,75,64,53,43,34,26,19,13,8,4,1,0,0,1,4,8,13,19,26,34,43,53,64,75,87,99,112,124,137,150,162,174,186,197,207,217,225,233,239,245,249,252,254,255);signal address:integer range 0 to 63;b
13、eginprocess(clock)beginif clock'event and clock='1' thenif address>63 thenaddress<=0;elseif sel='1' thenaddress<=address+1;dout4<=(mem(address)/2;elseaddress<=address+1;dout4<=mem(address);end if;end if;end if;end process;end bhv;3.2.2 正弦波的仿真在 Quartus II 軟件輸入上述代
14、碼,再通過編譯和時序仿真,可得到如下的仿真波形。叫工mfl:把性叫口或k界作洱呼士呼吧口立三切4】&麗婀利面面而秫畫山順打皿1面a加唧0畫廊斗他則畫"阿叫而mroiiM贏鵬!而阿麗則】 詛 11圖2正弦波時序仿真圖上圖中的輸出制式模擬信號各采樣點的數(shù)字編碼,由于沒有經(jīng)過數(shù)模轉換,輸 出結果就如圖中所示。當將程序下載到硬件后,在示波器上就可以顯示正弦波形了。 3.2.3三角波設計三角波的產(chǎn)生思想是將對模擬波形采樣后的編碼存入定義好的ROM中,再根據(jù)時鐘循環(huán)的將這些編碼順序輸出,在輸出端將經(jīng)過數(shù)模轉換器轉換后的模擬信號接入示波器即可顯示三角波形。產(chǎn)生三角波的VHDL代碼如下:li
15、brary ieee;use ieee.std_logic_1164.all;entity sanjiao isport(clock,sel:in std_logic;dout3:out integer range 0 to 255);end sanjiao;architecture bhv of sanjiao istype mem_type is array(0 to 63) of integer range 0 to 255;constant mem:mem_type:=(0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,120, 128,136,
16、144,152,160,168,176,184, 192,200,208,216,224,232,240,248, 255,248,240,232,224,216,208,200, 192,184,176,168,160,152,144,136, 128,120,112,104,96,88,80,72, 64,56,48,40,32,24,16,8);signal address:integer range 0 to 63; beginprocess(clock)begin文案實用if clock'event and clock='1' thenif address&g
17、t;63 thenaddress<=0;elseif sel='1' thenaddress<=address+1;dout3<=(mem(address)/2;elseaddress<=address+1;dout3<=mem(address);end if;end if;end if;end process;end bhv;3.2.4三角波的仿真在Quartus II軟件輸入上述代碼,再通過編譯和時序仿真,可得到如下的仿真圖3三角波仿真圖上圖中的輸出制式模擬信號各采樣點的數(shù)字編碼,由于沒有經(jīng)過數(shù)模轉換,輸 出結果就如圖中所示。當將程序下載到硬件
18、后,在示波器上就可以顯示三角波形了。 3.2.5方波設計方波波的產(chǎn)生思想是將對模擬波形采樣后的編碼存入定義好的ROM中,再根據(jù)時鐘循環(huán)的將這些編碼順序輸出,在輸出端將經(jīng)過數(shù)模轉換器轉換后的模擬信號 接入示波器即可顯示方波波形。產(chǎn)生方波的VHDL代碼如下:library ieee;use ieee.std_logic_1164.all;entity fangbo isport(clock,sel:in std_logic;dout1:out integer range 0 to 255);end fangbo;architecture bhv of fangbo istype mem_type
19、is array(0 to 63) of integer range 0 to 255;constantmem:mem_type:=(255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);signal address:integer range 0 to 63;be
20、ginprocess(clock)beginif clock'event and clock='1' thenif address>63 thenaddress<=0;elseif sel='1' thenaddress<=address+1;dout1<=(mem(address)/2;elseaddress<=address+1;dout1<=mem(address);end if;end if;end if;end process;end bhv;3.2.6 方波的仿真在 Quartus II 軟件輸入上述代碼,
21、再通過編譯和時序仿真,可得到如下的仿真波形。圖4三角波仿真圖上圖中的輸出制式模擬信號各采樣點的數(shù)字編碼,由于沒有經(jīng)過數(shù)模轉換,輸 出結果就如圖中所示。當將程序下載到硬件后,在示波器上就可以顯示三角波形了。 3.2.7鋸齒波設計鋸齒波的產(chǎn)生思想是將對模擬波形采樣后的編碼存入定義好的 ROM中,再根 據(jù)時鐘循環(huán)的將這些編碼順序輸出,在輸出端將經(jīng)過數(shù)模轉換器轉換后的模擬信號 接入示波器即可顯示鋸齒波形。產(chǎn)生鋸齒波的VHDL代碼如下:library ieee;use ieee.std_logic_1164.all;entity juchi isport(clock,sel:in std_logic;d
22、out2:out integer range 0 to 255);end juchi;architecture bhv of juchi istype mem_type is array(0 to 63) of integer range 0 to 255;constant mem:mem_type:=(0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172
23、,176,180,184,188,192,198,200,204,208,212,216,220,224,228,234,238,242,246,250,255);signal address:integer range 0 to 63;beginprocess(clock)beginif clock'event and clock='1' thenif address>63 then文案實用address<=0;elseif sel='1' thenaddress<=address+1;dout2<=(mem(address)/
24、2;elseaddress<=address+1;dout2<=mem(address);end if;end if;end if;end process;end bhv;3.2.8鋸齒波的仿真在Quartus II軟件輸入上述代碼,再通過編譯和時序仿真,可得到如下的仿真 波形。| 3 Ewu e皿肛則財期 f 而猴同 叩口唧TiiiTTf"面血;咖皿jf 吐用 £i1圖5正弦波未分頻時仿真圖上圖中的輸出制式模擬信號各采樣點的數(shù)字編碼,由于沒有經(jīng)過數(shù)模轉換,輸 出結果就如圖中所示。當將程序下載到硬件后,在示波器上就可以顯示鋸齒波波形 了。3.3 各個控制單元的實
25、現(xiàn)3.3.1 頻率控制單元頻率控制單元包括按鍵輸入識別模塊、分頻數(shù)產(chǎn)生模塊和分頻模塊。具器件圖 分別如圖6、圖7和圖8所示。在按鍵輸入識別模塊中共有4個輸入端。其中一個時鐘輸入端,以一個頻率調(diào) 節(jié)輸入端,一個使系統(tǒng)輸出波形的頻率為最大的控制輸入端和一個使系統(tǒng)輸出 波形的頻率為最小的控制輸入端。本課程設計要求輸出波形的頻率在每按一次相應 的按鍵時,就增加或減少500Hz。而實驗室的硬件設備上的按鍵都是撥碼是按鍵, 即按鍵按下后一直有效,這顯然不能滿足要求。于是按鍵輸入識別模塊中用如下的 代碼實現(xiàn)按鍵沒按一次都能有效的功能。if button0='0' and button1=
26、39;1' thenif cnt=40 then cnt<=0;elsecnt<=cnt+1;end if;elsif button0='1' and button1='0' thenif cnt=40 then cnt<=0;elsecnt<=cnt+1;end if;以上代碼實現(xiàn)的只是頻率增長的功能,同理就可以實現(xiàn)頻率減小的功能dk«WT5.cr|btn1 Rbrgjh h93N圖6輸入端識別模塊aAiMvm&A ) vwn|>. .0 qidn習,CK|i=ai3. .0 si3 0E43圖7分頻數(shù)模
27、塊»" ui.3)二修 s號圖8分頻數(shù)模塊當按下按鍵輸入識別模塊中分別使整個系統(tǒng)輸出最大和最小頻率的波形的控 制輸入端時,在按相應的使頻率增減的按鍵則實現(xiàn)頻率從最大或最小開始增加或 減少的功能。在分頻數(shù)產(chǎn)生模塊中有一個輸入端接收從按鍵輸入識別模塊中輸出地對頻率 的控制信號的輸入端,一個分頻數(shù)輸出端,四個相應的接數(shù)碼管以顯示系統(tǒng)輸出信 號的頻率的輸出端。當分頻數(shù)產(chǎn)生模塊的輸入端接收從按鍵輸入識別模塊中輸出地對頻率的控制 信號后,便產(chǎn)生相應的分頻數(shù)送到輸出端,同時將與分頻數(shù)相應頻率送到與數(shù)碼管 相接的輸出端。其VHDL代碼見本課程設計的附錄。在分頻模塊中有一個系統(tǒng)時鐘輸入端,一
28、個分頻數(shù)輸入端和一個頻率輸出端。 分頻器的功能主要是根據(jù)分頻數(shù)產(chǎn)生相應的輸出頻率。3.3.2 波形輸出控制單元波形輸出控制單元中只包括一個數(shù)據(jù)選擇器模塊。其器件圖如圖9所示ff-X4(tout 1 7-.匯-yt7 .Q-閭7 0L1 皿彳工口圖9數(shù)據(jù)選擇器模塊在該模塊為4選1的數(shù)據(jù)選擇器,包括4個數(shù)據(jù)輸入端,一個數(shù)據(jù)選擇輸入端 和一個數(shù)據(jù)輸出端。其功能是根據(jù)數(shù)據(jù)選擇輸入端輸入的數(shù)據(jù)來選擇相應的數(shù)據(jù)送 到輸出端。從而實現(xiàn)數(shù)據(jù)的選擇輸出。3.4 硬件測試本課程設計是簡易多功能信號發(fā)生器,其總共有 6個輸入端和6個輸出端。具 體的輸入輸出端可見圖1中所示。根據(jù)引腳所鎖定圖將系統(tǒng)中的各個輸入輸出端口
29、鎖定到合適的引腳上。需要注 意的是本系統(tǒng)用到了數(shù)碼管顯示,所以應該選定實驗箱的模式6。另外,本實驗輸入的時鐘頻率是12MHz。當引腳鎖定完畢后,將程序下載到試驗箱中,連好示波器,在輸入端輸入相應 的值即可得到相應的輸出波形。具體的硬件仿真波形如下:在clk端輸入12MHz的時鐘信號,當圖1的原理圖中的bx1.0輸入“00”時 得到的是方波波形,如圖10所示。改變sel的值可以該變輸出波形的幅值。按頻率 控制單元中介紹的方法可以實現(xiàn)波形頻率的改變。在clk端輸入12MHz的時鐘信號,當圖1的原理圖中的bx1.0輸入“01”時 得到的是鋸齒波波形,如圖11所示。改變sel的值可以該變輸出波形的幅值
30、。按頻文案實用率控制單元中介紹的方法可以實現(xiàn)波形頻率的改變。在 clk 端輸入 12MHz 的時鐘信號,當圖1 的原理圖中的bx1.0輸入“ 11”時得到的是正弦波波形,如圖12 所示。改變sel 的值可以該變輸出波形的幅值。按頻率控制單元中介紹的方法可以實現(xiàn)波形頻率的改變。文案附錄方波library ieee;use ieee.std_logic_1164.all;entity fangbo isport(clock,sel:in std_logic;dout1:out integer range 0 to 255);end fangbo;architecture bhv of fangbo
31、 istype mem_type is array(0 to 63) of integer range 0 to 255;constantmem:mem_type:=(255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);signal address:integer
32、 range 0 to 63;beginprocess(clock)beginif clock'event and clock='1' thenif address>63 thenaddress<=0;elseif sel='1' thenaddress<=address+1;dout1<=(mem(address)/2;elseaddress<=address+1;dout1<=mem(address);end if;end if;end if;end process;end bhv;正弦波library ieee;
33、use ieee.std_logic_1164.all;entity sin2 isport(clock,sel:in std_logic;dout4:out integer range 0 to 255);end sin2;architecture bhv of sin2 istype mem_type is array(0 to 63) of integer range 0 to 255;constant mem:mem_type:=(255,254,252,249,245,239,233,225,217,207,197,186,174,162,150,137,124,112,99,87,
34、75,64,53,43,34,26,19,13,8,4,1,0,0,1,4,8,13,19,26,34,43,53,64,75,87,99,112,124,137,150,162,174,186,197,207,217,225,233,239,245,249,252,254,255);signal address:integer range 0 to 63;beginprocess(clock)beginif clock'event and clock='1' thenif address>63 thenaddress<=0;elseif sel='
35、1' thenaddress<=address+1;dout4<=(mem(address)/2;elseaddress<=address+1;dout4<=mem(address);end if;end if;end if;end process;end bhv;鋸齒波library ieee;use ieee.std_logic_1164.all;entity juchi isport(clock,sel:in std_logic;dout2:out integer range 0 to 255);end juchi;architecture bhv of
36、juchi istype mem_type is array(0 to 63) of integer range 0 to 255; constant mem:mem_type:=(0,4,8,12,16,20,24,28, 32,36,40,44,48,52,56,60, 64,68,72,76,80,84,88,92, 96,100,104,108,112,116,120,124, 128,132,136,140,144,148,152,156, 160,164,168,172,176,180,184,188, 192,198,200,204,208,212,216,220, 224,22
37、8,234,238,242,246,250,255);signal address:integer range 0 to 63;beginprocess(clock)beginif clock'event and clock='1' thenif address>63 thenaddress<=0;elseif sel='1' thenaddress<=address+1;dout2<=(mem(address)/2;elseaddress<=address+1;dout2<=mem(address);end if;e
38、nd if;end if;end process;end bhv;三角波library ieee;use ieee.std_logic_1164.all;entity sanjiao isport(clock,sel:in std_logic;dout3:out integer range 0 to 255);end sanjiao;architecture bhv of sanjiao istype mem_type is array(0 to 63) of integer range 0 to 255; constant mem:mem_type:=(0,8,16,24,32,40,48,
39、56, 64,72,80,88,96,104,112,120, 128,136,144,152,160,168,176,184,192,200,208,216,224,232,240,248,255,248,240,232,224,216,208,200,192,184,176,168,160,152,144,136,128,120,112,104,96,88,80,72,64,56,48,40,32,24,16,8);signal address:integer range 0 to 63;beginprocess(clock)beginif clock'event and cloc
40、k='1' thenif address>63 thenaddress<=0;elseif sel='1' thenaddress<=address+1;dout3<=(mem(address)/2;elseaddress<=address+1;dout3<=mem(address);end if;end if;end if;end process;end bhv;按鍵輸入識別模塊library ieee;use ieee.std_logic_1164.all;entity aa isport(clk:in std_logic
41、;btn:in std_logic_vector(1 downto 0);highh:in std_logic;loww:in std_logic;addr:out integer range 0 to 40);end aa;architecture bhv of aa issignal cnt:integer range 0 to 40 :=0;signal button0,button1,button2,button3:std_logic;beginprocess(highh,loww,clk,button0,button1)beginif clk'event and clk=
42、39;1' thenbutton0<=btn(0);button1<=button0;button2<=btn(1);button3<=button2;if highh='1' thencnt<=40;elsif loww='1' thencnt<=0;elseif button0='0' and button1='1' thenif cnt=40 thencnt<=0;elsecnt<=cnt+1;end if;elsif button0='1' and b
43、utton1='0' thenif cnt=40 thencnt<=0;elsecnt<=cnt+1;end if;elsif button2='0' and button3='1' thenif cnt=0 thencnt<=40;elsecnt<=cnt-1;end if;elsif button2='1' and button3='0' thenif cnt=0 thencnt<=40;elsecnt<=cnt-1;end if;end if;end if;end if;e
44、nd process;addr<=cnt;end bhv;分頻模塊library ieee;use ieee.std_logic_1164.all;entity fenpin isport(shu:in integer range 0 to 937;clk:in std_logic;clock:out std_logic);end fenpin;architecture bhv of fenpin issignal num:integer range 0 to 937;signal i:integer range 0 to 937:=0;signal temp:std_logic:=
45、39;0'beginprocess(clk,i,temp)beginif clk'event and clk='1' thenif i=shu theni<=0;temp<=not temp;elsei<=i+1;end if;end if;clock<=temp;end process;end bhv;分頻數(shù)產(chǎn)生模塊library ieee;use ieee.std_logic_1164.all;entity pinlv isport(address:in integer range 0 to 40;shu:out integer ra
46、nge 0 to 937;wan,qian,bai,shi,ge:out std_logic_vector(3 downto 0);end pinlv;architecture bhv of pinlv isbeginprocess(address)begincase address iswhen0=>shu<=937;wan<="ZZZZ"qian<="ZZZZ"bai<="0001"shi<="0000"ge<="0000" when1=>sh
47、u<=172;wan<="ZZZZ"qian<="ZZZZ"bai<="0101"shi<="0000"ge<="0000" when2=>shu<=93;wan<="ZZZZ"qian<="0001"bai<="0000"shi<="0000"ge<="0000"when實用3=>shu<=62;wan&l
48、t;="ZZZZ"qian<="0001"bai<="0101"shi<="0000"ge<="0000" when4=>shu<=46;wan<="ZZZZ"qian<="0010"bai<="0000"shi<="0000"ge<="0000" when5=>shu<=37;wan<="ZZZZ&qu
49、ot;qian<="0010"bai<="0101"shi<="0000"ge<="0000" when6=>shu<=31;wan<="ZZZZ"qian<="0011"bai<="0000"shi<="0000"ge<="0000" when7=>shu<=26;wan<="ZZZZ"qian<=&quo
50、t;0011"bai<="0101"shi<="0000"ge<="0000" when8=>shu<=24;wan<="ZZZZ"qian<="0100"bai<="0000"shi<="0000"ge<="0000" when9=>shu<=20;wan<="ZZZZ"qian<="0100"bai&
51、lt;="0101"shi<="0000"ge<="0000" when10=>shu<=18;wan<="ZZZZ"qian<="0101"bai<="0000"shi<="0000"ge<="0000" when11=>shu<=16;wan<="ZZZZ"qian<="0101"bai<="0101
52、"shi<="0000"ge<="0000" when12=>shu<=15;wan<="ZZZZ"qian<="0110"bai<="0000"shi<="0000"ge<="0000" when13=>shu<=28;wan<="ZZZZ"qian<="0110"bai<="0101"shi<=
53、"0000"ge<="0000" when14=>shu<=13;wan<="ZZZZ"qian<="0111"bai<="0000"shi<="0000"ge<="0000" when15=>shu<=12;wan<="ZZZZ"qian<="0111"bai<="0101"shi<="0000&quo
54、t;ge<="0000" when16=>shu<=11;wan<="ZZZZ"qian<="1000"bai<="0000"shi<="0000"ge<="0000" when17=>shu<=11;wan<="ZZZZ"qian<="1000"bai<="0101"shi<="0000"ge<="
55、;0000" when18=>shu<=10;wan<="ZZZZ"qian<="1001"bai<="0000"shi<="0000"ge<="0000" when19=>shu<=10;wan<="ZZZZ"qian<="1001"bai<="0101"shi<="0000"ge<="0000" wh
56、en20=>shu<=9;wan<="0001"qian<="0000"bai<="0000"shi<="0000"ge<="0000" when21=>shu<=9;wan<="0001"qian<="0000"bai<="0101"shi<="0000"ge<="0000" when22=>shu<
57、=8;wan<="0001"qian<="0001"bai<="0000"shi<="0000"ge<="0000" when23=>shu<=8;wan<="0001"qian<="0001"bai<="0101"shi<="0000"ge<="0000" when24=>shu<=8;wan<="
58、;0001"qian<="0010"bai<="0000"shi<="0000"ge<="0000" when25=>shu<=7;wan<="0001"qian<="0010"bai<="0101"shi<="0000"ge<="0000" when26=>shu<=7;wan<="0001"qian&
59、lt;="0011"bai<="0000"shi<="0000"ge<="0000" when27=>shu<=7;wan<="0001"qian<="0011"bai<="0101"shi<="0000"ge<="0000" when28=>shu<=6;wan<="0001"qian<="0100"bai<="0000"shi<="0000"ge<="0000" when29=>shu<=6;wan<="0001"qian<="0100"bai<="0101"shi<="0000"ge<="0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度挖掘機銷售與用戶滿意度調(diào)查合同4篇
- 二零二五年度XX交通運輸企業(yè)責任不可撤銷擔保書3篇
- 二零二四年學生實習單位實習保險保障協(xié)議3篇
- 2025年度木質門表面處理及涂裝服務合同4篇
- 2025年度冷凍倉儲設施設備租賃合同范本4篇
- 2025汽車維修合同范本
- 二零二五年度出口信用證抵押貸款風險控制協(xié)議4篇
- 2025土地產(chǎn)權抵押貸款合同
- 2025年度高科技車間承包管理協(xié)議書4篇
- 席夫堿基共軛聚合物負載過渡金屬催化劑的合成及催化乙烯齊聚性能研究
- 二零二五年度無人駕駛車輛測試合同免責協(xié)議書
- 2025年湖北華中科技大學招聘實驗技術人員52名歷年高頻重點提升(共500題)附帶答案詳解
- 高三日語一輪復習助詞「と」的用法課件
- 毛渣采購合同范例
- 2023中華護理學會團體標準-注射相關感染預防與控制
- 五年級上冊小數(shù)遞等式計算200道及答案
- 2024年廣東高考政治真題考點分布匯 總- 高考政治一輪復習
- 燃氣管道年度檢驗報告
- GB/T 44052-2024液壓傳動過濾器性能特性的標識
- FZ/T 81013-2016寵物狗服裝
- JB∕T 14089-2020 袋式除塵器 濾袋運行維護技術規(guī)范
評論
0/150
提交評論