亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種新型的基于FPGA數字秒表的設計方法

        2009-06-20 03:11:28車保川
        科技經濟市場 2009年4期

        車保川

        摘要:本文介紹了一種新型的基于FPGA的數字秒表的設計與實現方法,給出了頂層電路圖,和各模塊的設計,增加了消除抖動的控制方法,消除了開關按鍵的機械抖動。通過編輯、編譯和器件編程,用MODELSIM仿真軟件進行了仿真,并將編程器文件下載到ISP實驗板TB-BD-TS101開發(fā)板中,經實際電路測試驗證,達到了預期的設計要求,顯示結果準確無誤。

        關鍵詞:FPGA;數字秒表;模塊;開關按鍵

        中圖分類號:TN702 文獻標識碼:A

        1前言

        當今社會是數字化的社會,是數字集成電路廣泛應用的社會。數字集成電路本身在不斷更新換代,隨著電子技術的發(fā)展,設計人員更希望設計周期盡可能短,最好能在實驗室、調試現場完成對邏輯塊和連線的配置,并且立即投入實際應用之中,因而出現了現場可編程邏輯門陣列FPGA。

        本文介紹了如何利用FPGA設計與實現數字秒表的全過程,利用了超高速硬件描述語言VHDL的EDA設計工具,采用的是Xinlinx 的低成本系列中的Spartan-3,型號為XC3S400-4PQ208C的芯片來實現系統功能,采用分模塊化思想編程,開關按鍵集計數、停止、清零與一體,節(jié)省資源,思路簡單,容易實現。

        2秒表的功能要求

        設計一個秒表stopwatch要求具有以下功能:有一個復位reset端子SW10,reset低電平有效;一個開關起、停、清零start/stop/clear端子SW7,系統啟動后,第一次按SW7,秒表開始計數,第二次按SW7,秒表停止計數,第三次按SW7秒表清零。其頂層模塊如圖1 所示。

        板子的主頻時鐘我們用32MHZ,秒表動態(tài)的顯示在TS101板子的D5,D6,D7,D8 LED上,D5,D6表示分鐘位,D7,D8表示秒鐘,D6的小數點亮,表示分鐘和秒鐘的分隔。

        3系統的模塊設計

        圖2所示是數字秒表設計的頂層模塊圖,其中CLKIN是32MHz系統時鐘,RST是復位信號,可以對整個系統清零。

        該模塊圖主要分為四個部分,第一部分是DCM(Digital Clock Manager)調用模塊。通過DCM的應用,可以去除時鐘歪斜、頻率綜合與相位調整。

        第二部分是消抖模塊,因為開關按鍵為機械彈性開關,由于機械觸點的彈性作用,一個按鍵開關在按下的瞬間會有一連串的抖動,抖動的長短由機械特性所決定,一般為5~15ms,抖動引起電平信號波動,從而引起誤處理。為了確保一次按鍵動作只確認一次按鍵,必須消除抖動。

        第三部分是計數模塊,計數模塊內部包括一個狀態(tài)控制進程,控制開關的三個不同狀態(tài);一個分頻進程,主要是把系統32MHz的時鐘分頻為1Hz:兩個6進制計數器,和兩個十進制計數器,這樣可以比直接使用60進制計數器節(jié)省資源,直接利用秒的個位(十制)的進位信號作為秒的十位的進位信號,秒的十位(6進制)的進位信號作為分得個位的進位信號,依此類推。部分計數程序如下:

        ……

        ---------CNT4---------秒的個位計數(10進制計數器)

        process(CLK0_OUT,LOCKED_OUT)--系統復位

        begin

        if(LOCKED_OUT = '0') then

        r_ct4 <="0000";

        elsif(CLK0_OUT = '1' and CLK0_OUT'event) then

        if(r_outp = "00") then --清零

        r_ct4 <= "0000";

        elsif(r_outp = "10")then --停止計數

        r_ct4 <= r_ct4;

        elsif(r_outp = "01")then --開始計數

        if(r_ci3 = '1') then

        if(r_ct4 = "1001") then

        r_ct4 <= "0000";

        else

        r_ct4 <= r_ct4 + '1';

        end if;

        end if;

        end if;

        end if;

        end process;

        r_ci4<= '1' when ((r_ct4 = "1001") and

        (r_ct3 = "11110") and

        (r_ct2 = "1111100110") and

        (r_ct1 = "1111100110")) else

        '0';--r_ci4<='1'為 進位信號

        CNT1 <= r_ct4;

        ----------------------------------------

        ……

        第四部分是掃描顯示部分,計數器輸出的四個四位信號,分別是秒針個位、十位、分針、個位、十位。通過譯碼顯示程序,對應四個LED數碼管。另外還有一片選信號,選出不同的要顯示的數據,為了實現動態(tài)顯示,還要控制掃描頻率 ,可以通過一分頻器實現,經實驗得動態(tài)顯示頻率控制在200Hz左右可等到比較好得效果。部分譯碼程序如下:

        ……

        process(s_data) begin

        case s_data is

        when "0000" =>s_ledout(7 downto 1) <="0111111";

        when "0001" =>s_ledout(7 downto 1) <="0000110";

        when "0010" =>s_ledout(7 downto 1) <="1011011";

        when "0011" =>s_ledout(7 downto 1) <="1001111";

        when "0100" =>s_ledout(7 downto 1) <="1100110";

        when "0101" =>s_ledout(7 downto 1) <="1101101";

        when "0110" =>s_ledout(7 downto 1) <="1111101";

        when "0111" =>s_ledout(7 downto 1) <="0100111";

        when "1000" =>s_ledout(7 downto 1) <="1111111";

        when "1001" =>s_ledout(7 downto 1) <="1101111";

        when others=> s_ledout(7 downto 1) <="XXXXXXX";

        end case;

        end process;

        process(s_ledsel) begin

        if (s_ledsel="1011")then --控制小數點點亮

        s_ledout(0) <= '1' ;

        else

        s_ledout(0) <= '0' ;

        end if;

        end process;

        ……

        4 設計仿真與下載驗證

        上面數字秒表得模塊圖,采用VHDL語言編寫程序,把各程序經過編譯后,生成模塊,通過建立頂層文件,調用這些模塊,完成電路得連接。通過ISE綜合可得到完整得電路模塊圖。如圖3所示:

        再通過Modelsim 軟件進行編譯、仿真,得到仿真圖形如圖4所示:

        由仿真結果可知數字秒表實現了準確的計數功能。

        最后將該設計下載到實驗、開發(fā)系統中進行驗證。經ISE綜合后生成相應的stopwatch.ucf文件,管腳鎖定如下:輸入信號CLKIN對應P76引腳,RST對應P120引腳, SW7對應P116引腳;輸出信號LEDOUT[7:4]對應P37~P34引腳,LEDOUT<3>對應P31, LEDOUT<2>對應P29, LEDOUT<1>對應P28, LEDOUT<0>對應P33, LEDSEL<3>對應P39,LEDSEL<2>對應P40,LEDSEL<1>對應P42,LEDSEL<0>對應P43。管腳鎖定后再進行編譯,生成可下載的stopwatch.mcs文件,將該文件下載到TS101芯片中,可實際驗證該設計的各種功能,復位、計數、暫停、清零等。

        5 結束語

        通過利用FPGA設計數字秒表可,進一步熟悉了FPGA的整套開發(fā)流程,即設計入口,仿真,綜合,布局布線。在Xinlinx FPGA 開發(fā)環(huán)境下,采用至上而下的設計方法有利于早期發(fā)現結構設計中的錯誤,避免不必要的重復設計。在結合基于FPGA的“在系統”可編程實驗板,輕輕松松就能實現電子產品的設計,現場觀察實

        驗測試結果。大大縮短了產品的設計周期和調試周期,提高了設計的可靠性和成功率。充分體現了可編程邏輯器件在數字電路設計中的優(yōu)越性。

        參考文獻:

        [1]王振紅.VHDL數字電路設計與應用實踐教程[M],北京:機械工業(yè)出版社,2003(6).

        [2]張淑驊.基于FPGA的數字秒表的VHDL設計[J],大眾科技,2006(5):7-78.

        [3]詹小杏,林浩泉.用CPLD器件設計數字秒表[J],大眾科技,2004(10):2.

        [4]韓芝俠.基于FPGA的數字秒表設計 [J],陜西工學院學報,2004,20(4):22-23.

        [5]陳耀和.VHDL語言設計技術[M],北京:電子工業(yè)出版社,2004(3).

        [6]翟殿棠,田萬民,厲光偉.VHDL在數字設計中的應用研究[J],信息技術研究與應用,2004(3):44-45.

        亚洲av男人的天堂一区| 亚洲VA中文字幕欧美VA丝袜| 色婷婷丁香综合激情| 免费观看一区二区三区视频| 色欲一区二区三区精品a片| 精品无码日韩一区二区三区不卡| 亚洲欧美日韩专区一| 欧美成a人片在线观看久| 亚洲一二三区在线观看| 人妻少妇精品一区二区三区| 免费人成网站在线播放 | 久久久久久欧美精品se一二三四| 午夜福利院电影| 高清在线亚洲中文精品视频| 亚洲高清在线视频网站| 中文字幕av高清人妻| 米奇777四色精品人人爽| 国产丝袜在线精品丝袜不卡| 国产精品国产三级国产在线观| 国产免费一区二区三区在线视频| 欧美精品无码一区二区三区| 男人的天堂无码动漫av| 午夜AV地址发布| 中文字幕一区二区三区在线乱码| 女女同恋一区二区在线观看| 亚洲av无码一区二区三区人妖| 国产丝袜一区二区三区在线不卡| 国产视频免费一区二区| 日本熟女精品一区二区三区| 一本一道av无码中文字幕﹣百度| 久草午夜视频| 日韩精品一区二区在线视| 久久成人成狠狠爱综合网| 国产欧美亚洲精品a| 欧美日韩亚洲成色二本道三区| 中国老太老肥熟女视频 | 亚洲乱码中文字幕综合| 不卡一区二区黄色av| 国产成人精品电影在线观看 | 91亚洲最新国语中文字幕| 一区二区视频在线国产|