版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、封面 作者: PanHongliang 僅供個人學(xué)習(xí) 電子技術(shù)綜合實驗實驗報班級:測控一班 學(xué)號: 2907101002 姓名:李大帥 指導(dǎo)老師:李穎 基于 FPGA 的數(shù)字頻率計設(shè)計報告 系統(tǒng)整體設(shè)計 設(shè)計要求 : 1、被測輸入信號:方波 2、 測試頻率范圍為:10Hz100MHz 3、 量程分為三檔:第一檔:閘門時間為 1S時,最大讀數(shù)為999.999KHZ 第二檔:閘門時間為 0.1S時,最大讀數(shù)為 9999.99KHZ 第三檔:閘門時間為 0.01S時,最大讀數(shù)為 99999.9KHZ。 4、顯示工作方式:a、用六位BCD七段數(shù)碼管顯示讀數(shù)。 b、 采用記憶顯示方法 c、 實現(xiàn)對高位無
2、意義零的消隱。 系統(tǒng)設(shè)計原理 : 所謂“頻率”,就是周期性信號在單位時間 (1 秒)內(nèi)變化的次數(shù)。若在一 定的時間間隔T內(nèi)計數(shù),計得某周期性信號的重復(fù)變化次數(shù)為 N,則該信號的 頻率可表達(dá)為: f = N / T . 基于這一原理我們可以使用單位時間內(nèi)對被測信號進(jìn)行計數(shù)的方法求得對 該信號的頻率測量,具體實現(xiàn)過程簡述如下:首先,將被測信號(方波)加到閘門 的輸入端。由一個高穩(wěn)定的石英振蕩器和一系列數(shù)字分頻器組成了時基信號發(fā) 生器,它輸出時間基準(zhǔn)(或頻率基準(zhǔn))信號去控制門控電路形成門控信號, 門控信號的作用時間 T 是非常準(zhǔn)確的 (由石英振蕩器決定 )。門控信號控制閘門 的開與閉,只有在閘門開通
3、的時間內(nèi),方波脈沖才能通過閘門成為被計數(shù)的 脈沖由計數(shù)器計數(shù)。 閘門開通的時間稱為閘門時間,其長度等于門控信號作用時間 T。比如, 時間基準(zhǔn)信號的重復(fù)周期為 1S,加到閘門的門控信號作用時間 T亦準(zhǔn)確地等 于1S,即閘門的開通時間 一一閘門時間”為1S。在這一段時間內(nèi),若計數(shù)器 計得N=100000個數(shù),根據(jù)公式f = N / T,那么被測頻率就是 100000Hz。如果 計數(shù)式頻率計的顯示器單位為“ KHz ,貝U顯示100.000KHZ,即小數(shù)點定位在第 三位。不難設(shè)想,若將閘門時間設(shè)為 T=0.1S,則計數(shù)值為10000,這時,顯示 器的小數(shù)點只要根據(jù)閘門時間 T 的改變也隨之自動往右移
4、動一位 (自動定位 ), 那么,顯示的結(jié)果為 100.00Khz。在計數(shù)式數(shù)字頻率計中,通過選擇不同的閘 門時間,可以改變頻率計的測量范圍和測量精度。 系統(tǒng)單元模塊劃分 : 1) 分頻器,將產(chǎn)生用于計數(shù)控制的時鐘分別為 1HZ, 10HZ, 100HZ 脈沖 和1KHZ的用于七段顯示數(shù)碼管掃描顯示的掃描信號。 2) 閘門選擇器,用于選擇不同的閘門時間以及產(chǎn)生后續(xù)的小數(shù)點的顯示 3) 門控電路,產(chǎn)生用于計數(shù)的使能控制信號,清零信號以及鎖存器鎖存 信號。 4) 計數(shù)器,用于對輸入的待測信號進(jìn)行脈沖計數(shù),計數(shù)輸出。 5) 鎖存器,用于對計數(shù)器輸出數(shù)據(jù)的鎖存,便于后續(xù)譯碼顯示電路的對 數(shù)據(jù)進(jìn)行記憶顯示
5、,同時避免計數(shù)器清零信號對數(shù)據(jù)產(chǎn)生影響。 6) 譯碼顯示,用于產(chǎn)生使七段顯示數(shù)碼管的掃描數(shù)字顯示,小數(shù)點顯示 的輸出信號,同時對高位的無意義零進(jìn)行消隱。 二、 單元電路設(shè)計 1、 分頻器 : 該電路將產(chǎn)生四個不同頻率的信號輸出,因為電路板上給出了一個 48MHZ 的 晶振,所以我們只需要對 48MHZ 的信號進(jìn)行適當(dāng)分頻即可得到我們所需的四個 不同頻率的信號輸出,我們設(shè)計一個輸入為 48MHZ有四個輸出端分別為 1HZ 10HZ和100H Z 1KHZ的分頻器,原程序如下: library IEEE 。 use IEEE.STD_LOGIC_1164.ALL。 use IEEE.STD_LOG
6、IC_ARITH.ALL。 use IEEE.STD_LOGIC_UNSIGNED.ALL entity fenpinqi is Port ( clk : in STD_LOGIC 。 clkout1 : out STD_LOGIC 。 clkout10 : out STD_LOGIC 。 clkout100 : out STD_LOGIC 。 clkout1K : out STD_LOGIC) 。 end fenpinqi 。 architecture Behavioral of fenpinqi is signal cnt1:integer range 1 to 24000000 。 si
7、gnal cnt10:integer range 1 to 2400000 。 signal cnt100:integer range 1 to 240000 。 signal cnt1K:integer range 1 to 24000 。 signal c1:std_logic 。 signal c2:std_logic 。 signal c3:std_logic signal c4:std_logic 。 begin process(clk)is begin if clkevent and clk=1 then if cnt124000000 then - 對 cnt1 進(jìn)行計數(shù),當(dāng) c
8、nt1 未計滿后對其進(jìn)行加 1 cnt1=cnt1+1 。 elsif cnt1=24000000 then -cnt1 計滿后對其進(jìn)行賦一,并且令 c1 進(jìn)行翻轉(zhuǎn),然后將 c1 的值賦給 clkout1 c1=not cl。 -由于 48MHZ 勺的信號,前一半的時候 cl 為 0,則后一半是為 1,就完成了對信號進(jìn) 行分頻,產(chǎn)生了 1HZ 勺信號 cnt1=1 。 end if 。 end if 。 end process 。 process(clk)is begin if clkevent and clk=1 then - 方法同上 if cnt102400000 then cnt10=
9、cnt10+1 。 elsif cnt10=2400000 then c2=not c2 。 cnt10=1 。 end if 。 end if 。 end process 。 process(clk)is begin if clkevent and clk=1 then - 方法同上 if cnt100240000 then cnt100=cnt100+1 。 elsif cnt100=240000 then c3=not c3 。 cnt100=1 。 end if 。 end if 。 end process 。 process(clk)is begin if clkevent and
10、clk=1 then - 方法同上 if cnt1K24000000 then cnt1K=cnt1K+1 elsif cnt1=24000 then c4=not c4 。 cnt1K=1 。 end if 。 end if 。 end process 。 clkout1=c1 。 clkout10=c2 。 clkout100=c3 。 clkout1K clk, clkout1 = clkout1, clkout10 = clkout10, clkout100 = clkout100, clkout1K = clkout1K)。 tb : PROCESS BEGIN clk=0。 wai
11、t for 10 ps。 clk=1。 wait for 10 ps END PROCESS END。 對該模塊進(jìn)行仿真結(jié)果如下: 有上圖可知分頻器工作正常,產(chǎn)生的個信號也沒有毛刺,結(jié)果十分理想。 2、閘門選擇器: 在這個模塊中我們有四個輸出端和六個輸入端,其中四個輸出端中有一個是頻率輸 出端,是通過三個閘門選擇開關(guān)輸入和三個輸入頻率決定的,另外三個輸出端則是用 來后面的小數(shù)點控制的,而六個輸入端中的三個是上面分頻器的三個輸出 1HZ, 10HZ 和100HZ,另外三個是電路板上的撥動開關(guān), 用來選擇閘門, 控制輸出。 其原程序和 分析如下: library IEEE 。 use IEEE.S
12、TD_LOGIC_1164.ALL。 use IEEE.STD_LOGIC_ARITH.ALL。 use IEEE.STD_LOGIC_UNSIGNED.ALL entity SELE is Port ( SE1 : in STD_LOGIC 。 SE10 : in STD_LOGIC 。 SE100 : in STD_LOGIC 。 F1HZ : IN STD_LOGIC。 F10HZ : IN STD_LOGIC 。 F100HZ :IN STD_LOGIC 。 FREF : out STD_LOGIC 。 DP1 : out STD_LOGIC 。 DP2 : out STD_LOGIC
13、 。 DP3 : out STD_LOGIC) 。 end SELE。 architecture Behavioral of SELE is begin PROCESS(SE1,SE10,SE100) IS BEGIN IF SE1=1 AND SE10=0 AND SE100=0 THEN FREF=F1HZ -當(dāng)閘門控制在第一檔的時候,令輸出端輸出 1HZ 輸入端的輸入,小數(shù) 點控制 dp1 有效,dp2,dp3 無效 DP1=0 。 DP2=1。 DP3=1。 END IF。 IF SE1=0 AND SE10=1 AND SE100=0 THEN FREF=F10HZ -第二檔,輸出為
14、 10HZ dp2 有效 DP1=1 。 DP2=0 。 DP3=1 END IF IF SE1=0 AND SE10=0 AND SE100=1 THEN FREF=F100HZ -第三檔,輸出為 100HZ dp3 有效 DP1=1 。 DP2=1。 DP3 SE1, SE10 = SE10, SE100 = SE100, F1HZ = F1HZ, F10HZ = F10HZ, F100HZ = F100HZ, FREF = FREF, DP1 = DP1, DP2 = DP2, DP3 = DP3。) tb : PROCESS BEGIN F1HZ=0。 FREF=0。 wait for
15、 100 ns。 F1HZ=1。 FREF=1。 WAIT FOR 100 NS END PROCESS END。 仿真結(jié)果如圖: 有仿真結(jié)果可知閘門選擇器工作正常,能夠準(zhǔn)確輸出我們所需的信號。 3、門控信號: 在此模塊中有一個輸入端和兩個輸出端,輸入端為上面的閘門選擇器輸出的頻 率,兩個輸出端分別為計數(shù)器是能控制信號(鎖存器控制信號),和計數(shù)器清零信 號。具體源程序即分析如下: library IEEE 。 use IEEE.STD_LOGIC_1164.ALL。 use IEEE.STD_LOGIC_ARITH.ALL。 use IEEE.STD_LOGIC_UNSIGNED.ALL en
16、tity CONTROLS is Port ( FREF : in STD_LOGIC 。 GAT : out STD_LOGIC 。 CLR : out STD_LOGIC) 。 end CONTROLS architecture Behavioral of CONTROLS is SIGNAL G1: STD_LOGIC:=0 S begin PROCESS(FREF) IS BEGIN IF FREFEVENT AND FREF=1 THEN G1=NOT G1S- 該過程對時鐘信號又一次進(jìn)行分頻,產(chǎn)生出半個周期時間為 1 的控制信號,作為計數(shù)使 能,保證了時間的準(zhǔn)確性 END IF S
17、 END PROCESSS PROCESS(FREF,G1) IS BEGIN IF FREF=0 AND G1=0 THEN效半個時鐘時間后,對計數(shù)器清零 ELSE CLR=0 。 - 清零信號高電平有效 END IF 。 END PROCESS GAT=G。 -將 G1 賦給 gat 輸出端,它是計數(shù)器的使能信號同時也是鎖存器的鎖存信號 end Behavioral 。 源文件編寫完成后保存編譯并生成圖形文件符號如圖: 仿真文件代碼如下: LIBRARY ieee USE ieee.std_logic_1164.ALL USE ieee.std_logic_ un sig ned.a。 U
18、SE ieee.numeric_std.ALL。 ENTITY TBCON_vhd IS END TBCON_vhd。 ARCHITECTURE behavior OF TBCON_vhd IS COMPONENT CONTROLS PORT(FREF : IN stdog。 GAT : OUT std_logic。 CLR FREF, GAT = GAT, CLR = CLR。) tb : PROCESS BEGIN FREF=0。 WAIT FOR 100 NS FREF=1。 WAIT FOR 100 NS END PROCESS END。 對上面的文件進(jìn)行仿真,結(jié)果如下: 由上圖的仿真
19、結(jié)果可知,控制電路工作正常,輸出信號穩(wěn)定,很理想。同時我們 也可以看出來該模塊對分頻器的時鐘輸出的穩(wěn)定性依賴十分嚴(yán)重,一旦分頻器輸出時 鐘有毛刺,該控制信號將會完全的無效,這也是為什么我知道上面的分頻器設(shè)計不是 最優(yōu)的方案,卻還是采用了上述方法的原因。 4、計數(shù)器: 該模塊實現(xiàn)的功能是對輸入信號脈沖的計數(shù),并正確的輸出結(jié)果和溢出。使用上面的 門控信號產(chǎn)生的 gat 信號控制計數(shù)器的使能端,以實現(xiàn)計數(shù)器的定時計數(shù)。該模塊是 使用六個十進(jìn)制計數(shù)器同步并聯(lián)而成的,首先我們設(shè)計用于并聯(lián)的十進(jìn)制計數(shù)器,原 程序如下: library IEEE 。 use IEEE.STD_LOGIC_1164.ALL。
20、 use IEEE.STD_LOGIC_ARITH.ALL。 use IEEE.STD_LOGIC_UNSIGNED.ALL entity CNT10 is Port ( CLK : in STD_LOGIC 。 CLR : in STD_LOGIC 。 ENA : in STD_LOGIC 。 CQ : out STD_LOGIC_VECTOR (3 downto 0) CO : out STD_LOGIC) 。 end CNT10。 architecture Behavioral of CNT10 is SIGNAL CQI: STD_LOGIC_VECTOR(3 DOWNTO 0):=0
21、00。0 循環(huán)計數(shù) begin PROCESS(CLK,CLR) IS BEGIN IF CLR=1 THEN CQI=0000 。 行下述操作 ELSIF CLKEVENT AND CLK=1 THEN IF ENA=1 THEN 理 IF CQI=1001 THEN CQI=0000 。 ELSE CQI=CQI+1 。 END IF。 END IF。 END IF。 END PROCESS CO = 1 when ena = 1 and cqi = 9 else 0 。 信號 - 當(dāng)且僅當(dāng)使能有效且計數(shù)為 9 時產(chǎn)生進(jìn)位信號,進(jìn)位信號 1 有效,同步并聯(lián)時連高 end Behaviora
22、l 文件編寫完成后保存編譯生成圖形文件符號,如上圖: 創(chuàng)建圖形文件 cnt6 并按照下圖進(jìn)行連接,保存后編譯生成圖形文件符號如圖: 仿真文件代碼如下: LIBRARY ieee USE ieee.std_logic_1164.ALL USE ieee.std_logic_unsigned.all USE ieee.numeric_std.ALL 。 ENTITY TBCNT10_vhd IS END TBCNT10_vhd ARCHITECTURE behavior OF TBCNT10_vhd IS COMPONENT CNT10 PORT(CLK : IN std_logic 。 CLR
23、: IN std_logic 。 -定義中間信號 CQI,用于數(shù)據(jù)輸出的 -當(dāng) CLR 青零信號有效時使輸出為 0000,無效時進(jìn) - 對時鐘進(jìn)行計數(shù) - 判斷使能信號,有效則進(jìn)行計數(shù),否則不作處 - 數(shù)據(jù) 09 循環(huán),計滿后重新回到 0 - 進(jìn)位信號,最高位的僅為信號作為計數(shù)的溢出 CQ CLK, CLR = CLR, ENA = ENA, CQ = CQ, CO = CO)。 tb : PROCESS BEGIN CLK=0 。 wait for 100 ns 。 CLK=1 。 WAIT FOR 100 NS。 END PROCESS END。 仿真結(jié)果如圖: 如仿真結(jié)果我們可以看出,該
24、模塊運行正常,計數(shù)穩(wěn)定,結(jié)果十分理想。 5、鎖存器: 由于前面的計數(shù)器的輸出為六組四位二進(jìn)制數(shù)和一個溢出信號,所以我們使用的鎖存 器也使用六個四位鎖存器和一個一位鎖存器。鎖存器使用下降沿鎖存,即當(dāng)計數(shù)器的 使能信號變?yōu)闊o效的一瞬間我們令鎖存器將數(shù)據(jù)鎖存。四位鎖存器的原代碼如下: library IEEE 。 use IEEE.STD_LOGIC_1164.ALL。 use IEEE.STD_LOGIC_ARITH.ALL。 use IEEE.STD_LOGIC_UNSIGNED.ALL entity LATCH4 is Port ( CLK : in STD_LOGIC 。 DIN : in
25、STD_LOGIC_VECTOR (3 downto 0) 。 QOU : out STD_LOGIC_VECTOR (3 downto 0) 。 end LATCH4。 architecture Behavioral of LATCH4 is begin PROCESS(CLK,DIN) IS BEGIN IF CLKEVENT AND CLK=0 THEN - 當(dāng)時鐘信號下降沿時,實現(xiàn)鎖存 QOU=DIN END IF。 END PROCESS end Behavioral 。 上述文件編寫完成后保存編譯生成圖形文件符號如圖: 再編寫一位鎖存器,源程序代碼如下: library IEEE
26、。 use IEEE.STD_LOGIC_1164.ALL。 use IEEE.STD_LOGIC_ARITH.ALL。 use IEEE.STD_LOGIC_UNSIGNED.ALL entity LATCH1 is Port ( CLK : in STD_LOGIC 。 DIN : in STD_LOGIC_VECTOR 。 QOU : out STD_LOGIC_VECTOR) 。 end LATCH1。 architecture Behavioral of LATCH1 is begin PROCESS(CLK,DIN) IS BEGIN IF CLKEVENT AND CLK=0 T
27、HEN - 當(dāng)時鐘信號下降沿時,實現(xiàn)鎖存 QOU=DIN END IF。 END PROCESS end Behavioral 。 文件編寫完成后保存編譯生成圖形文件符號,如圖: 鎖存完成后有六組四位二進(jìn)制數(shù)和一個一位二進(jìn)制數(shù),所以我們隊總線進(jìn)行了合 并,即將六組四位數(shù)合并成一個二十四位數(shù),合并程序如下: library IEEE 。 use IEEE.STD_LOGIC_1164.ALL。 use IEEE.STD_LOGIC_ARITH.ALL。 use IEEE.STD_LOGIC_UNSIGNED.ALL entity ADVOCATES is Port ( S0 : in STD_L
28、OGIC_VECTOR (3 downto 0) 51 : in STD_LOGIC_VECTOR (3 downto 0) 。 52 : in STD_LOGIC_VECTOR (3 downto 0) 。 53 : in STD_LOGIC_VECTOR (3 downto 0) 。 S4 : in STD_LOGIC_VECTOR (3 downto 0) 。 S5 : in STD_LOGIC_VECTOR (3 downto 0) 。 S6 : out STD_LOGIC_VECTOR (23 downto 0) 。 end ADVOCATES architecture Behavi
29、oral of ADVOCATES is begin S6(23 DOWNTO 20)=S。 -將總線的對應(yīng)位進(jìn)行連接 S6(19 DOWNTO 16)=S。 S6(15 DOWNTO 12)=S2 S6(11 DOWNTO 8)=S3 S6(7 DOWNTO 4)=S4 S6(3 DOWNTO 0)=S35 end Behavioral 3 文件編寫完成后保存編譯生成圖形文件符號,如圖: 創(chuàng)建該模塊的頂層圖形文件 LAT.sch 將上述個文件按照如圖所示連接,保存編譯 生成圖形文件符號如圖: 該模塊的輸入輸出簡單,無需仿真3 6、譯碼顯示: 該模塊實現(xiàn)的是對鎖存器鎖存的數(shù)據(jù)進(jìn)行處理并顯示輸出
30、,以及小數(shù)點的不 同閘門的輸出顯示,以及電路板上七段顯示譯碼管的掃描信號輸出3其中對鎖存 數(shù)據(jù)的處理包括溢出有效時的數(shù)據(jù)消除, 和對高位無意義零的自動消隱3首先我 們編寫小數(shù)點控制的源文件代碼: library IEEE 3 use IEEE.STD_LOGIC_1164.ALL3 use IEEE.STD_LOGIC_ARITH.ALL3 use IEEE.STD_LOGIC_UNSIGNED.AL3L entity POINTCON is Port ( SE1 : in STD_LOGIC 3 SE10 : in STD_LOGIC 3 SE100 : in STD_LOGIC 3 SEL
31、 : in STD_LOGIC_VECTOR (2 downto 0) 3 DP : out STD_LOGIC) 3 end POINTCON3 architecture Behavioral of POINTCON is begin PROCESS(SE1,SE10,SE100,SEL) IS BEGIN IF SE1=1 AND SE10=0 AND SE100=0 AND SEL=011 THEN DP=0 3 - 當(dāng)為第一檔時,令第四位的數(shù)碼管的小數(shù)點點亮,其他的不亮 ELSIF SE1=0 AND SE10=1 AND SE100=0 AND SEL=010 THEN DP=0 3
32、 - 第二檔時,第三位的數(shù)碼管小數(shù)點點亮 ELSIF SE1=0 AND SE10=0 AND SE100=1 AND SEL=001 THEN DP=0 3 - 第三檔時,第二位的小數(shù)點點亮ELSE DP=1 - 不符合上述三檔時,小數(shù)點全部消隱 END IF END PROCESS end Behavioral 。 編寫完成后保存編譯生成圖形文件符號如圖: 再編寫用于數(shù)碼管掃描顯示的的位選信號生成文件,其代碼如下: library IEEE 。 use IEEE.STD_LOGIC_1164.ALL。 use IEEE.STD_LOGIC_ARITH.ALL。 use IEEE.STD_L
33、OGIC_UNSIGNED.ALL entity CTRLS is Port ( CLK : in STD_LOGIC 。 SEL : out STD_LOGIC_VECTOR (2 downto 0) 。 end CTRLS。 architecture Behavioral of CTRLS is SIGNAL CNT: STD_LOGIC_VECTOR(2 DOWNTO 0):=00。0 begin PROCESS(CLK) IS BEGIN IF CLKEVENT AND CLK=1 THEN -接入 1KHZ 勺時鐘信號,使 CNT 進(jìn)行循環(huán)計數(shù),從 000 到 101 IF CNT=
34、”101”THEN CNT=”000”。 -計滿則清零,不滿則加一 ELSE CNT=CNT+1。 END IF。 END IF。 END PROCESS SEL=CNT -將 CNT 信號賦給 SEL 輸出 end Behavioral 。 文件編寫完成后保存編譯生成圖形文件符號如圖: 再編寫使高位無意義零自動消隱功能勺勺文件,源程序代碼如下: library IEEE 。 use IEEE.STD_LOGIC_1164.ALL。 use IEEE.STD_LOGIC_ARITH.ALL。 use IEEE.STD_LOGIC_UNSIGNED.ALL entity DSELE is Por
35、t ( DP1: IN STD_LOGIC 。 DP2: IN STD_LOGIC。 DIN : in STD_LOGIC_VECTOR (23 downto 0) 。 QOU : out STD_LOGIC_VECTOR (23 downto 0) 。 end DSELE。 architecture Behavioral of DSELE is begin PROCESS(DP1,DP2,DIN) IS BEGIN IF DP1=0 AND DP2=1 THEN IF DIN(23 DOWNTO 20)=0000 THEN QOU(23 DOWNTO 20)=1111。 Q0U(19 DOW
36、NTO 0)=DIN(19 DOWNTQO) END IF。 IF DIN(23 DOWNTO 20)=0000 AND DIN(19 DOWNTO 16)=0000 THEN QOU(23 DOWNTO 20)=1111。 QOU(19 DOWNTO 16)=1111。 QOU(15 DOWNTO 0)=DIN(15 DOWNTQO) END IF。 END IF。 IF DP1=1 AND DP2=0 THEN IF DIN(23 DOWNTO 20)=0000 THEN QOU(23 DOWNTO 20)=1111。 QOU(19 DOWNTO 0)=DIN(19 DOWNTQO) EN
37、D IF。 IF DIN(23 DOWNTO 20)=0000 AND DIN(19 DOWNTO 16)=0000 THEN QOU(23 DOWNTO 20)=1111。 QOU(19 DOWNTO 16)=1111。 QOU(15 DOWNTO 0)=DIN(15 DOWNTQO) END IF。 IF DIN(23 DOWNTO 20)=0000 AND DIN(19 DOWNTO 16)=0000 AND DIN(15 DOWNTO 12)=0000 THEN QOU(23 DOWNTO 20)=1111。 QOU(19 DOWNTO 16)=1111。 QOU(15 DOWNTO
38、12)=1111。 QOU(11 DOWNTO 0)=DIN(11 DOWNTO. 0) END IF。 END IF. IF DP1=1 AND DP2=1 THEN IF DIN(23 DOWNTO 20)=0000 THEN QOU(23 DOWNTO 20)=1111. QOU(19 DOWNTO 0)=DIN(19 DOWNTO.0) END IF. IF DIN(23 DOWNTO 20)=0000 AND DIN(19 DOWNTO 16)=0000 THEN QOU(23 DOWNTO 20)=1111. QOU(19 DOWNTO 16)=1111. QOU(15 DOWNT
39、O 0)=DIN(15 DOWNTO.0) END IF. IF DIN(23 DOWNTO 20)=0000 AND DIN(19 DOWNTO 16)=0000 AND DIN(15 DOWNTO 12)=0000 THEN QOU(23 DOWNTO 20)=1111. QOU(19 DOWNTO 16)=1111. QOU(15 DOWNTO 12)=1111. Q0U(11 DOWNTO 0)=DIN(11 DOWNTQO) END IF。 IF DIN(23 DOWNTO 20)=0000 AND DIN(19 DOWNTO 16)=0000 AND DIN(15 DOWNTO 1
40、2)=0000 AND DIN(11 DOWNTO 8)=0000 THEN QOU(23 DOWNTO 20)=1111。 QOU(19 DOWNTO 16)=1111。 QOU(15 DOWNTO 12)=1111。 QOU(11 DOWNTO 8)=1111。 QOU(7 DOWNTO 0)DATADATADATADATADATADATADATASEGSEGSEGSEGSEGSEGSEGSEGSEGSEGSEG=1111111 END CASE if 0VERIN=1 THEN - 判斷溢出,若溢出則令輸出全部不顯示 SEG CLK, SEL = SEL) tb : PROCESS BE
41、GIN CLK=0 END。 結(jié)果如下: 有仿真結(jié)果我們可以看出程序運行正常,邏輯上沒有任何問題。 至此所有的單元電路全部完成。 1、頂層文件: 創(chuàng)建圖形文件FRYALL.sch按照下圖連接各模塊生成的圖形文件符號,完成后保存編譯。 2、管腳分配: 由系統(tǒng)的頂層文件可以看到該系統(tǒng)的輸入端共有 5 個,輸出端有 11 個,管腳分 配文件FRYALL.uc如下: NET CLKIN LOC = T8。 NET DCLK LOC = C16。 NET DP LOC = C11。 NET NECT LOC = D7。 NET SE1 LOC = L6 。 NET SE10 LOC = N5。 NET
42、SE100 LOC = L7。 NET SEG LOC = B14。 NET SEG LOC = A13。 NET SEG LOC = C13。 NET SEG LOC = C12。 NET SEG LOC = A12。 NET SEG LOC = B12。 NET SEG LOC = A11。 NET SEL LOC = F8。 NET SEL LOC = D8。 NET SEL LOC = E7。 3、下載過程: 光標(biāo)移至【Gen erate Programi ng File】后單擊鼠標(biāo)右鍵,然后單擊【 Properties】 在打開的對話框的左側(cè)欄選中【 Configuration Op
43、tions】將右側(cè)的Unused IOB Pins這一 項改為Pull Up,單擊OK。在界面的左下角雙擊【 Gen erate Programi ng File】,軟件將 自動對整個系統(tǒng)進(jìn)行編譯并生成可執(zhí)行文件 FRYALL.b。將彈出的對話框關(guān)掉,雙擊 【Gen erate Prom, ACE,or JTAG File】在彈出的對話框中點擊 Fin ish,在隨后出現(xiàn)的對話 框中選擇FRYALL.bit然后點擊打開,在隨后的對話框中點擊 Bypass。右鍵單擊左邊圖 標(biāo)選擇Program,在隨后的對話框中單擊 OK,文件將自動下載到開發(fā)板上,成功后, 接入函數(shù)發(fā)生器進(jìn)行測試。 WAIT FOR 100 NS CLK=1。 WAIT FOR 100 NS END PROCESS 四、測試結(jié)果及結(jié)論 經(jīng)過了前三步,最后我們將所完成的工程下載到了板子上,連接好函數(shù)發(fā)生器,并 設(shè)定好了函數(shù)發(fā)生器的輸出信號電平( 5Vpp),就可以進(jìn)行使用了。 最后結(jié)果顯示程序工作正常,讀數(shù)清晰穩(wěn)定,完全符合開始時的要求。 誤差分析: 我將函數(shù)發(fā)生器的頻率調(diào)節(jié)到 999,999HZ時,頻率計不顯示,即產(chǎn)生了計 數(shù)溢出,然后我進(jìn)行了進(jìn)一步的調(diào)節(jié),將函
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五美容院員工培訓(xùn)課程開發(fā)與實施合同4篇
- 二零二五年度農(nóng)業(yè)土地租賃合同稅收籌劃策略4篇
- 二零二五年度特種門類安裝及售后服務(wù)合同3篇
- 房贈予合同范本(2篇)
- 二零二五年度出租車庫信息化改造合同4篇
- 2025年度牛奶產(chǎn)業(yè)鏈上下游合作合同4篇
- 2025年度健康養(yǎng)生經(jīng)營承包合同樣本3篇
- 2025版歷史文化名城美化保護合同
- 二零二五年度教育機構(gòu)教師聘用合同樣本4篇
- 二零二五年度勞動合同對價與員工多元化福利方案合同2篇
- 2023年成都市青白江區(qū)村(社區(qū))“兩委”后備人才考試真題
- 2024中考復(fù)習(xí)必背初中英語單詞詞匯表(蘇教譯林版)
- 海員的營養(yǎng)-1315醫(yī)學(xué)營養(yǎng)霍建穎等講解
- 《現(xiàn)代根管治療術(shù)》課件
- 肩袖損傷的護理查房課件
- 2023屆北京市順義區(qū)高三二模數(shù)學(xué)試卷
- 公司差旅費報銷單
- 我國全科醫(yī)生培訓(xùn)模式
- 2021年上海市楊浦區(qū)初三一模語文試卷及參考答案(精校word打印版)
- 八年級上冊英語完形填空、閱讀理解100題含參考答案
- 八年級物理下冊功率課件
評論
0/150
提交評論