《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于FPGA的數(shù)字秒表設(shè)計與仿真
基于FPGA的數(shù)字秒表設(shè)計與仿真
摘要: 數(shù)字集成電路作為當(dāng)今信息時代的基石,不僅在信息處理、工業(yè)控制等生產(chǎn)領(lǐng)域得到普及應(yīng)用,并且在人們的日常生活中也是隨處可見,極大的改變了人們的生活方式。面對如此巨大的市場,要求數(shù)字集成電路的設(shè)計周期盡可能短、實(shí)驗(yàn)成本盡可能低,最好能在實(shí)驗(yàn)室直接驗(yàn)證設(shè)計的準(zhǔn)確性和可行性,因而出現(xiàn)了現(xiàn)場可編程邏輯門陣列FPGA。
Abstract:
Key words :

數(shù)字集成電路作為當(dāng)今信息時代的基石,不僅在信息處理、工業(yè)控制等生產(chǎn)領(lǐng)域得到普及應(yīng)用,并且在人們的日常生活中也是隨處可見,極大的改變了人們的生活方式。面對如此巨大的市場,要求數(shù)字集成電路的設(shè)計周期盡可能短、實(shí)驗(yàn)成本盡可能低,最好能在實(shí)驗(yàn)室直接驗(yàn)證設(shè)計的準(zhǔn)確性和可行性,因而出現(xiàn)了現(xiàn)場可編程邏輯門陣列FPGA。對于芯片設(shè)計而言,F(xiàn)PGA的易用性不僅使得設(shè)計更加簡單、快捷,并且節(jié)省了反復(fù)流片驗(yàn)證的巨額成本。對于某些小批量應(yīng)用的場合,甚至可以直接利用FPGA實(shí)現(xiàn),無需再去訂制專門的數(shù)字芯片。

文中著重介紹了一種基于FPGA利用VHDL硬件描述語言的數(shù)字秒表設(shè)計方法,在設(shè)計過程中使用基于VHDL的EDA工具ModelSim對各個模塊仿真驗(yàn)證,并給出了完整的源程序和仿真結(jié)果。

1 總體功能結(jié)構(gòu)設(shè)計

一個完整的數(shù)字秒表應(yīng)具有計時、相應(yīng)的控制以及計時結(jié)果顯示功能,總體的功能結(jié)構(gòu)如圖1所示。黑色線框內(nèi)是計數(shù)模塊、使能轉(zhuǎn)化模塊和顯示譯碼模塊,左邊是輸入控制信號,右邊是顯示計時結(jié)果的數(shù)碼顯示管,用六位BCD七段數(shù)碼管顯示讀數(shù),顯示格式如圖2,計時范圍為:1小時,精度為0.01s。
輸入時鐘信號由32MHz的石英晶振提供,考慮到設(shè)計指標(biāo)要求秒表精度為0.01秒,計數(shù)脈沖的時鐘輸入就應(yīng)該是頻率為100Hz的脈沖,所以先要設(shè)計一個320000分頻器,分頻器的輸出可作計數(shù)器的輸入;其次計數(shù)模塊設(shè)計應(yīng)綜合考慮秒表的計時范圍(1小時)和顯示輸出(6位輸出),6位輸出中有兩位是六進(jìn)制輸出,其余四位是十進(jìn)制輸出,所以可通過設(shè)計4個模10計數(shù)器和2個模6計數(shù)器來實(shí)現(xiàn),其中較低位的進(jìn)位輸出就是高位的計數(shù)輸入端。
控制模塊應(yīng)包括開始計時/停止計時、復(fù)位兩個按鈕,即電路設(shè)計經(jīng)常用到的使能端和清零端,這兩個控制端口直接接到計數(shù)器的清零和史能端即可實(shí)現(xiàn)復(fù)位、開始計時/停止計時;但是外圍使能輸入需要經(jīng)過使能轉(zhuǎn)換電路后,才可變?yōu)橛嫈?shù)器可用的使能控制信號。因此在輸入使能信號和計數(shù)器使能輸入之間需設(shè)計一個信號轉(zhuǎn)換模塊。
顯示計數(shù)結(jié)果的模塊實(shí)現(xiàn)較為簡單,只需將六位計數(shù)結(jié)果通過七段譯碼電路接到輸出即可點(diǎn)亮數(shù)碼管,無需時序控制,直接用組合邏輯電路就可以實(shí)現(xiàn)。數(shù)碼管顯示可以采用掃描顯示,用一個頻率1KHz的信號掃描一個多路選擇器,實(shí)現(xiàn)對六位已經(jīng)鎖存的計數(shù)結(jié)果的掃描輸出。
2 各功能模塊設(shè)計
2.1 分頻器模塊
分頻器的功能是提供標(biāo)準(zhǔn)時鐘控制信號以精確控制計數(shù)器的開閉,提供的標(biāo)準(zhǔn)信號是32MHz,根據(jù)設(shè)計精度0.01s的要求,輸出信號是100Hz,所以該分頻器實(shí)現(xiàn)的功能是320000分頻,具體的VHDL源程序:
process(clk)
begin
if(clk'event and clk='1')then
if (q=159999)then
q<=0;
count_temp<=not count_temp;
else
q<=q 1;
end if;
end if;
end process;
2.2 計數(shù)模塊
該計數(shù)器要實(shí)現(xiàn)最大計數(shù)值為59分59秒99的計數(shù),而且為了數(shù)碼管顯示方便,該模塊必須通過計數(shù)器的級聯(lián)來實(shí)現(xiàn),即首先分別設(shè)計一個模6計數(shù)器和一個模10計數(shù)器,然后將他們級聯(lián),其中調(diào)用4次模10計數(shù)器、2次模6計數(shù)器,這樣可以比直接設(shè)計模100 的計數(shù)器和模60的計數(shù)器節(jié)省資源。級聯(lián)時低位的計數(shù)進(jìn)位輸出接高位的計數(shù)輸入端,如圖3所示。再考慮到控制模塊的要求,每個計數(shù)器有三個輸入端:時鐘、使能和清零,兩個輸出端:計數(shù)輸出和進(jìn)位輸出,采用同步使能異步清零的設(shè)計方法,每個計數(shù)器的使能和清零端都與外圍的使能和清零端相聯(lián)。

       該模塊的源程序以及ModelSim仿真輸出結(jié)果如下:

模6計數(shù)器的VHDL源程序如下:
process(clear,clk)
begin
if (clear='1') then
tmp<="0000";
carryout<='0';
elsif(clk'event and clk='1') then
if (rst='0') then
if (tmp="0101") then
carryout<='1';
tmp<="0000";
else
tmp<=tmp 1;
carryout<='0';
end if;
end if;
end if;
模10計數(shù)器的VHDL源程序與模6計數(shù)器類似,為節(jié)省篇幅,不再給出。
2.3 使能信號轉(zhuǎn)換模塊
數(shù)字秒表輸入的開始和停止信號是單個脈沖信號,而計數(shù)器要持續(xù)計數(shù)所需的使能信號是持續(xù)的高電平,所以需要通過使能控制電路實(shí)現(xiàn)使能信號的轉(zhuǎn)換。該模塊的VHDL源程序以及ModelSim仿真輸出結(jié)果如下:
該模塊源程序:
process(enablein)
begin
if(enablein'event and enablein='1')then
temp<= not temp;
end if ;
end process;
2.4 譯碼顯示模塊
由上面的設(shè)計可知,計數(shù)器輸出為二進(jìn)制碼,不能直接點(diǎn)亮數(shù)碼管,要想將計數(shù)結(jié)果通過數(shù)碼管顯示必須再設(shè)計一個七段譯碼電路,以便將計數(shù)結(jié)果輸出。通過分析可知該譯碼器是一個4輸入,7輸出元件,其真值表如表1所示:

根據(jù)以上真值表可寫出譯碼電路VHDL源程序如下:
process(datainput)
begin
case datainput is
when "0000"=>dataoutput<="0000010";
when "0001"=>dataoutput<="1001111";
when "0010"=>dataoutput<="0010001";
when "0011"=>dataoutput<="0000101";
when "0100"=>dataoutput<="1001100";
when "0101"=>dataoutput<="0100100";
when "0110"=>dataoutput<="0100000";
when "0111"=>dataoutput<="0001111";
when "1000"=>dataoutput<="0000000";
when "1001"=>dataoutput<="0000100";
when others=>dataoutput<="1111111";
end case;
end process;
3 功能驗(yàn)證以及下載實(shí)現(xiàn)
完成以上各個子模塊的設(shè)計后,該數(shù)字秒表的模塊設(shè)計就基本完成了,剩下的工作就是通過一個頂層文件將各個子模塊連接起來。在頂層文件中可以將以上各個子模塊看作一個個黑匣子,只將其輸入輸出端對應(yīng)相連就可以了。下面是該頂層文件的VHDL源程序:

        architecture Behavioral of topfile is
signal clk:std_logic:='0';
signal enableout:std_logic:='0';
signal data0,data1,data2,
data3,data4,data5:std_logic_vector(3
downto 0):="0000";
component abc
port(clk:in std_logic;
dout:out std_logic);
end component;
component enable
port(enablein:in std_logic;
enableout:out std_logic);
end component;
component highlevel
port(rst,clk,clear:in std_logic;
output1,output2,output3,
output4,output5,output6:out
std_logic_vector(3 downto 0);
carryout:out std_logic);
end component;
component yima
port(datainput:in std_logic_vector(3 downto 0);
dataoutput: out std_logic_vector(6 downto 0));
end component;
begin
u0:abc port map(clkin,clk);
        u1:enable port map(enablein,enableout);
u2:highlevel port map(enableout,clk,clear,data0,data1,data2,data3,data4,data5);
u3:yima port map(data0,dataout0);
u4:yima port map(data1,dataout1);
u5:yima port map(data2,dataout2);
u6:yima port map(data3,dataout3);
u7:yima port map(data4,dataout4);
u8:yima port map(data5,dataout5);
end Behavioral;
由于各個子模塊都已經(jīng)經(jīng)過驗(yàn)證無誤,并且頂層文件中不涉及復(fù)雜的時序關(guān)系,相當(dāng)于只是將各個模塊用導(dǎo)線連接起來,只要各個端口的連接對應(yīng)正確即可,所以不需寫專門的test bench進(jìn)行驗(yàn)證。完成以上設(shè)計后,即可進(jìn)行邏輯綜合,綜合無誤后進(jìn)行管腳適配,生成.bit文件然后下載到實(shí)驗(yàn)板上測試。經(jīng)過反復(fù)多次測試,以上設(shè)計完全滿足了預(yù)期的設(shè)計指標(biāo),開始/停止按鍵和清零按鍵都能準(zhǔn)確的控制秒表的運(yùn)行,七段顯示數(shù)碼管也能夠準(zhǔn)確的顯示計時結(jié)果。通過與標(biāo)準(zhǔn)秒表對比,該設(shè)計的計時誤差在0.03s以內(nèi),而這其中也包括實(shí)驗(yàn)板上晶振由于長期使用所帶來的誤差。
4 結(jié)束語
本文所介紹數(shù)字秒表設(shè)計方法,采用了當(dāng)下最流行的EDA設(shè)計手段。在Xinlinx FPGA開發(fā)環(huán)境下,采用至上而下的模塊化設(shè)計方法,使得系統(tǒng)開發(fā)速度快、成本低、系統(tǒng)性能大幅度提升。通過實(shí)驗(yàn)驗(yàn)證,本文設(shè)計的數(shù)字秒表計時準(zhǔn)確、性能穩(wěn)定,可以很容易嵌入其他復(fù)雜的數(shù)字系統(tǒng),充當(dāng)計時模塊。
利用EDA設(shè)計工具,結(jié)合基于FPGA的可編程實(shí)驗(yàn)板,輕松實(shí)現(xiàn)電子芯片的設(shè)計,現(xiàn)場觀察實(shí)驗(yàn)結(jié)果,大大縮短了產(chǎn)品的設(shè)計周期和調(diào)試周期,提高了設(shè)計的可靠性和成功率,體現(xiàn)了邏輯器件在數(shù)字設(shè)計中優(yōu)越性。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
99国产精品久久久久久久| 久久久免费精品视频| 久久精品国产久精国产爱| 亚洲一区在线播放| 99在线|亚洲一区二区| 亚洲激情一区二区三区| 影音先锋另类| 在线观看av不卡| 禁断一区二区三区在线| 精品69视频一区二区三区| 黄色日韩网站视频| 狠狠色综合网| 影音先锋另类| 亚洲高清一区二| 亚洲欧洲日韩综合二区| 最新日韩在线视频| 日韩视频国产视频| 一本色道久久综合一区| 亚洲人成在线观看一区二区| 亚洲精品小视频| 99在线精品免费视频九九视| 中文亚洲欧美| 亚洲欧美中文日韩在线| 羞羞答答国产精品www一本| 欧美在线一级视频| 亚洲高清免费| 亚洲理论电影网| 亚洲午夜精品久久久久久app| 亚洲新中文字幕| 午夜宅男欧美| 亚洲国产精品久久久久| 榴莲视频成人在线观看| 欧美~级网站不卡| 欧美成人免费观看| 欧美精品一区二区高清在线观看| 欧美人与禽猛交乱配| 欧美日精品一区视频| 国产精品久久国产三级国电话系列 | 久久久久久久久岛国免费| 久久只精品国产| 欧美日韩精品久久| 国产麻豆91精品| 在线免费观看视频一区| 亚洲伦理精品| 香蕉久久久久久久av网站| 亚洲国产小视频| 亚洲一区免费网站| 久久久久国内| 欧美精品一区二区三区四区| 国产精品免费网站| 亚洲成在人线av| 亚洲先锋成人| 亚洲精美视频| 午夜欧美精品| 欧美成年人网| 国产精品午夜av在线| 尤物九九久久国产精品的特点 | 亚洲一区国产视频| 久久久99久久精品女同性| 欧美国产日韩精品免费观看| 国产精品免费一区二区三区在线观看 | 亚洲欧洲另类| 亚洲欧美电影院| 亚洲另类在线一区| 久久精品国产精品亚洲精品| 欧美精品电影在线| 国产私拍一区| 99精品热6080yy久久| 欧美中文字幕精品| 在线综合亚洲| 免费视频一区| 国产欧美亚洲日本| 99精品免费| 亚洲精品小视频| 久久精品视频99| 国产精品av一区二区| 亚洲高清久久| 久久国产精品第一页| 亚洲一区日本| 欧美精品在线极品| 一色屋精品亚洲香蕉网站| 亚洲午夜视频在线| 夜夜狂射影院欧美极品| 噜噜噜噜噜久久久久久91| 国产精品一区一区三区| 99国产精品久久久久久久成人热| 亚洲第一黄网| 久久精品一区蜜桃臀影院 | 亚洲性av在线| 99在线热播精品免费| 久久阴道视频| 国产香蕉久久精品综合网| 亚洲视频一起| 亚洲午夜国产成人av电影男同| 蜜乳av另类精品一区二区| 国产欧美日韩在线视频| 中文亚洲欧美| 亚洲一区免费看| 欧美揉bbbbb揉bbbbb| 亚洲黑丝在线| 亚洲精品四区| 欧美国产视频一区二区| 尤妮丝一区二区裸体视频| 久久国产成人| 久久久久久久久久久久久9999 | 欧美在线黄色| 久久成人人人人精品欧| 国产精品美女久久久久久久| 99国产精品久久久久老师| 一本色道久久加勒比88综合| 欧美激情一区二区三区全黄| 亚洲成人资源网| 亚洲人成免费| 欧美国产日韩a欧美在线观看| 影音先锋在线一区| 亚洲国产合集| 男人的天堂亚洲在线| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲国产美国国产综合一区二区| 久久美女艺术照精彩视频福利播放| 国产一级久久| 久久gogo国模裸体人体| 久久色在线观看| 精品动漫3d一区二区三区免费版| 亚洲第一天堂无码专区| 免费看黄裸体一级大秀欧美| 亚洲高清在线播放| 夜夜嗨av一区二区三区中文字幕| 欧美日韩国产免费观看| 99精品视频免费全部在线| 亚洲欧美另类在线观看| 国产精品一区免费视频| 性欧美在线看片a免费观看| 久久久激情视频| 伊人久久大香线蕉综合热线| 亚洲免费成人| 国产精品久久久久久久7电影| 亚洲综合视频网| 久久美女性网| 亚洲黄色av一区| 亚洲永久精品国产| 国产日韩欧美中文| 亚洲国产天堂久久综合网| 欧美国产在线视频| 中日韩美女免费视频网站在线观看| 亚洲视频axxx| 国产欧美一区二区三区在线看蜜臀 | 男女精品视频| 一本色道久久综合亚洲精品婷婷 | 在线视频观看日韩| 一区二区电影免费观看| 国产精品你懂得| 亚洲国产精品久久久久久女王| 欧美高清视频一区二区| 一本色道久久综合| 篠田优中文在线播放第一区| 激情丁香综合| 一区二区欧美在线| 国产日韩欧美高清免费| 91久久精品一区二区别| 欧美日韩亚洲综合一区| 销魂美女一区二区三区视频在线| 久久在线视频在线| 99国产成+人+综合+亚洲欧美| 欧美一区二区三区四区高清| 伊人久久婷婷色综合98网| 亚洲天堂久久| 国模私拍一区二区三区| 一区二区三区导航| 国产精品自拍网站| 亚洲美女在线视频| 国产精品一区久久久久| 亚洲精品一区二区三区婷婷月| 国产精品国产自产拍高清av| 亚洲电影在线| 欧美午夜免费| 亚洲国产裸拍裸体视频在线观看乱了 | 亚洲综合三区| 欧美经典一区二区三区| 西瓜成人精品人成网站| 欧美日韩aaaaa| 久久精品国产欧美亚洲人人爽| 欧美亚男人的天堂| 亚洲精品1234| 国产婷婷97碰碰久久人人蜜臀| 日韩亚洲成人av在线| 国产综合色在线| 亚洲综合三区| 亚洲国产一区二区视频| 久久精品国产99国产精品| 99天天综合性| 欧美激情2020午夜免费观看| 欧美一区二区三区在线看| 欧美三级午夜理伦三级中文幕| 亚洲国产二区| 国产一区自拍视频| 香蕉av777xxx色综合一区| 亚洲免费观看高清完整版在线观看熊| 久久综合色婷婷| 亚洲综合精品四区|