FPGA數字頻率計設計方案報告_第1頁
FPGA數字頻率計設計方案報告_第2頁
免費預覽已結束,剩余19頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、封面 作者: PanHongliang 僅供個人學習 電子技術綜合實驗實驗報班級:測控一班 學號: 2907101002 姓名:李大帥 指導老師:李穎 基于 FPGA 的數字頻率計設計報告 系統(tǒng)整體設計 設計要求 : 1、被測輸入信號:方波 2、 測試頻率范圍為:10Hz100MHz 3、 量程分為三檔:第一檔:閘門時間為 1S時,最大讀數為999.999KHZ 第二檔:閘門時間為 0.1S時,最大讀數為 9999.99KHZ 第三檔:閘門時間為 0.01S時,最大讀數為 99999.9KHZ。 4、顯示工作方式:a、用六位BCD七段數碼管顯示讀數。 b、 采用記憶顯示方法 c、 實現對高位無

2、意義零的消隱。 系統(tǒng)設計原理 : 所謂“頻率”,就是周期性信號在單位時間 (1 秒)內變化的次數。若在一 定的時間間隔T內計數,計得某周期性信號的重復變化次數為 N,則該信號的 頻率可表達為: f = N / T . 基于這一原理我們可以使用單位時間內對被測信號進行計數的方法求得對 該信號的頻率測量,具體實現過程簡述如下:首先,將被測信號(方波)加到閘門 的輸入端。由一個高穩(wěn)定的石英振蕩器和一系列數字分頻器組成了時基信號發(fā) 生器,它輸出時間基準(或頻率基準)信號去控制門控電路形成門控信號, 門控信號的作用時間 T 是非常準確的 (由石英振蕩器決定 )。門控信號控制閘門 的開與閉,只有在閘門開通

3、的時間內,方波脈沖才能通過閘門成為被計數的 脈沖由計數器計數。 閘門開通的時間稱為閘門時間,其長度等于門控信號作用時間 T。比如, 時間基準信號的重復周期為 1S,加到閘門的門控信號作用時間 T亦準確地等 于1S,即閘門的開通時間 一一閘門時間”為1S。在這一段時間內,若計數器 計得N=100000個數,根據公式f = N / T,那么被測頻率就是 100000Hz。如果 計數式頻率計的顯示器單位為“ KHz ,貝U顯示100.000KHZ,即小數點定位在第 三位。不難設想,若將閘門時間設為 T=0.1S,則計數值為10000,這時,顯示 器的小數點只要根據閘門時間 T 的改變也隨之自動往右移

4、動一位 (自動定位 ), 那么,顯示的結果為 100.00Khz。在計數式數字頻率計中,通過選擇不同的閘 門時間,可以改變頻率計的測量范圍和測量精度。 系統(tǒng)單元模塊劃分 : 1) 分頻器,將產生用于計數控制的時鐘分別為 1HZ, 10HZ, 100HZ 脈沖 和1KHZ的用于七段顯示數碼管掃描顯示的掃描信號。 2) 閘門選擇器,用于選擇不同的閘門時間以及產生后續(xù)的小數點的顯示 3) 門控電路,產生用于計數的使能控制信號,清零信號以及鎖存器鎖存 信號。 4) 計數器,用于對輸入的待測信號進行脈沖計數,計數輸出。 5) 鎖存器,用于對計數器輸出數據的鎖存,便于后續(xù)譯碼顯示電路的對 數據進行記憶顯示

5、,同時避免計數器清零信號對數據產生影響。 6) 譯碼顯示,用于產生使七段顯示數碼管的掃描數字顯示,小數點顯示 的輸出信號,同時對高位的無意義零進行消隱。 二、 單元電路設計 1、 分頻器 : 該電路將產生四個不同頻率的信號輸出,因為電路板上給出了一個 48MHZ 的 晶振,所以我們只需要對 48MHZ 的信號進行適當分頻即可得到我們所需的四個 不同頻率的信號輸出,我們設計一個輸入為 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 進行計數,當 c

8、nt1 未計滿后對其進行加 1 cnt1=cnt1+1 。 elsif cnt1=24000000 then -cnt1 計滿后對其進行賦一,并且令 c1 進行翻轉,然后將 c1 的值賦給 clkout1 c1=not cl。 -由于 48MHZ 勺的信號,前一半的時候 cl 為 0,則后一半是為 1,就完成了對信號進 行分頻,產生了 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。 對該模塊進行仿真結果如下: 有上圖可知分頻器工作正常,產生的個信號也沒有毛刺,結果十分理想。 2、閘門選擇器: 在這個模塊中我們有四個輸出端和六個輸入端,其中四個輸出端中有一個是頻率輸 出端,是通過三個閘門選擇開關輸入和三個輸入頻率決定的,另外三個輸出端則是用 來后面的小數點控制的,而六個輸入端中的三個是上面分頻器的三個輸出 1HZ, 10HZ 和100HZ,另外三個是電路板上的撥動開關, 用來選擇閘門, 控制輸出。 其原程序和 分析如下: 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 -當閘門控制在第一檔的時候,令輸出端輸出 1HZ 輸入端的輸入,小數 點控制 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。 仿真結果如圖: 有仿真結果可知閘門選擇器工作正常,能夠準確輸出我們所需的信號。 3、門控信號: 在此模塊中有一個輸入端和兩個輸出端,輸入端為上面的閘門選擇器輸出的頻 率,兩個輸出端分別為計數器是能控制信號(鎖存器控制信號),和計數器清零信 號。具體源程序即分析如下: 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- 該過程對時鐘信號又一次進行分頻,產生出半個周期時間為 1 的控制信號,作為計數使 能,保證了時間的準確性 END IF S

17、 END PROCESSS PROCESS(FREF,G1) IS BEGIN IF FREF=0 AND G1=0 THEN效半個時鐘時間后,對計數器清零 ELSE CLR=0 。 - 清零信號高電平有效 END IF 。 END PROCESS GAT=G。 -將 G1 賦給 gat 輸出端,它是計數器的使能信號同時也是鎖存器的鎖存信號 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。 對上面的文件進行仿真,結果如下: 由上圖的仿真

19、結果可知,控制電路工作正常,輸出信號穩(wěn)定,很理想。同時我們 也可以看出來該模塊對分頻器的時鐘輸出的穩(wěn)定性依賴十分嚴重,一旦分頻器輸出時 鐘有毛刺,該控制信號將會完全的無效,這也是為什么我知道上面的分頻器設計不是 最優(yōu)的方案,卻還是采用了上述方法的原因。 4、計數器: 該模塊實現的功能是對輸入信號脈沖的計數,并正確的輸出結果和溢出。使用上面的 門控信號產生的 gat 信號控制計數器的使能端,以實現計數器的定時計數。該模塊是 使用六個十進制計數器同步并聯(lián)而成的,首先我們設計用于并聯(lián)的十進制計數器,原 程序如下: 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)計數 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 。 信號 - 當且僅當使能有效且計數為 9 時產生進位信號,進位信號 1 有效,同步并聯(lián)時連高 end Behaviora

22、l 文件編寫完成后保存編譯生成圖形文件符號,如上圖: 創(chuàng)建圖形文件 cnt6 并按照下圖進行連接,保存后編譯生成圖形文件符號如圖: 仿真文件代碼如下: 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,用于數據輸出的 -當 CLR 青零信號有效時使輸出為 0000,無效時進 - 對時鐘進行計數 - 判斷使能信號,有效則進行計數,否則不作處 - 數據 09 循環(huán),計滿后重新回到 0 - 進位信號,最高位的僅為信號作為計數的溢出 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。 仿真結果如圖: 如仿真結果我們可以看出,該

24、模塊運行正常,計數穩(wěn)定,結果十分理想。 5、鎖存器: 由于前面的計數器的輸出為六組四位二進制數和一個溢出信號,所以我們使用的鎖存 器也使用六個四位鎖存器和一個一位鎖存器。鎖存器使用下降沿鎖存,即當計數器的 使能信號變?yōu)闊o效的一瞬間我們令鎖存器將數據鎖存。四位鎖存器的原代碼如下: 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 - 當時鐘信號下降沿時,實現鎖存 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 - 當時鐘信號下降沿時,實現鎖存 QOU=DIN END IF。 END PROCESS end Behavioral 。 文件編寫完成后保存編譯生成圖形文件符號,如圖: 鎖存完成后有六組四位二進制數和一個一位二進制數,所以我們隊總線進行了合 并,即將六組四位數合并成一個二十四位數,合并程序如下: 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。 -將總線的對應位進行連接 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、譯碼顯示: 該模塊實現的是對鎖存器鎖存的數據進行處理并顯示輸出

30、,以及小數點的不 同閘門的輸出顯示,以及電路板上七段顯示譯碼管的掃描信號輸出3其中對鎖存 數據的處理包括溢出有效時的數據消除, 和對高位無意義零的自動消隱3首先我 們編寫小數點控制的源文件代碼: 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 - 當為第一檔時,令第四位的數碼管的小數點點亮,其他的不亮 ELSIF SE1=0 AND SE10=1 AND SE100=0 AND SEL=010 THEN DP=0 3

32、 - 第二檔時,第三位的數碼管小數點點亮 ELSIF SE1=0 AND SE10=0 AND SE100=1 AND SEL=001 THEN DP=0 3 - 第三檔時,第二位的小數點點亮ELSE DP=1 - 不符合上述三檔時,小數點全部消隱 END IF END PROCESS end Behavioral 。 編寫完成后保存編譯生成圖形文件符號如圖: 再編寫用于數碼管掃描顯示的的位選信號生成文件,其代碼如下: 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 進行循環(huán)計數,從 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。 結果如下: 有仿真結果我們可以看出程序運行正常,邏輯上沒有任何問題。 至此所有的單元電路全部完成。 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、下載過程: 光標移至【Gen erate Programi ng File】后單擊鼠標右鍵,然后單擊【 Properties】 在打開的對話框的左側欄選中【 Configuration Op

43、tions】將右側的Unused IOB Pins這一 項改為Pull Up,單擊OK。在界面的左下角雙擊【 Gen erate Programi ng File】,軟件將 自動對整個系統(tǒng)進行編譯并生成可執(zhí)行文件 FRYALL.b。將彈出的對話框關掉,雙擊 【Gen erate Prom, ACE,or JTAG File】在彈出的對話框中點擊 Fin ish,在隨后出現的對話 框中選擇FRYALL.bit然后點擊打開,在隨后的對話框中點擊 Bypass。右鍵單擊左邊圖 標選擇Program,在隨后的對話框中單擊 OK,文件將自動下載到開發(fā)板上,成功后, 接入函數發(fā)生器進行測試。 WAIT FOR 100 NS CLK=1。 WAIT FOR 100 NS END PROCESS 四、測試結果及結論 經過了前三步,最后我們將所完成的工程下載到了板子上,連接好函數發(fā)生器,并 設定好了函數發(fā)生器的輸出信號電平( 5Vpp),就可以進行使用了。 最后結果顯示程序工作正常,讀數清晰穩(wěn)定,完全符合開始時的要求。 誤差分析: 我將函數發(fā)生器的頻率調節(jié)到 999,999HZ時,頻率計不顯示,即產生了計 數溢出,然后我進行了進一步的調節(jié),將函

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論