EDA簡易數(shù)字頻率計設計_第1頁
EDA簡易數(shù)字頻率計設計_第2頁
EDA簡易數(shù)字頻率計設計_第3頁
EDA簡易數(shù)字頻率計設計_第4頁
EDA簡易數(shù)字頻率計設計_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、唐 山 學 院 EDA課 程 設 計 題 目 簡易數(shù)字頻率計設計 系 (部) 信息工程系 班 級 12自動化 姓 名 陳帥 學 號 4120219124 指導教師 郭耀華 2014 年12月 21日 至 12 月 26 日 共 1 周2014年 12 月 26 日目 錄1 引言12 實驗2 2.1 實驗原理22.1.1基本原理32.1.2原理框圖3 2.2各模塊程序的設計32.2.1分頻定時模塊的設計32.2.2待測信號計數(shù)模塊的設計42.2.3顯示編譯模塊的設計82.2.4頂層模塊的設計12 .2.2.5 封裝圖152.2.6.引腳鎖定154 結論17參考文獻18附 錄1923課程設計說明書

2、1 引言數(shù)字頻率計是通訊設備、計算機、電子產(chǎn)品等生產(chǎn)領域不可缺少的測量儀器。由于硬件設計的器件增加,使設計更加復雜,可靠性變差,延遲增加,測量誤差變大。通過使用EDA技術對系統(tǒng)功能進行描述,運用VHDL語言,使系統(tǒng)簡化,提高整體的性能和可靠性。采用VHDL編程設計的數(shù)字頻率計,除了被測信號的整形部分,鍵輸入和數(shù)碼顯示以外,其他都在一片F(xiàn)PGA上實現(xiàn),從而讓整個系統(tǒng)非常精簡,讓其具有靈活的現(xiàn)場更改性,在不改變硬件電路的基礎上,進一步改進提高系統(tǒng)的性能,使數(shù)字頻率計具有高速,精確度高,可靠性強,抗干擾等優(yōu)點,為數(shù)字系統(tǒng)進一步的集成創(chuàng)造了條件。傳統(tǒng)的硬件設計采用自下至上(bottom_up)的設計方

3、法。這種設計方法在系統(tǒng)設計的后期進行仿真和調(diào)試,一旦考慮不周,系統(tǒng)設計存在較大缺陷,就有可能要重新設計系統(tǒng),使設計周期大大增加?,F(xiàn)代硬件設計利用電子設計自動化(EDA)技術,采用并行工程和自上至下(top_down)的設計方法,從系統(tǒng)設計入手,在頂層進行功能方框圖的劃分和結構設計,在方框圖一級進行仿真和糾錯,并用vhdl等硬件描述語言對高層次的系統(tǒng)行為進行描述,在系統(tǒng)一級進行驗證,最后再用邏輯綜合優(yōu)化工具生成具體的門級邏輯電路的網(wǎng)表,其對應的物理實現(xiàn)是專用集成電路(ASIC)。Vhdl即超高速集成電路硬件描述語言,主要用于描述數(shù)字系統(tǒng)的結構、行為、功能和接口。vhdl對設計的描述具有相對獨立性

4、,因此設計者可以不懂硬件結構,降低了硬件電路設計難度。以4位十進制數(shù)字頻率計的設計來說明vhdl語言在現(xiàn)代硬件設計中的應用。信號頻率計的測量有測頻法和周期測量法。本文采用測頻法,即直接計算每秒鐘內(nèi)信號脈沖的個數(shù)。2 實驗2.1 簡易數(shù)字頻率計設計原理 設計內(nèi)容:(1)設計四位十進制的簡易數(shù)字頻率計,對1HZ-10MHZ的方波信號進行測量;(2)測量的方波頻率值要在4位數(shù)碼管上進行顯示;(3)根據(jù)不同的待測方波信號,頻率計分為4個量程進行測量,四個量程分別為乘 1乘10,乘100,乘1000量程。 (4)此頻率計要設有一個整體復位控制;2.1.1基本原理數(shù)字頻率計的主要功能是測量周期信號的頻率。

5、頻率計的基本原理是用一個頻率穩(wěn)定度高的頻率源作為基準時鐘,對比測量其他信號的頻率。頻率是單位時間(1秒)內(nèi)方波信號發(fā)生周期變化的次數(shù)。在給定的1秒時間內(nèi)對方波信號波形計數(shù),并將所計數(shù)值顯示出來,就能讀取被測信號的頻率。數(shù)字頻率計首先必須獲得相對穩(wěn)定與準確的時間,然后通過計數(shù)器計算這一段時間間隔內(nèi)的方波脈沖個數(shù)并顯示出來。這就是數(shù)字頻率計的基本原理。脈沖信號的頻率就是在單位時間內(nèi)所產(chǎn)生的脈沖個數(shù),其表達式為fNT,其中f為被測信號的頻率,N為計數(shù)器所累計的脈沖個數(shù),T為產(chǎn)生N個脈沖所需的時間。本設計要求基準時鐘的頻率為1HZ,所以需要分頻設計產(chǎn)生脈寬為1秒的脈沖。再利用這個脈寬為1秒的脈沖計數(shù),

6、計數(shù)器所記錄的結果,就是被測信號的頻率。因為待測方波信號的頻率在1HZ-10MHZ,所以僅用四位7段數(shù)碼管無法完全正確顯示,所以需要選擇恰當?shù)牧砍虂盹@示待測風波信號的頻率,當量程選擇不當或者頻率超出10MHZ時,用一個LED燈點亮來警告測量有錯誤。2.1.2原理框圖本設計要求用基準時鐘信號(f=1HZ)的控制完成對1HZ-10MHZ的方波信號進行測量,使得所測量的方波頻率值在4位7段數(shù)碼管上進行顯示,并根據(jù)不同的待測方波信號,將頻率計分為4個量程進行測量,四個量程分別為乘1,乘10,乘100,乘1000量程,量程的選擇分為手動和自動兩種。當手動選擇量程時,自動量程顯示為零,手動量程部分依手動所

7、選量程而定;當手動選擇信號不工作時,頻率計自動選擇比較合適的量程進行顯示,手動量程部分顯示為零。而且此頻率計具有記憶功能,在測量過程中不刷新數(shù)據(jù),等數(shù)據(jù)測量過程結束后才顯示測量值,顯示測量的頻率值,并保存到下一次測量結束。數(shù)字頻率計還有一個整體的異步清零端,隨時可以進行清零操作。此外,數(shù)字頻率計還有一個不能正確顯示待測方波信號頻率時的警告燈。數(shù)字頻率計通過測頻控制發(fā)生器將基準信號轉換成所需要的控制信號clk1和en,待測信號計數(shù)器在en的控制下對待測信號進行測量并通過鎖存器在clk1的控制下按要求進行顯示,數(shù)字頻率計包括測頻控制發(fā)生器ctr、待測信號計數(shù)器counter、鎖存器regist三個

8、功能模塊,其原理框圖如圖所示。b測頻控制發(fā)生器待測信號計數(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是手動選擇量程輸入端,sd代表手動量程的顯示,rst是整體異步清零輸入端,clk是頻率為1HZ的基準時鐘,clkin是待測的方波信號,b是顯示是否超出了頻率計的測量范圍,zd是在手動選擇量程不工

9、作時頻率計進行的自動選擇合適的量程顯示,q1q4是四位數(shù)值從高位到低位的顯示結果。2.2 各模塊程序及仿真此設計運用元件例化的方法進行功能的實現(xiàn),所以各個模塊即使相互獨立又是彼此聯(lián)系的,三個模塊共同完成方波信號的測量。2.2.1測頻控制發(fā)生器ctr模塊的設計本設計要求為該模塊ctr提供的基準信號頻率為1 HZ,所以要做一個2分頻器控制產(chǎn)生一個脈寬為1秒的周期信號en和一個鎖存信號clk1。rst為高電平時進行整體異步清零。當en處于高電平的時候對輸入的待測方波信號進行計數(shù)測量,當en處于低電平的時候停止計數(shù),并保持所計數(shù)值。當clk1是上升沿的時候將所保持的數(shù)值輸出顯示。此測頻控制發(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;此測頻控制發(fā)生器的仿真結果如圖所示。此模塊如果仿真12M分頻器很困難,為了看到仿真效果,改成20倍分頻器,得到了此仿真結果。如果按程序下載,在硬件上能很清楚的看到由6MHZ的基準信號得到了脈寬為1秒的控制信號en和控制輸出信號clk1,rst實現(xiàn)了整體異步清零的功能。2.2.2待測信號計數(shù)器counter模塊的設計該模塊通過ctr模塊所產(chǎn)生的脈寬為1秒的en信號來對待測信號進行計數(shù)。用28位二進制數(shù)d

12、進行對待測信號的計數(shù),同時用sel表示自動量程根據(jù)所得數(shù)值d變化,sel為“0001”時代表乘1,sel為“0010”時代表乘10,sel為“0100”時代表乘100,sel為“1000”時代表乘1000。如果測量選擇量程太小或者待測方波信號頻率超出10MHZ,均無法正確顯示測量結果,則將b置高電平進行警告。此待測信號計數(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;此待測信

17、號計數(shù)器的仿真結果如圖3所示。 該模塊實現(xiàn)了在en為高電平時對輸入的待測信號clkin進行測量,當en為低電平時停止測量并將所計數(shù)值輸出,即在1秒內(nèi)待測信號的脈沖數(shù),也就是待測信號的頻率值。sel為根據(jù)所計數(shù)值自動合理選擇的量程,此時sel為“0001”,代表乘1HZ的量程,即所測方波信號的頻率在9999HZ之內(nèi)。2.2.3 鎖存器regist模塊的設計該模塊用于實現(xiàn)記憶顯示,在測量過程中不刷新新的數(shù)據(jù),直到測量過程結束后,鎖存顯示測量結果,并且保存到下一次測量結束。其功能是對四位BCD碼進行鎖存并且轉換成為對應的4組七段碼,用于驅動數(shù)碼管。其中rst為高電平時對鎖存器進行異步清零。rst為低

18、電平時正常工作。輸入信號a對鎖存器進行控制即手動選擇量程,當a為“0001”時,代表選擇乘1檔,自動量程顯示為零,手動量程顯示乘1HZ,只輸出計數(shù)所得值d的低四位并顯示在四個十進制數(shù)碼管上;當a為“0010”時,代表選擇乘10檔,自動量程顯示為零,手動量程顯示乘10HZ,只輸出計數(shù)所得值d的次低四位并顯示在四個十進制數(shù)碼管上;當a為“0100”時,代表選擇乘100檔,自動量程部分清零,手動量程顯示乘100HZ,只輸出計數(shù)所得值d的次高四位并顯示在四個十進制數(shù)碼管上;當a為“1000”時,代表選擇乘1000檔,自動量程部分清零,手動量程顯示乘1000HZ,只輸出計數(shù)所得值d的高四位并顯示在四個十

19、進制數(shù)碼管上。當a為“0000”時,代表不進行手動選擇,則手動量程顯示為零,自動量程部分根據(jù)所計數(shù)值進行合理選擇。sel為“0001”代表所測得的頻率值在09999HZ之內(nèi),則自動量程顯示乘1HZ,輸出所測數(shù)值的有效部分并顯示在四個十進制數(shù)碼管上;sel為“0010”代表所測得的頻率值在1000099999HZ之內(nèi),則自動量程顯示乘10HZ,輸出所測數(shù)值的有效部分的高四位并顯示在四個十進制數(shù)碼管上;sel為“0100”代表所測得的頻率值在100000999999HZ之內(nèi),則自動量程顯示乘100HZ,輸出所測數(shù)值的有效部分的高四位并顯示在四個十進制數(shù)碼管上;sel為“1000”代表所測得的頻率值

20、在10000009999999HZ之內(nèi),則自動量程顯示乘1000HZ,輸出所測數(shù)值的有效部分的高四位并顯示在四個十進制數(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;此鎖存與譯碼器的仿真結果如圖所示。該模塊的仿真為了將各個功能都清晰的顯示出來將sel進行了提前設置,并不是根據(jù)所測頻率值進行的自動選擇。Sel是輸入信號,前提我們已經(jīng)知道sel和a不能同時工作,所以為了使用a,將sel人為的提前設成“0000”了,不過如此提前將sel的值進行設定并不影響整體的功能。此仿真圖中a為“0001”代表乘1量程,只顯示所計數(shù)值d的低四位,即十六進制的“0” “3” “6” “8”“9”,此時手動量程sd顯示為“0001”,自動量程zd顯示“0000”代表不工作。2.2.4頂層模塊的設計該模塊用元件調(diào)用(元件例化語句)實現(xiàn)本設計要

26、求的整體功能。頂層文件的作用是將三個底層文件聯(lián)系到一起,共同實現(xiàn)該簡易數(shù)字頻率計數(shù)器的功能。此處定義了en0,d0,sel0,clko等四個信號進行底層文件之間以及底層與頂層之間的連接。此模塊的程序如下所示: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、塊的仿真結果如圖所示:由于頂層模塊調(diào)用ctr模塊,所以仿真時遇到類似的問題,我們改用12倍分頻器來仿真,則在6個基準信號周期時間內(nèi)對待測信號計數(shù),所以得到的數(shù)值除以6就是待測信號與基準信號的頻率倍數(shù)關系。所以整體功能仿真結果顯示,基準信號周期為200ns,即頻率為5MHZ,所以此待測信號的頻率為50MHZ。當a為“0001”時,代表選擇乘1HZ的量程,即顯示低四位,此時,手動量程顯示為“0001”表示乘1HZ量程,自動量程顯示為“0000”表示不工作。當a為“0010”時,代表選擇乘10HZ的量程,即顯示次低四位,此時,手動量程顯示為“0010”表示乘10HZ量程,自動量程顯示為“0000”表

31、示不工作。當rst為高電平時,輸出均為0,則進行了整體異步清零。2.2.6 封裝圖2.2.5 引腳鎖定硬件下載前,進行引腳鎖定,各引腳鎖定情況如圖6所示。引腳鎖定完成后,再次對設計文件進行編譯。重新編譯完成后,將配置文件下載到系統(tǒng)的目標芯片上,下載適配后,按動鍵1到鍵4進行手動選擇量程,查看各個部分是否能夠完成其功能??梢园存I8進行異步清零。最右邊四個數(shù)碼管從左向右是從高位到低位的顯示的頻率。最左邊數(shù)碼管顯示手動選擇的量程數(shù)值,左邊第二個是自動默認選擇的量程數(shù)值。硬件電路簡捷,體積小,所有電路都在一塊芯片里,因此性能穩(wěn)定。3 總結 通過這學期學的EDA技術,再加上這幾天邊查資料邊請教老師,終于

32、理清了頭緒,完成了此次課程設計。剛開始拿到本次程序設計題的時候確實有點兒興奮,心想著盡量要獨立快速而又高質量的完成這次課程設計。但是大概思路有了,覺得特別復雜,我害怕了,一陣慌亂后,終于定下心來了終于找到了一個比較類似的VHDL程序的簡易數(shù)字頻率計設計。這也使得我今天的程序頗有類同的感覺。看了幾遍課題設計要求和書上給的源程序后對如何寫這一方面的程序有了一定的了解,于是就嘗試著自己開始作起了這個系統(tǒng)的總體框圖。平時覺得老師講課時都特別簡單清楚,但是現(xiàn)在自己拿到一個設計要求時,亂陣腳了,但是經(jīng)過努力,先把封裝圖畫了出來,最終把原理框圖畫出來了。時間過得真快,馬上到周四了,要進實驗室做仿真和下載的時

33、候了,剛開始在實驗室有點著急,但是老師的新要求提出時,我冷靜了,修改程序,做調(diào)試,在最后終于成功的完成了符合設計要求的程序,下載后仍有點小問題需要修改。但是畢竟得到了老師的肯定,我的信心更足了。下午又重新整理了自己的思路,功夫不負有心人,終于把問題都解決了。通過這次EDA課程設計,我對課堂上所學到的理論知識的理解加深了許多, 自己動腦、動手設計的能力也得到了較大提高。在這次課程設計的過程中,我對 VHDL 語言有了更深的認識。通過查閱相關資料和動手設計我發(fā)現(xiàn)我以前對 VHDL 語言的認識太過膚淺,認為 VHDL 語言只能用于設計小型的電路系統(tǒng)。但有了更深刻的認識之后我發(fā)現(xiàn)學好 VHDL 語言可

34、以設計出大規(guī)模的、功能復雜的電路系統(tǒng)。我發(fā)現(xiàn)了動手實踐的重要性。動手實踐是理論知識得以靈活運用的必要前提,也是今后走上工作崗位之后能夠很好的完成設計工作的技術保證。只有遇到實際問題并根據(jù)自己對課堂上獲得的專業(yè)知識的理解來解決才能真正的提高自己的能力。這也提醒我在平時的學習生活中不能一味埋頭于課本知識,當今社會競爭越來越激烈,社會對人才的要求越來越全面,只有理論知識是遠遠不夠的,必須靠實踐作支撐。雖然課設完成了,但是我意識到,我對FPGA 技術僅僅只是停留在入門的階段,想要有更大的發(fā)展,更深入的研究,還需要更多的努力與實踐。參考文獻1 Voknei A.Pedroni.VHDL數(shù)字電路設計教程.

35、電子工業(yè)出版社,2008.52 潘松,黃繼業(yè).EDA技術實用教程(第二版).科學出版社,2005.23 焦素敏.EDA應用技術.清華大學出版社,2002.44曾繁泰,陳美金.VHDL程序設計M.北京:清華大學出版社,2001.5潘松,黃繼業(yè).EDA技術實用教程M.北京:科學出版社,2002.6宋萬杰,羅豐.CPLD 技術及其應用M.西安:西安電子科技大學出版社,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. 本站所有資源如無特殊說明,都需要本地電腦安裝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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論