




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、唐 山 學(xué) 院 EDA課 程 設(shè) 計(jì) 題 目 簡(jiǎn)易數(shù)字頻率計(jì)設(shè)計(jì) 系 (部) 信息工程系 班 級(jí) 12自動(dòng)化 姓 名 陳帥 學(xué) 號(hào) 4120219124 指導(dǎo)教師 郭耀華 2014 年12月 21日 至 12 月 26 日 共 1 周2014年 12 月 26 日目 錄1 引言12 實(shí)驗(yàn)2 2.1 實(shí)驗(yàn)原理22.1.1基本原理32.1.2原理框圖3 2.2各模塊程序的設(shè)計(jì)32.2.1分頻定時(shí)模塊的設(shè)計(jì)32.2.2待測(cè)信號(hào)計(jì)數(shù)模塊的設(shè)計(jì)42.2.3顯示編譯模塊的設(shè)計(jì)82.2.4頂層模塊的設(shè)計(jì)12 .2.2.5 封裝圖152.2.6.引腳鎖定154 結(jié)論17參考文獻(xiàn)18附 錄1923課程設(shè)計(jì)說(shuō)明書(shū)
2、1 引言數(shù)字頻率計(jì)是通訊設(shè)備、計(jì)算機(jī)、電子產(chǎn)品等生產(chǎn)領(lǐng)域不可缺少的測(cè)量?jī)x器。由于硬件設(shè)計(jì)的器件增加,使設(shè)計(jì)更加復(fù)雜,可靠性變差,延遲增加,測(cè)量誤差變大。通過(guò)使用EDA技術(shù)對(duì)系統(tǒng)功能進(jìn)行描述,運(yùn)用VHDL語(yǔ)言,使系統(tǒng)簡(jiǎn)化,提高整體的性能和可靠性。采用VHDL編程設(shè)計(jì)的數(shù)字頻率計(jì),除了被測(cè)信號(hào)的整形部分,鍵輸入和數(shù)碼顯示以外,其他都在一片F(xiàn)PGA上實(shí)現(xiàn),從而讓整個(gè)系統(tǒng)非常精簡(jiǎn),讓其具有靈活的現(xiàn)場(chǎng)更改性,在不改變硬件電路的基礎(chǔ)上,進(jìn)一步改進(jìn)提高系統(tǒng)的性能,使數(shù)字頻率計(jì)具有高速,精確度高,可靠性強(qiáng),抗干擾等優(yōu)點(diǎn),為數(shù)字系統(tǒng)進(jìn)一步的集成創(chuàng)造了條件。傳統(tǒng)的硬件設(shè)計(jì)采用自下至上(bottom_up)的設(shè)計(jì)方
3、法。這種設(shè)計(jì)方法在系統(tǒng)設(shè)計(jì)的后期進(jìn)行仿真和調(diào)試,一旦考慮不周,系統(tǒng)設(shè)計(jì)存在較大缺陷,就有可能要重新設(shè)計(jì)系統(tǒng),使設(shè)計(jì)周期大大增加?,F(xiàn)代硬件設(shè)計(jì)利用電子設(shè)計(jì)自動(dòng)化(EDA)技術(shù),采用并行工程和自上至下(top_down)的設(shè)計(jì)方法,從系統(tǒng)設(shè)計(jì)入手,在頂層進(jìn)行功能方框圖的劃分和結(jié)構(gòu)設(shè)計(jì),在方框圖一級(jí)進(jìn)行仿真和糾錯(cuò),并用vhdl等硬件描述語(yǔ)言對(duì)高層次的系統(tǒng)行為進(jìn)行描述,在系統(tǒng)一級(jí)進(jìn)行驗(yàn)證,最后再用邏輯綜合優(yōu)化工具生成具體的門(mén)級(jí)邏輯電路的網(wǎng)表,其對(duì)應(yīng)的物理實(shí)現(xiàn)是專(zhuān)用集成電路(ASIC)。Vhdl即超高速集成電路硬件描述語(yǔ)言,主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口。vhdl對(duì)設(shè)計(jì)的描述具有相對(duì)獨(dú)立性
4、,因此設(shè)計(jì)者可以不懂硬件結(jié)構(gòu),降低了硬件電路設(shè)計(jì)難度。以4位十進(jìn)制數(shù)字頻率計(jì)的設(shè)計(jì)來(lái)說(shuō)明vhdl語(yǔ)言在現(xiàn)代硬件設(shè)計(jì)中的應(yīng)用。信號(hào)頻率計(jì)的測(cè)量有測(cè)頻法和周期測(cè)量法。本文采用測(cè)頻法,即直接計(jì)算每秒鐘內(nèi)信號(hào)脈沖的個(gè)數(shù)。2 實(shí)驗(yàn)2.1 簡(jiǎn)易數(shù)字頻率計(jì)設(shè)計(jì)原理 設(shè)計(jì)內(nèi)容:(1)設(shè)計(jì)四位十進(jìn)制的簡(jiǎn)易數(shù)字頻率計(jì),對(duì)1HZ-10MHZ的方波信號(hào)進(jìn)行測(cè)量;(2)測(cè)量的方波頻率值要在4位數(shù)碼管上進(jìn)行顯示;(3)根據(jù)不同的待測(cè)方波信號(hào),頻率計(jì)分為4個(gè)量程進(jìn)行測(cè)量,四個(gè)量程分別為乘 1乘10,乘100,乘1000量程。 (4)此頻率計(jì)要設(shè)有一個(gè)整體復(fù)位控制;2.1.1基本原理數(shù)字頻率計(jì)的主要功能是測(cè)量周期信號(hào)的頻率。
5、頻率計(jì)的基本原理是用一個(gè)頻率穩(wěn)定度高的頻率源作為基準(zhǔn)時(shí)鐘,對(duì)比測(cè)量其他信號(hào)的頻率。頻率是單位時(shí)間(1秒)內(nèi)方波信號(hào)發(fā)生周期變化的次數(shù)。在給定的1秒時(shí)間內(nèi)對(duì)方波信號(hào)波形計(jì)數(shù),并將所計(jì)數(shù)值顯示出來(lái),就能讀取被測(cè)信號(hào)的頻率。數(shù)字頻率計(jì)首先必須獲得相對(duì)穩(wěn)定與準(zhǔn)確的時(shí)間,然后通過(guò)計(jì)數(shù)器計(jì)算這一段時(shí)間間隔內(nèi)的方波脈沖個(gè)數(shù)并顯示出來(lái)。這就是數(shù)字頻率計(jì)的基本原理。脈沖信號(hào)的頻率就是在單位時(shí)間內(nèi)所產(chǎn)生的脈沖個(gè)數(shù),其表達(dá)式為fNT,其中f為被測(cè)信號(hào)的頻率,N為計(jì)數(shù)器所累計(jì)的脈沖個(gè)數(shù),T為產(chǎn)生N個(gè)脈沖所需的時(shí)間。本設(shè)計(jì)要求基準(zhǔn)時(shí)鐘的頻率為1HZ,所以需要分頻設(shè)計(jì)產(chǎn)生脈寬為1秒的脈沖。再利用這個(gè)脈寬為1秒的脈沖計(jì)數(shù),
6、計(jì)數(shù)器所記錄的結(jié)果,就是被測(cè)信號(hào)的頻率。因?yàn)榇郎y(cè)方波信號(hào)的頻率在1HZ-10MHZ,所以僅用四位7段數(shù)碼管無(wú)法完全正確顯示,所以需要選擇恰當(dāng)?shù)牧砍虂?lái)顯示待測(cè)風(fēng)波信號(hào)的頻率,當(dāng)量程選擇不當(dāng)或者頻率超出10MHZ時(shí),用一個(gè)LED燈點(diǎn)亮來(lái)警告測(cè)量有錯(cuò)誤。2.1.2原理框圖本設(shè)計(jì)要求用基準(zhǔn)時(shí)鐘信號(hào)(f=1HZ)的控制完成對(duì)1HZ-10MHZ的方波信號(hào)進(jìn)行測(cè)量,使得所測(cè)量的方波頻率值在4位7段數(shù)碼管上進(jìn)行顯示,并根據(jù)不同的待測(cè)方波信號(hào),將頻率計(jì)分為4個(gè)量程進(jìn)行測(cè)量,四個(gè)量程分別為乘1,乘10,乘100,乘1000量程,量程的選擇分為手動(dòng)和自動(dòng)兩種。當(dāng)手動(dòng)選擇量程時(shí),自動(dòng)量程顯示為零,手動(dòng)量程部分依手動(dòng)所
7、選量程而定;當(dāng)手動(dòng)選擇信號(hào)不工作時(shí),頻率計(jì)自動(dòng)選擇比較合適的量程進(jìn)行顯示,手動(dòng)量程部分顯示為零。而且此頻率計(jì)具有記憶功能,在測(cè)量過(guò)程中不刷新數(shù)據(jù),等數(shù)據(jù)測(cè)量過(guò)程結(jié)束后才顯示測(cè)量值,顯示測(cè)量的頻率值,并保存到下一次測(cè)量結(jié)束。數(shù)字頻率計(jì)還有一個(gè)整體的異步清零端,隨時(shí)可以進(jìn)行清零操作。此外,數(shù)字頻率計(jì)還有一個(gè)不能正確顯示待測(cè)方波信號(hào)頻率時(shí)的警告燈。數(shù)字頻率計(jì)通過(guò)測(cè)頻控制發(fā)生器將基準(zhǔn)信號(hào)轉(zhuǎn)換成所需要的控制信號(hào)clk1和en,待測(cè)信號(hào)計(jì)數(shù)器在en的控制下對(duì)待測(cè)信號(hào)進(jìn)行測(cè)量并通過(guò)鎖存器在clk1的控制下按要求進(jìn)行顯示,數(shù)字頻率計(jì)包括測(cè)頻控制發(fā)生器ctr、待測(cè)信號(hào)計(jì)數(shù)器counter、鎖存器regist三個(gè)
8、功能模塊,其原理框圖如圖所示。b測(cè)頻控制發(fā)生器待測(cè)信號(hào)計(jì)數(shù)器鎖存器d(27:0)sel(3:0)a(3:0)clkrstrstclkclk1enclkinrstclkinenba(3:0)rstclk1d(27:0)sel(3:0)zd(3:0)zd(3:0)sd(3:0)sd(3:0)q1(3:0)q1(3:0)q2(3:0)q2(3:0)q3(3:0)q3(3:0)q4(3:0)q4(3:0)其中a是手動(dòng)選擇量程輸入端,sd代表手動(dòng)量程的顯示,rst是整體異步清零輸入端,clk是頻率為1HZ的基準(zhǔn)時(shí)鐘,clkin是待測(cè)的方波信號(hào),b是顯示是否超出了頻率計(jì)的測(cè)量范圍,zd是在手動(dòng)選擇量程不工
9、作時(shí)頻率計(jì)進(jìn)行的自動(dòng)選擇合適的量程顯示,q1q4是四位數(shù)值從高位到低位的顯示結(jié)果。2.2 各模塊程序及仿真此設(shè)計(jì)運(yùn)用元件例化的方法進(jìn)行功能的實(shí)現(xiàn),所以各個(gè)模塊即使相互獨(dú)立又是彼此聯(lián)系的,三個(gè)模塊共同完成方波信號(hào)的測(cè)量。2.2.1測(cè)頻控制發(fā)生器ctr模塊的設(shè)計(jì)本設(shè)計(jì)要求為該模塊ctr提供的基準(zhǔn)信號(hào)頻率為1 HZ,所以要做一個(gè)2分頻器控制產(chǎn)生一個(gè)脈寬為1秒的周期信號(hào)en和一個(gè)鎖存信號(hào)clk1。rst為高電平時(shí)進(jìn)行整體異步清零。當(dāng)en處于高電平的時(shí)候?qū)斎氲拇郎y(cè)方波信號(hào)進(jìn)行計(jì)數(shù)測(cè)量,當(dāng)en處于低電平的時(shí)候停止計(jì)數(shù),并保持所計(jì)數(shù)值。當(dāng)clk1是上升沿的時(shí)候?qū)⑺3值臄?shù)值輸出顯示。此測(cè)頻控制發(fā)生器的程序
10、如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity ctr isport(clk,rst: in std_logic; clk1,en: buffer std_logic);end ctr;architecture bhv of ctr isbeginprocess(clk,rst)variable c:integer range 0 to 2beginif rst=1 thenen=0;elsif clkevent and
11、 clk=1 thenc:=c+1;if c=1 thenc:=0;en=not en;end if;end if;clk1=not(clk or en);end process;end bhv;此測(cè)頻控制發(fā)生器的仿真結(jié)果如圖所示。此模塊如果仿真12M分頻器很困難,為了看到仿真效果,改成20倍分頻器,得到了此仿真結(jié)果。如果按程序下載,在硬件上能很清楚的看到由6MHZ的基準(zhǔn)信號(hào)得到了脈寬為1秒的控制信號(hào)en和控制輸出信號(hào)clk1,rst實(shí)現(xiàn)了整體異步清零的功能。2.2.2待測(cè)信號(hào)計(jì)數(shù)器counter模塊的設(shè)計(jì)該模塊通過(guò)ctr模塊所產(chǎn)生的脈寬為1秒的en信號(hào)來(lái)對(duì)待測(cè)信號(hào)進(jìn)行計(jì)數(shù)。用28位二進(jìn)制數(shù)d
12、進(jìn)行對(duì)待測(cè)信號(hào)的計(jì)數(shù),同時(shí)用sel表示自動(dòng)量程根據(jù)所得數(shù)值d變化,sel為“0001”時(shí)代表乘1,sel為“0010”時(shí)代表乘10,sel為“0100”時(shí)代表乘100,sel為“1000”時(shí)代表乘1000。如果測(cè)量選擇量程太小或者待測(cè)方波信號(hào)頻率超出10MHZ,均無(wú)法正確顯示測(cè)量結(jié)果,則將b置高電平進(jìn)行警告。此待測(cè)信號(hào)計(jì)數(shù)器的程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity counter isport(en,clki
13、n,rst:in std_logic;a:in std_logic_vector(3 downto 0);sel:out std_logic_vector(3 downto 0);d :out std_logic_vector(27 downto 0);b:out std_logic);end counter;architecture bhv of counter issignal dd: std_logic_vector(27 downto 0);beginprocess(rst,en,clkin)beginif rst=1 thendd0);b=0;elsif en=1 then if c
14、lkinevent and clkin=1 thenif dd(27 downto 0)=1001100110011001100110011001 thendd0); b=1;elsif dd(23 downto 0)=100110011001100110011001 then dd=dd+011001100110011001100111;elsif dd(19 downto 0)=10011001100110011001 thendd=dd+01100110011001100111;elsif dd(15 downto 0)=1001100110011001 thendd=dd+011001
15、1001100111;elsif dd(11 downto 0)=100110011001 thendd=dd+011001100111;elsif dd(7 downto 0)=10011001 then dd=dd+01100111;elsif dd(3 downto 0)=1001 thendd=dd+0111;elsedd0000 thensel0000 thensel0000 thensel=0010;elsesel=0001;end if;elsedd0);end if;if dd(27 downto 24)0000 thenif a=1000 thenb=0;elsif a=00
16、00 thenb=0;elseb0000 thenif a=1000 thenb=0;elsif a=0100 thenb=0;elsif a=0000 thenb=0;elseb0000 thenif a=1000 thenb=0;elsif a=0100 thenb=0;elsif a=0010 thenb=0;elsif a=0000 thenb=0;elseb=1;end if; elseb=0; end if;end process;process(en)beginif enevent and en=0 thend=dd;end if;end process;end bhv;此待測(cè)信
17、號(hào)計(jì)數(shù)器的仿真結(jié)果如圖3所示。 該模塊實(shí)現(xiàn)了在en為高電平時(shí)對(duì)輸入的待測(cè)信號(hào)clkin進(jìn)行測(cè)量,當(dāng)en為低電平時(shí)停止測(cè)量并將所計(jì)數(shù)值輸出,即在1秒內(nèi)待測(cè)信號(hào)的脈沖數(shù),也就是待測(cè)信號(hào)的頻率值。sel為根據(jù)所計(jì)數(shù)值自動(dòng)合理選擇的量程,此時(shí)sel為“0001”,代表乘1HZ的量程,即所測(cè)方波信號(hào)的頻率在9999HZ之內(nèi)。2.2.3 鎖存器regist模塊的設(shè)計(jì)該模塊用于實(shí)現(xiàn)記憶顯示,在測(cè)量過(guò)程中不刷新新的數(shù)據(jù),直到測(cè)量過(guò)程結(jié)束后,鎖存顯示測(cè)量結(jié)果,并且保存到下一次測(cè)量結(jié)束。其功能是對(duì)四位BCD碼進(jìn)行鎖存并且轉(zhuǎn)換成為對(duì)應(yīng)的4組七段碼,用于驅(qū)動(dòng)數(shù)碼管。其中rst為高電平時(shí)對(duì)鎖存器進(jìn)行異步清零。rst為低
18、電平時(shí)正常工作。輸入信號(hào)a對(duì)鎖存器進(jìn)行控制即手動(dòng)選擇量程,當(dāng)a為“0001”時(shí),代表選擇乘1檔,自動(dòng)量程顯示為零,手動(dòng)量程顯示乘1HZ,只輸出計(jì)數(shù)所得值d的低四位并顯示在四個(gè)十進(jìn)制數(shù)碼管上;當(dāng)a為“0010”時(shí),代表選擇乘10檔,自動(dòng)量程顯示為零,手動(dòng)量程顯示乘10HZ,只輸出計(jì)數(shù)所得值d的次低四位并顯示在四個(gè)十進(jìn)制數(shù)碼管上;當(dāng)a為“0100”時(shí),代表選擇乘100檔,自動(dòng)量程部分清零,手動(dòng)量程顯示乘100HZ,只輸出計(jì)數(shù)所得值d的次高四位并顯示在四個(gè)十進(jìn)制數(shù)碼管上;當(dāng)a為“1000”時(shí),代表選擇乘1000檔,自動(dòng)量程部分清零,手動(dòng)量程顯示乘1000HZ,只輸出計(jì)數(shù)所得值d的高四位并顯示在四個(gè)十
19、進(jìn)制數(shù)碼管上。當(dāng)a為“0000”時(shí),代表不進(jìn)行手動(dòng)選擇,則手動(dòng)量程顯示為零,自動(dòng)量程部分根據(jù)所計(jì)數(shù)值進(jìn)行合理選擇。sel為“0001”代表所測(cè)得的頻率值在09999HZ之內(nèi),則自動(dòng)量程顯示乘1HZ,輸出所測(cè)數(shù)值的有效部分并顯示在四個(gè)十進(jìn)制數(shù)碼管上;sel為“0010”代表所測(cè)得的頻率值在1000099999HZ之內(nèi),則自動(dòng)量程顯示乘10HZ,輸出所測(cè)數(shù)值的有效部分的高四位并顯示在四個(gè)十進(jìn)制數(shù)碼管上;sel為“0100”代表所測(cè)得的頻率值在100000999999HZ之內(nèi),則自動(dòng)量程顯示乘100HZ,輸出所測(cè)數(shù)值的有效部分的高四位并顯示在四個(gè)十進(jìn)制數(shù)碼管上;sel為“1000”代表所測(cè)得的頻率值
20、在10000009999999HZ之內(nèi),則自動(dòng)量程顯示乘1000HZ,輸出所測(cè)數(shù)值的有效部分的高四位并顯示在四個(gè)十進(jìn)制數(shù)碼管上。此鎖存與譯碼器的程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity regist isport(clk1,rst:in std_logic; d:in std_logic_vector(27 downto 0); sel,a:in std_logic_vector(3 downto 0); zd
21、,sd:out std_logic_vector(3 downto 0); q1,q2,q3,q4:out std_logic_vector(3 downto 0);end regist;architecture bhv of regist isbeginprocess(rst,clk1) begin if rst=1 then q10); q2=0000; q3=0000; q4=0000; zd=0000; elsif(clk1event and clk1=1) then if(a=0000) then if sel=1000 then q1=d(27 downto 24); q2=d(2
22、3 downto 20); q3=d(19 downto 16); q4=d(15 downto 12); zd=1000; sd=0000; elsif sel=0100 then q1=d(23 downto 20); q2=d(19 downto 16); q3=d(15 downto 12); q4=d(11 downto 8); zd=0100; sd=0000; elsif sel=0010 then q1=d(19 downto 16); q2=d(15 downto 12); q3=d(11 downto 8); q4=d(7 downto 4); zd=0010; sd=00
23、00; elsif sel=0001 then q1=d(15 downto 12); q2=d(11 downto 8); q3=d(7 downto 4); q4=d(3 downto 0); zd=0001; sd=0000; end if; elsif(a=0001) then q1=d(15 downto 12); q2=d(11 downto 8); q3=d(7 downto 4); q4=d(3 downto 0); zd=0000; sd=0001; elsif(a=0010) then q1=d(19 downto 16); q2=d(15 downto 12); q3=d
24、(11 downto 8); q4=d(7 downto 4); zd=0000; sd=0010; elsif(a=0100) then q1=d(23 downto 20); q2=d(19 downto 16); q3=d(15 downto 12); q4=d(11 downto 8); zd=0000; sd=0100; elsif(a=1000) then q1=d(27 downto 24); q2=d(23 downto 20); q3=d(19 downto 16); q4=d(15 downto 12); zd=0000; sd=1000; end if; end if;
25、end process;end bhv;此鎖存與譯碼器的仿真結(jié)果如圖所示。該模塊的仿真為了將各個(gè)功能都清晰的顯示出來(lái)將sel進(jìn)行了提前設(shè)置,并不是根據(jù)所測(cè)頻率值進(jìn)行的自動(dòng)選擇。Sel是輸入信號(hào),前提我們已經(jīng)知道sel和a不能同時(shí)工作,所以為了使用a,將sel人為的提前設(shè)成“0000”了,不過(guò)如此提前將sel的值進(jìn)行設(shè)定并不影響整體的功能。此仿真圖中a為“0001”代表乘1量程,只顯示所計(jì)數(shù)值d的低四位,即十六進(jìn)制的“0” “3” “6” “8”“9”,此時(shí)手動(dòng)量程sd顯示為“0001”,自動(dòng)量程zd顯示“0000”代表不工作。2.2.4頂層模塊的設(shè)計(jì)該模塊用元件調(diào)用(元件例化語(yǔ)句)實(shí)現(xiàn)本設(shè)計(jì)要
26、求的整體功能。頂層文件的作用是將三個(gè)底層文件聯(lián)系到一起,共同實(shí)現(xiàn)該簡(jiǎn)易數(shù)字頻率計(jì)數(shù)器的功能。此處定義了en0,d0,sel0,clko等四個(gè)信號(hào)進(jìn)行底層文件之間以及底層與頂層之間的連接。此模塊的程序如下所示:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity pin isport(rst,clk,clkin:in std_logic; q1,q2,q3,q4:out std_logic_vector(3 downto 0); sd
27、,zd:out std_logic_vector(3 downto 0); a:in std_logic_vector(3 downto 0); b:out std_logic);end pin;architecture bhv of pin iscomponent ctrport(clk,rst : in std_logic; clk1,en : buffer std_logic);end component;component counterport(en,clkin,rst :in std_logic;a:in std_logic_vector(3 downto 0); sel :out
28、 std_logic_vector(3 downto 0); d :out std_logic_vector(27 downto 0); b :out std_logic);end component;component registport(clk1,rst:in std_logic; d:in std_logic_vector(27 downto 0); sel,a:in std_logic_vector(3 downto 0); zd,sd:out std_logic_vector(3 downto 0); q1,q2,q3,q4:out std_logic_vector(3 downt
29、o 0);end component;signal clk0: std_logic;signal en0: std_logic;signal d0: std_logic_vector(27 downto 0);signal sel0: std_logic_vector(3 downto 0);beginU1:ctr port map(clk,rst,clk0,en0);U2:counter port map(en0,clkin,rst,a,sel0,d0,b);U3:regist port map(clk0,rst,d0,sel0,a,zd,sd,q1,q2,q3,q4);end bhv;此模
30、塊的仿真結(jié)果如圖所示:由于頂層模塊調(diào)用ctr模塊,所以仿真時(shí)遇到類(lèi)似的問(wèn)題,我們改用12倍分頻器來(lái)仿真,則在6個(gè)基準(zhǔn)信號(hào)周期時(shí)間內(nèi)對(duì)待測(cè)信號(hào)計(jì)數(shù),所以得到的數(shù)值除以6就是待測(cè)信號(hào)與基準(zhǔn)信號(hào)的頻率倍數(shù)關(guān)系。所以整體功能仿真結(jié)果顯示,基準(zhǔn)信號(hào)周期為200ns,即頻率為5MHZ,所以此待測(cè)信號(hào)的頻率為50MHZ。當(dāng)a為“0001”時(shí),代表選擇乘1HZ的量程,即顯示低四位,此時(shí),手動(dòng)量程顯示為“0001”表示乘1HZ量程,自動(dòng)量程顯示為“0000”表示不工作。當(dāng)a為“0010”時(shí),代表選擇乘10HZ的量程,即顯示次低四位,此時(shí),手動(dòng)量程顯示為“0010”表示乘10HZ量程,自動(dòng)量程顯示為“0000”表
31、示不工作。當(dāng)rst為高電平時(shí),輸出均為0,則進(jìn)行了整體異步清零。2.2.6 封裝圖2.2.5 引腳鎖定硬件下載前,進(jìn)行引腳鎖定,各引腳鎖定情況如圖6所示。引腳鎖定完成后,再次對(duì)設(shè)計(jì)文件進(jìn)行編譯。重新編譯完成后,將配置文件下載到系統(tǒng)的目標(biāo)芯片上,下載適配后,按動(dòng)鍵1到鍵4進(jìn)行手動(dòng)選擇量程,查看各個(gè)部分是否能夠完成其功能??梢园存I8進(jìn)行異步清零。最右邊四個(gè)數(shù)碼管從左向右是從高位到低位的顯示的頻率。最左邊數(shù)碼管顯示手動(dòng)選擇的量程數(shù)值,左邊第二個(gè)是自動(dòng)默認(rèn)選擇的量程數(shù)值。硬件電路簡(jiǎn)捷,體積小,所有電路都在一塊芯片里,因此性能穩(wěn)定。3 總結(jié) 通過(guò)這學(xué)期學(xué)的EDA技術(shù),再加上這幾天邊查資料邊請(qǐng)教老師,終于
32、理清了頭緒,完成了此次課程設(shè)計(jì)。剛開(kāi)始拿到本次程序設(shè)計(jì)題的時(shí)候確實(shí)有點(diǎn)兒興奮,心想著盡量要獨(dú)立快速而又高質(zhì)量的完成這次課程設(shè)計(jì)。但是大概思路有了,覺(jué)得特別復(fù)雜,我害怕了,一陣慌亂后,終于定下心來(lái)了終于找到了一個(gè)比較類(lèi)似的VHDL程序的簡(jiǎn)易數(shù)字頻率計(jì)設(shè)計(jì)。這也使得我今天的程序頗有類(lèi)同的感覺(jué)。看了幾遍課題設(shè)計(jì)要求和書(shū)上給的源程序后對(duì)如何寫(xiě)這一方面的程序有了一定的了解,于是就嘗試著自己開(kāi)始作起了這個(gè)系統(tǒng)的總體框圖。平時(shí)覺(jué)得老師講課時(shí)都特別簡(jiǎn)單清楚,但是現(xiàn)在自己拿到一個(gè)設(shè)計(jì)要求時(shí),亂陣腳了,但是經(jīng)過(guò)努力,先把封裝圖畫(huà)了出來(lái),最終把原理框圖畫(huà)出來(lái)了。時(shí)間過(guò)得真快,馬上到周四了,要進(jìn)實(shí)驗(yàn)室做仿真和下載的時(shí)
33、候了,剛開(kāi)始在實(shí)驗(yàn)室有點(diǎn)著急,但是老師的新要求提出時(shí),我冷靜了,修改程序,做調(diào)試,在最后終于成功的完成了符合設(shè)計(jì)要求的程序,下載后仍有點(diǎn)小問(wèn)題需要修改。但是畢竟得到了老師的肯定,我的信心更足了。下午又重新整理了自己的思路,功夫不負(fù)有心人,終于把問(wèn)題都解決了。通過(guò)這次EDA課程設(shè)計(jì),我對(duì)課堂上所學(xué)到的理論知識(shí)的理解加深了許多, 自己動(dòng)腦、動(dòng)手設(shè)計(jì)的能力也得到了較大提高。在這次課程設(shè)計(jì)的過(guò)程中,我對(duì) VHDL 語(yǔ)言有了更深的認(rèn)識(shí)。通過(guò)查閱相關(guān)資料和動(dòng)手設(shè)計(jì)我發(fā)現(xiàn)我以前對(duì) VHDL 語(yǔ)言的認(rèn)識(shí)太過(guò)膚淺,認(rèn)為 VHDL 語(yǔ)言只能用于設(shè)計(jì)小型的電路系統(tǒng)。但有了更深刻的認(rèn)識(shí)之后我發(fā)現(xiàn)學(xué)好 VHDL 語(yǔ)言可
34、以設(shè)計(jì)出大規(guī)模的、功能復(fù)雜的電路系統(tǒng)。我發(fā)現(xiàn)了動(dòng)手實(shí)踐的重要性。動(dòng)手實(shí)踐是理論知識(shí)得以靈活運(yùn)用的必要前提,也是今后走上工作崗位之后能夠很好的完成設(shè)計(jì)工作的技術(shù)保證。只有遇到實(shí)際問(wèn)題并根據(jù)自己對(duì)課堂上獲得的專(zhuān)業(yè)知識(shí)的理解來(lái)解決才能真正的提高自己的能力。這也提醒我在平時(shí)的學(xué)習(xí)生活中不能一味埋頭于課本知識(shí),當(dāng)今社會(huì)競(jìng)爭(zhēng)越來(lái)越激烈,社會(huì)對(duì)人才的要求越來(lái)越全面,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,必須靠實(shí)踐作支撐。雖然課設(shè)完成了,但是我意識(shí)到,我對(duì)FPGA 技術(shù)僅僅只是停留在入門(mén)的階段,想要有更大的發(fā)展,更深入的研究,還需要更多的努力與實(shí)踐。參考文獻(xiàn)1 Voknei A.Pedroni.VHDL數(shù)字電路設(shè)計(jì)教程.
35、電子工業(yè)出版社,2008.52 潘松,黃繼業(yè).EDA技術(shù)實(shí)用教程(第二版).科學(xué)出版社,2005.23 焦素敏.EDA應(yīng)用技術(shù).清華大學(xué)出版社,2002.44曾繁泰,陳美金.VHDL程序設(shè)計(jì)M.北京:清華大學(xué)出版社,2001.5潘松,黃繼業(yè).EDA技術(shù)實(shí)用教程M.北京:科學(xué)出版社,2002.6宋萬(wàn)杰,羅豐.CPLD 技術(shù)及其應(yīng)用M.西安:西安電子科技大學(xué)出版社,1999附 錄library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity cs
36、3 isport(rst,clk,clkin:in std_logic; a:in std_logic_vector(3 downto 0); q1,q2,q3,q4:out std_logic_vector(3 downto 0); sd:out std_logic_vector(3 downto 0); zd:out std_logic_vector(3 downto 0); b:out std_logic);end cs3;architecture bhv of cs3 issignal clk1:std_logic;signal en:std_logic;signal bb:std_l
37、ogic;signal dd:std_logic_vector(27 downto 0);signal d:std_logic_vector(27 downto 0);signal sel:std_logic_vector(3 downto 0);beginprocess(clk,rst)variable c:integer range 0 to 2;beginif rst=1 then clk1=0;en=0;elsif clkevent and clk=1 thenc:=c+1;if c=1 thenc:=0; en=not en;end if;end if; clk1= not ( cl
38、k or en); end process; process(rst,en,clkin) begin if rst=1 then dd0); bb=0; elsif en=1 then if clkinevent and clkin=1 then if dd(27 downto 0)=1001100110011001100110011001 then dd0); bb=1; elsif dd(23 downto 0)=100110011001100110011001 then dd=dd+011001100110011001100111; elsif dd(19 downto 0)=10011
39、001100110011001 then dd=dd+01100110011001100111; elsif dd(15 downto 0)=1001100110011001 then dd=dd+0110011001100111; elsif dd(11 downto 0)=100110011001 then dd=dd+011001100111; elsif dd(7 downto 0)=10011001 then dd=dd+01100111; elsif dd(3 downto 0)=1001 then dd=dd+0111; else dd0000 then sel0000 then sel0000 then sel=0010; else sel=0001; end if; else dd0);bb0000 thenif a=1000 thenbb=0;elsif a=0000 thenbb=0;elsebb0000 thenif a=1000 thenbb=0;elsif a=0100 thenbb=0;elsif
溫馨提示
- 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)科學(xué)教科版三年級(jí)下冊(cè)6.水和水蒸氣教案
- 小學(xué)數(shù)學(xué)蘇教版一年級(jí)上冊(cè)一年級(jí)上冊(cè)《期末復(fù)習(xí)》教案
- 其他地區(qū)2024年新疆兵團(tuán)第五師雙河市事業(yè)單位招聘79人筆試歷年參考題庫(kù)附帶答案詳解
- 懸臂塊施工方案
- 網(wǎng)箱養(yǎng)殖施工方案
- 佛山2024年廣東佛山市順德區(qū)委黨校招聘事業(yè)單位工作人員筆試歷年參考題庫(kù)附帶答案詳解
- 五年級(jí)下冊(cè)心理健康教案-23《合作創(chuàng)奇跡》 北師大版
- 窯坑回填施工方案
- 城郊醫(yī)院建設(shè)項(xiàng)目可行性研究(參考模板)
- 麗水2024年浙江麗水青田縣招聘幼兒園教師30人筆試歷年參考題庫(kù)附帶答案詳解
- 高考與四級(jí)英語(yǔ)的差距詞匯
- 水土保持工程質(zhì)量評(píng)定規(guī)程sl3362006
- 苯乙酸安全技術(shù)說(shuō)明書(shū)(msds)
- 2022-2023學(xué)年統(tǒng)編版選擇性必修三 邏輯與思維 10-2 體會(huì)認(rèn)識(shí)發(fā)展的歷程 教案-
- 萬(wàn)邦特種材料股份有限公司年產(chǎn)18000噸特種紙遷建項(xiàng)目環(huán)境影響報(bào)告書(shū)
- 【建模教程】-建模-數(shù)學(xué)建模夏令營(yíng)
- 高中英語(yǔ)高頻詞匯拓展延伸
- 誠(chéng)信友善教學(xué)反思(十篇)
- 2023版思想道德與法治專(zhuān)題6遵守道德規(guī)范錘煉道德品格PPT
- 部編本六年級(jí)下冊(cè)語(yǔ)文課件古詩(shī)詞誦讀
- 銷(xiāo)售立項(xiàng)申請(qǐng)表
評(píng)論
0/150
提交評(píng)論