第一篇:基于Verilog HDL的串行ADC控制電路設(shè)計(jì)與總結(jié)報(bào)告
基于Verilog HDL的串行ADC控制電路
設(shè)計(jì)與總結(jié)報(bào)告
題目名稱: 報(bào)告人 : __ 學(xué)院 : 專業(yè) : 班級(jí) : 學(xué)號(hào) :
制作日期: __
摘要……………………………………………………………………...1
第一章 串行ADC控制控制電路的功能介紹及Verilog HDL簡(jiǎn)介
...................................................................................................................3 1.1串行ADC控制控制電路的功能…………………………..…..3 1.2Verilog HDL簡(jiǎn)介……………………………………………………4
第二章組成模塊簡(jiǎn)介……………………………………………..5
2.1組成模塊…………………………………………………………….6(1)、狀態(tài)機(jī)……………………………………………………6(2)、鎖相環(huán)……………………………………………………8(3)、累計(jì)器……………………………………………………10(4)、多路選擇器………………………………………………12 第三章 模擬仿真….…………………..……………………………….13 總結(jié)結(jié)論………………………………………………………………14 參考文獻(xiàn)………………………………………………………………15
基于Verilog HDL的串行ADC
控制電路設(shè)計(jì)摘要
Verilog HDL的串行ADC控制電路設(shè)計(jì),是使用高速10位逐次逼近式模數(shù)轉(zhuǎn)換器(ADC)芯片TLV1572,用Verilog HDL編程語(yǔ)言編寫狀態(tài)機(jī)按一定周期采樣轉(zhuǎn)換模擬信號(hào)。在Quartus2軟件上完成頂層電路設(shè)計(jì)、狀態(tài)機(jī)、鎖相環(huán)、累加器、譯碼器、多路選擇器等編程和封裝。各個(gè)模塊完成不同的任務(wù),合在一起就構(gòu)成了Verilog HDL的串行ADC控制電路設(shè)計(jì),軟件模擬直接在Quartus2上進(jìn)行。
在此程序中關(guān)鍵是用于狀態(tài)機(jī),其中狀態(tài)機(jī)的優(yōu)勢(shì)有以下幾點(diǎn):(1)、高效的順序控制模型,狀態(tài)機(jī)克服了純硬件數(shù)字系統(tǒng)順序方式控制不靈活的缺點(diǎn)。狀態(tài)dat0是對(duì)1572的初始化、狀態(tài)dat1是打開1572的片選信等,一直到采集數(shù)據(jù)輸出數(shù)據(jù)。
(2)容易利用現(xiàn)成的EDA工具進(jìn)行優(yōu)化設(shè)計(jì)。由于狀態(tài)機(jī)的構(gòu)件簡(jiǎn)單,其中用宏模塊PLL將20MHz的時(shí)鐘進(jìn)行分頻得到想要的時(shí)鐘周期。
(3)性能穩(wěn)定。狀態(tài)機(jī)容易構(gòu)成性能良好的同步時(shí)序邏輯模塊。(4)高速性能。狀態(tài)機(jī)載高速通信和高速控制方面,有著巨大的優(yōu)勢(shì)。
第二章 串行ADC控制控制電路的功能介紹及Verilog HDL簡(jiǎn)介
1.1串行ADC控制控制電路的功能
在我們的信息時(shí)代日益更新的生活,AD、DA轉(zhuǎn)換時(shí)刻進(jìn)行著,而這些功能的實(shí)現(xiàn),均以多半是以MCU或MPU的控制芯片實(shí)現(xiàn)的,但CPU的不穩(wěn)定和低時(shí)鐘嚴(yán)重影響著轉(zhuǎn)換的效率,因此,研究狀態(tài)機(jī)控制轉(zhuǎn)換芯片有著現(xiàn)實(shí)意義。
此次設(shè)計(jì)與利用狀態(tài)機(jī)就是為了了解不基于各種CPU而能穩(wěn)定、高效的進(jìn)行工作,從而學(xué)會(huì)編程。通過它也可以進(jìn)一步學(xué)習(xí)掌握各種邏輯電路與時(shí)序電路的原理與使用方法。1.2 Verilog HDL簡(jiǎn)介
Verilog HDL是一種硬件描述語(yǔ)言(HDL:HardwareDiscription Language),是一種以文本形式來(lái)描述數(shù)字系統(tǒng)硬件的結(jié)構(gòu)和行為的語(yǔ)言,用它可以表示邏輯電路圖、邏輯表達(dá)式,還可以表示數(shù)字邏輯系統(tǒng)所完成的邏輯功能。Verilog HDL和VHDL是目前世界上最流行的兩種硬件描述語(yǔ)言,都是在20世紀(jì)80年代中期開發(fā)出來(lái)的。前者由Gateway Design Automation公司(該公司于1989年被Cadence公司收購(gòu))開發(fā)。兩種HDL均為IEEE標(biāo)準(zhǔn)。第二章組成模塊簡(jiǎn)介 2.1組成模塊 頂層電路圖:
頂層電路設(shè)計(jì)、狀態(tài)機(jī)、鎖相環(huán)、累加器、譯碼器、多路選擇器等編程和封裝
(1)、狀態(tài)機(jī)
基于Verilog HDL語(yǔ)言編寫的狀態(tài)機(jī)是本系統(tǒng)的核心,猶如一個(gè)穩(wěn)定、高效、單一的控制CPU,其中代碼如下:
module TLV1572(CS,CLK,SCLK,FS,SDI,DO,RST);input SDI;input CLK;input RST;output CS,SCLK,FS;//CS 片選,FS當(dāng)接口至微處理器時(shí),FS輸入連接至Vcc output [9:0]DO;//串行數(shù)據(jù)輸出
reg [6:0] next,now;reg [6:0] dat;reg [9:0] DO;reg CS,SCLK;wire FS;parameter dat0=6'd0;parameter dat2=6'd2;parameter dat3=6'd3;parameter dat4=6'd4;parameter dat6=6'd6;parameter dat7=6'd7;parameter dat8=6'd8;parameter dat10=6'd10;parameter dat11=6'd11;parameter
dat12=6'd12;parameter dat14=6'd14;parameter dat15=6'd15;parameter
dat16=6'd16;parameter dat18=6'd18;parameter dat19=6'd19;parameter
dat20=6'd20;parameter dat22=6'd22;parameter dat23=6'd23;parameter
dat24=6'd24;parameter
dat1=6'd1;parameter dat5=6'd5;parameter dat9=6'd9;parameter dat13=6'd13;parameter
dat17=6'd17;parameter
dat21=6'd21;parameter
dat25=6'd25;parameter dat26=6'd26;parameter dat27=6'd27;parameter
dat28=6'd28;parameter
dat29=6'd29;parameter dat30=6'd30;parameter dat31=6'd31;parameter
dat32=6'd32;parameter
dat33=6'd33;parameter dat34=6'd34;parameter dat35=6'd35;parameter
dat36=6'd36;parameter
dat37=6'd37;parameter dat38=6'd38;parameter dat39=6'd39;parameter dat40=6'd40;
always@(posedge CLK or posedge RST)begin if(RST)next<=dat0;else end always@(next)begin case(next)
dat0 : begin CS<=1'b1;SCLK<=1'b0;now<=dat1;end dat1 : begin CS<=1'b0;SCLK<=1'b0;now<=dat2;end dat2 : begin CS<=1'b0;SCLK<=1'b0;now<=dat3;end dat3 : begin CS<=1'b0;SCLK<=1'b1;now<=dat4;end dat4 : begin CS<=1'b0;SCLK<=1'b0;now<=dat5;end next <= now;
dat5 : begin CS<=1'b0;SCLK<=1'b1;now<=dat6;end dat6 : begin CS<=1'b0;SCLK<=1'b0;now<=dat7;end dat7 : begin CS<=1'b0;SCLK<=1'b1;now<=dat8;end dat8 : begin CS<=1'b0;SCLK<=1'b0;now<=dat9;end dat9 : begin CS<=1'b0;SCLK<=1'b1;now<=dat10;end dat10 : begin CS<=1'b0;SCLK<=1'b0;now<=dat11;end dat11 : begin CS<=1'b0;SCLK<=1'b1;now<=dat12;end dat12 : begin CS<=1'b0;SCLK<=1'b0;now<=dat13;end dat13 : begin CS<=1'b0;SCLK<=1'b1;now<=dat14;end dat14 : begin CS<=1'b0;SCLK<=1'b0;now<=dat15;end dat15 : begin CS<=1'b0;SCLK<=1'b1;now<=dat16;end
dat16 : begin CS<=1'b0;SCLK<=1'b0;now<=dat17;end dat17 : begin CS<=1'b0;SCLK<=1'b1;now<=dat18;end dat18 : begin CS<=1'b0;SCLK<=1'b0;now<=dat19;end dat19 : begin CS<=1'b0;SCLK<=1'b1;now<=dat20;end dat20 : begin CS<=1'b0;SCLK<=1'b0;now<=dat21;end endcase end always@(next)begin case(next)
dat16: begin DO[9] <=SDI;end dat18: begin DO[8] <=SDI;end dat20: begin DO[7] <=SDI;end dat22: begin DO[6] <=SDI;end dat24: begin DO[5] <=SDI;end
dat26: begin
dat28: begin
dat30: begin
dat32: begin dat34: begin endcase end assign FS=1'b1;endmodule
DO[4] <=SDI;DO[3] <=SDI;DO[2] <=SDI;DO[1] <=SDI;DO[0] <=SDI;end end end end end
封裝后
(2)、鎖相環(huán)
利用軟件中的宏模塊分頻電路圖如下
功能設(shè)計(jì)圖(3)、累計(jì)器
累加器用于選通數(shù)碼管,用于點(diǎn)亮數(shù)碼管,代碼如下: module CNT10(CLK,Q);input CLK;output [2:0] Q;reg [2:0] Q1;assign Q = Q1;always @(posedge CLK)begin Q1 <= Q1+1;end Endmodule 電路圖為:
(4)、多路選擇器
第三章 模擬仿真
總結(jié)結(jié)論
通過此次設(shè)計(jì)研究,最終完成了 串行ADC的的設(shè)計(jì)與制作。在整個(gè)設(shè)計(jì)過程中,我們組從各個(gè)模塊的思路設(shè)計(jì)到實(shí)際程序編寫,從點(diǎn)到面。在出現(xiàn)與處理問題的過程中,不斷提升自己處理細(xì)節(jié)問題的能力,雖然遇到了很多的困難但最終還是基本上完成了設(shè)計(jì)達(dá)到了預(yù)期的效果。而更重要的是通過系統(tǒng)設(shè)計(jì)這項(xiàng)項(xiàng)目,使我們對(duì)于設(shè)計(jì)整體流程有了更加明晰的感受,對(duì)于今后的深入學(xué)習(xí)與應(yīng)用奠定了基礎(chǔ)。在今后的學(xué)習(xí)中,我們將繼續(xù)加強(qiáng)EDA理論知識(shí)和Verilog語(yǔ)言的熟練掌握,爭(zhēng)取更大的突破。
最后,感謝老師這學(xué)期的辛勤授課,您的敬業(yè)精神值得很多老師和學(xué)生學(xué)習(xí),通過一學(xué)期的課程學(xué)習(xí)也是我進(jìn)步很多。謝謝您王老師!
參考文獻(xiàn)
1、《EDA技術(shù)實(shí)用教程》
2、《Verilog HDL狀態(tài)機(jī)編寫技巧》
3、《基于Verilog的狀態(tài)機(jī)設(shè)計(jì)》等
第二篇:交通燈控制邏輯電路設(shè)計(jì)與總結(jié)報(bào)告
交通燈控制邏輯電路設(shè)計(jì)與總結(jié)報(bào)告
一、設(shè)計(jì)任務(wù)
用CPLD設(shè)計(jì)路口交通燈控制器
二、設(shè)計(jì)要求
1、滿足一下時(shí)序要求:南北方向紅燈亮,東西方向綠燈亮;南北方向綠燈亮,東西方向紅燈亮;
2、每一方向的紅(綠)黃燈總共維持30秒;
3、十字路口要有時(shí)間顯示,具體為:當(dāng)某一方向綠燈亮?xí)r,置顯示器為30秒,然后以每秒減一技術(shù)方式工作,直至減到數(shù)為4秒時(shí),紅綠燈熄滅,黃燈開始間隙閃耀4秒,減到0時(shí),紅綠燈交換,一次工作循環(huán)結(jié)束,進(jìn)入下一步另一方向的工作循環(huán);
4、紅綠燈均采用發(fā)光二極管;
5、設(shè)計(jì)由晶振電路產(chǎn)生1Hz標(biāo)準(zhǔn)秒信號(hào)的單元電路(實(shí)際秒脈沖由開發(fā)箱提供);
6、要求對(duì)整體電路進(jìn)行仿真,觀察并記錄下仿真波形;
7、選作部分:
a、手動(dòng)調(diào)整和自動(dòng)控制,夜間為黃燈閃耀;
b、白天黃燈亮?xí)r,以2Hz的速度閃爍點(diǎn)亮四秒; c、紅綠燈循環(huán)點(diǎn)亮?xí)r間可以自由修改。
三、設(shè)計(jì)設(shè)備
含有Quartus軟件的電腦一臺(tái),可下載的試驗(yàn)臺(tái);
四、設(shè)計(jì)方法
使用VHDL語(yǔ)言進(jìn)行程序的設(shè)計(jì)運(yùn)行和仿真,以及波形的運(yùn)行仿真,最后進(jìn)行下載仿真;
五、方案論證
方案1:把整個(gè)流程分成幾個(gè)進(jìn)程來(lái)做;
方案2:每個(gè)進(jìn)程都使用if和case語(yǔ)句實(shí)現(xiàn)功能的實(shí)現(xiàn); 方案3:使用狀態(tài)機(jī)來(lái)實(shí)現(xiàn)狀態(tài)間的轉(zhuǎn)換;
方案論證:
1、要實(shí)現(xiàn)整個(gè)流程,需要做的輸出內(nèi)容類型不同,如果放在一個(gè)進(jìn)程里面就比較容易混淆,產(chǎn)生混亂。而采用分成幾個(gè)進(jìn)程來(lái)做的方式就明確了每個(gè)模塊的內(nèi)容和分工,使其調(diào)理清晰,一目了然;
2、if語(yǔ)句是條件語(yǔ)句,是VHDL語(yǔ)言中常用的基本語(yǔ)句。該流程中的變量比較繁多,而使用case語(yǔ)句分情況列出來(lái),簡(jiǎn)潔明了。
3、狀態(tài)機(jī)的使用格式簡(jiǎn)潔,使用簡(jiǎn)單方便,特別是在進(jìn)行狀態(tài)的轉(zhuǎn)換時(shí)候。并行的狀態(tài)轉(zhuǎn)換不易出錯(cuò),可將狀態(tài)轉(zhuǎn)換、賦值、計(jì)數(shù)等多個(gè)功能封裝在某一個(gè)狀態(tài)中,并且更加便于為系統(tǒng)添加新的狀態(tài)功能。
方案選定:
通過以上分析,確定用以上方案為本次設(shè)計(jì)的方案。
六、工作原理
先對(duì)所給時(shí)鐘脈沖進(jìn)行分頻到標(biāo)準(zhǔn)時(shí)鐘脈沖;設(shè)計(jì)兩個(gè)時(shí)鐘控制倒計(jì)時(shí),倒計(jì)時(shí)的時(shí)間可自由修改,由輸入決定;設(shè)計(jì)另一個(gè)時(shí)鐘,用以控制白天與夜間模式的轉(zhuǎn)換;在白天時(shí),根據(jù)倒計(jì)時(shí)的數(shù)字進(jìn)行紅綠燈的狀態(tài)轉(zhuǎn)換;夜間時(shí),紅綠燈狀態(tài)改為夜間模式:黃燈閃爍。
七、程序設(shè)計(jì)
------交通燈控制系統(tǒng)所使用的庫(kù)和包
-------------------------library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;
-------------------------------交通燈控制系統(tǒng)的實(shí)體
-------------------------entity jt is
port(clk,reset:in std_logic;
------------------時(shí)鐘脈沖clk由系統(tǒng)直接提供,需要進(jìn)行分
頻;reset是啟動(dòng)鍵,當(dāng)reset為1是,系統(tǒng)啟動(dòng)
t0:integer range 0 to30;
------------------紅綠燈循環(huán)點(diǎn)亮的時(shí)間,根據(jù)輸入的不同
系統(tǒng)運(yùn)行的不同
r1,y1,g1,r2,y2,g2:out std_logic;
------------------r1為東西方向紅燈,y1為東西方
向黃燈,g1為東西方向綠燈;r2為南北方向紅燈,y2為南北方向黃燈,g2為南北方向綠燈
ec0,ec1,nc0,nc1:out std_logic_vector(3 downto 0));
------------------ec0,ec1分別為東西方向的倒計(jì)時(shí)間的個(gè)位和十位;
nc0,nc1分別為南北方向的倒計(jì)時(shí)間的個(gè)位和十位
end jt;-------------------------------交通燈控制系統(tǒng)的結(jié)構(gòu)體(5個(gè)進(jìn)程)
-------------------------architecture one of jt is
type state_type is(s0,s1,s2,s3);
------------------定義狀態(tài)的類型
signal state:state_type;
------------------使用狀態(tài)機(jī)
signal k:std_logic;
------------------分頻后的1Hz的標(biāo)準(zhǔn)時(shí)鐘脈沖
signal c1,c2:integer range 0 to 30;
------------------定義東西、南北方向的兩個(gè)
倒計(jì)時(shí)的計(jì)數(shù)
signal t1:integer range 0 to 3600;
signal t2:integer range 0 to 24;------------------定義一個(gè)時(shí)鐘,用以控制白天與夜間模式 Begin------該進(jìn)程用以分頻
-------------------------q0:process(clk)
variable tt:std_logic_vector(9 downto 0);
------------------中間變量
begin
if clk'event and clk='1' then
if tt=“1111101000” then
----------------------把所給1kHz分頻成1Hz的脈沖
k,10000分頻,仿真值用“ 0000000100”八分頻
tt:=(others=>'0');
k<='1';
else
tt:=tt+1;k<='0';
end if;
end if;end process q0;-------------------------
------該進(jìn)程用以設(shè)計(jì)時(shí)鐘
-------------------------q1:process(k,reset)
begin
if reset='1' then
------------------啟動(dòng)開關(guān)為1時(shí),系統(tǒng)開始運(yùn)行
t1<=0;t2<=0;
------------------從0點(diǎn)開始 elsif k='1' and k'event then if t1=3599 then
------------------一個(gè)t1循環(huán)是一個(gè)秒,仿真值用“35” if t2=23 then
-------------------一個(gè)t1循環(huán)是一個(gè)小時(shí),一天24小時(shí) t2<=0;
else t2<=t2+1;end if;t1<=0;else t1<=t1+1;end if;end if;end process q1;-------------------------------該進(jìn)程用以控制白天黑天模式和紅綠燈狀態(tài)轉(zhuǎn)換
-------------------------q2:process(k,reset,t2)
begin
if t2>=5 and t2<=22 then
-------------------白天模式5:00到22:00之間
if reset='1' then
-------------------啟動(dòng)開關(guān)為1時(shí),系統(tǒng)開始運(yùn)
行,進(jìn)行狀態(tài)轉(zhuǎn)換
r1<='0';y1<='0';g1<='1';-------------------東西方向綠燈亮 r2<='1';y2<='0';g2<='0';-------------------南北方向紅燈亮 state<=s0;-------------------紅綠燈處于初始狀態(tài)s0 c1<=t0;
c2<=t0;-------------------倒計(jì)時(shí)從自由輸入值開始遞減 elsif k='1' and k'event then
case state is
when s0=>-------------------當(dāng)處于第1狀態(tài)時(shí),討論
if c1=5 then
--------------由于進(jìn)程內(nèi)部的并列進(jìn)
行,當(dāng)?shù)褂?jì)時(shí)第4秒時(shí),進(jìn)入到第2狀態(tài)s1
state<=s1;
c1<=c1-1;
c2<=c2-1;
--------------倒計(jì)時(shí)遞減
elsif c2=0 then
------------倒計(jì)時(shí)減到0時(shí),再?gòu)?/p>
初始值開始
c1<=t0;
c2<=t0;
else
----------------否則繼續(xù)保持第1狀態(tài)s0
state<=s0;
c1<=c1-1;
c2<=c2-1;
end if;
when s1=>-------------------當(dāng)處于第2狀態(tài)時(shí),討論
if c1=1 then--------------由于進(jìn)程內(nèi)部的并列進(jìn)行,當(dāng)
倒計(jì)時(shí)第t0秒時(shí),進(jìn)入到第3狀態(tài)s2
state<=s2;
c1<=c1-1;
c2<=c2-1;
else----------------否則繼續(xù)保持第2狀態(tài)
state<=s1;
c1<=c1-1;
c2<=c2-1;
end if;
when s2=>-------------------當(dāng)處于第3狀態(tài)時(shí),討論
if c2=5 then--------------由于進(jìn)程內(nèi)部的并列進(jìn)行,當(dāng)?shù)褂?jì)時(shí)第4秒時(shí),進(jìn)入到第4狀態(tài)s3
state<=s3;
c1<=c1-1;
c2<=c2-1;
elsif c1=0 then
------------倒計(jì)時(shí)減到0時(shí),再?gòu)某?/p>
始值開始
c1<=t0;
c2<=t0;
else
----------------否則繼續(xù)保持第3狀態(tài)
state<=s2;
c1<=c1-1;
c2<=c2-1;
end if;
when s3=>-------------------當(dāng)處于第4狀態(tài)時(shí),討論 if c2=1 then--------------由于進(jìn)程內(nèi)部的并列進(jìn)行,當(dāng)?shù)?/p>
計(jì)時(shí)第t0秒時(shí),進(jìn)入到第1狀態(tài)s0
state<=s0;
c1<=c1-1;
c2<=c2-1;
else----------------否則繼續(xù)保持第4狀態(tài)
state<=s3;
c1<=c1-1;
c2<=c2-1;
end if;
when others=> state<=s0;
end case;if state=s0 then
r1<='0';y1<='0';g1<='1';
r2<='1';y2<='0';g2<='0';elsif state=s1 then
r1<='0';g1<='0';
r2<='1';y2<='0';g2<='0';
if c1=4 or c1=2 then y1<='1';
else y1<='0';
end if;elsif state=s2 then
r1<='1';y1<='0';g1<='0';
r2<='0';y2<='0';g2<='1';elsif state=s3 then
r1<='1';y1<='0';g1<='0';
r2<='0';g2<='0';
if c2=4 or c2=2 then y2<='1';
else y2<='0';
end if;end if;
--各個(gè)狀態(tài)的紅綠燈變量的賦值,‘1’亮‘0’熄 end if;else-------------------夜間模式22:00到次日5:00之間
c2<=0;c1<=0;r1<='0';r2<='0';g1<='0';g2<='0';y1<=k;y2<=k----------------紅綠燈的狀態(tài):脈沖k賦給黃燈變量,黃燈閃爍
end if;end process q2;-------------------------------該進(jìn)程用于東西方向倒計(jì)時(shí)的譯碼顯示
-------------------------q3:process(c1)
begin case c1 is when 0=>ec0<=“0000”;ec1<=“0000”;when 1=>ec0<=“0001”;ec1<=“0000”;when 2=>ec0<=“0010”;ec1<=“0000”;when 3=>ec0<=“0011”;ec1<=“0000”;when 4=>ec0<=“0100”;ec1<=“0000”;when 5=>ec0<=“0101”;ec1<=“0000”;when 6=>ec0<=“0110”;ec1<=“0000”;when 7=>ec0<=“1000”;ec1<=“0000”;when 9=>ec0<=“1001”;ec1<=“0000”;when 10=>ec0<=“0000”;ec1<=“0001”;when 11=>ec0<=“0001”;ec1<=“0001”;when 12=>ec0<=“0010”;ec1<=“0001”;when 13=>ec0<=“0011”;ec1<=“0001”;when 14=>ec0<=“0100”;ec1<=“0001”;when 15=>ec0<=“0101”;ec1<=“0001”;when 16=>ec0<=“0110”;ec1<=“0001”;when 17=>ec0<=“0111”;ec1<=“0001”;when 18=>ec0<=“1000”;ec1<=“0001”;when 19=>ec0<=“1001”;ec1<=“0001”;when 20=>ec0<=“0000”;ec1<=“0010”;when 21=>ec0<=“0001”;ec1<=“0010”;when 22=>ec0<=“0010”;ec1<=“0010”;when 23=>ec0<=“0011”;ec1<=“0010”;when 24=>ec0<=“0100”;ec1<=“0010”;when 25=>ec0<=“0101”;ec1<=“0010”;when 26=>ec0<=“0110”;ec1<=“0010”;when 27=>ec0<=“0111”;ec1<=“0010”;when 28=>ec0<=“1000”;ec1<=“0010”;when 29=>ec0<=“1001”;ec1<=“0010”;when 30=>ec0<=“0000”;ec1<=“0011”;----------------------------當(dāng)在設(shè)定范圍內(nèi)時(shí),分別為個(gè)位十位譯碼并顯示
when others=>ec0<=“0000”;ec1<=“0000”;
-------------------------否則,LED燈顯示0
end case;
end process q3;-------------------------------該進(jìn)程用于南北方向倒計(jì)時(shí)的譯碼顯示
-------------------------q4:process(c2)
begin
case c2 is when 0=>nc0<=“0000”;nc1<=“0000”;when 1=>nc0<=“0001”;nc1<=“0000”;when 2=>nc0<=“0010”;nc1<=“0000”;when 3=>nc0<=“0011”;nc1<=“0000”;when 4=>nc0<=“0100”;nc1<=“0000”;when 5=>nc0<=“0101”;nc1<=“0000”;when 6=>nc0<=“0110”;nc1<=“0000”;when 7=>nc0<=“0111”;nc1<=“0000”;when 8=>nc0<=“1000”;nc1<=“0000”;when 9=>nc0<=“1001”;nc1<=“0000”;when 10=>nc0<=“0000”;nc1<=“0001”;when 11=>nc0<=“0001”;nc1<=“0001”;when 12=>nc0<=“0010”;nc1<=“0001”;when 13=>nc0<=“0011”;nc1<=“0001”;when 14=>nc0<=“0100”;nc1<=“0001”;when 15=>nc0<=“0101”;nc1<=“0001”;when 16=>nc0<=“0110”;nc1<=“0001”;when 17=>nc0<=“0111”;nc1<=“0001”;when 18=>nc0<=“1000”;nc1<=“0001”;when 19=>nc0<=“1001”;nc1<=“0001”;when 20=>nc0<=“0000”;nc1<=“0010”;when 21=>nc0<=“0001”;nc1<=“0010”;when 22=>nc0<=“0010”;nc1<=“0010”;when 23=>nc0<=“0011”;nc1<=“0010”;when 24=>nc0<=“0100”;nc1<=“0010”;when 25=>nc0<=“0101”;nc1<=“0010”;when 26=>nc0<=“0110”;nc1<=“0010”;when 27=>nc0<=“0111”;nc1<=“0010”;when 28=>nc0<=“1000”;nc1<=“0010”;when 29=>nc0<=“1001”;nc1<=“0010”;when 30=>nc0<=“0000”;nc1<=“0011”;---------------------------當(dāng)在設(shè)定范圍內(nèi)時(shí),分別為個(gè)位十位譯碼并顯示
when others=>nc0<=“0000”;nc1<=“0000”;
end process q4;-------------------------end architecture one;
----所有進(jìn)程結(jié)束-------------------------
八、仿真結(jié)果
1、clk為輸入脈沖;開始令reset為’1’,啟動(dòng)系統(tǒng),系統(tǒng)正常工作后值為’0; t0為紅綠燈循環(huán)時(shí)間,可自由修改,如果輸入值為’0010000’,則為16秒倒計(jì)時(shí)。如下圖:系統(tǒng)從0點(diǎn)開始運(yùn)行,處于夜間模式時(shí),倒計(jì)時(shí)都為“00”,兩個(gè)方向都為黃燈閃爍,紅綠燈都熄滅。
---------------------------否則,LED燈顯示0
end case;2、5:00之后,進(jìn)入到白天模式:從第1狀態(tài)(東西方向綠燈亮、南北方向紅燈)開始,倒計(jì)時(shí)從16秒開始遞減。倒計(jì)時(shí)第4秒后進(jìn)入第2 狀態(tài)(東西方向黃燈閃爍,南北方向紅燈亮)。
3、倒計(jì)時(shí)第0秒后進(jìn)入第3 狀態(tài)(東西方向紅燈亮,南北方向綠燈亮),倒計(jì)時(shí)再?gòu)?6秒開始遞減;倒計(jì)時(shí)第4秒后進(jìn)入第4 狀態(tài)(東西方向紅燈亮,南北方向黃燈閃爍);倒計(jì)時(shí)第0秒后進(jìn)入第1 狀態(tài)(東西方向綠燈亮,南北方向紅燈亮),倒計(jì)時(shí)再?gòu)?6秒開始遞減
。如此循環(huán)。
4、當(dāng)計(jì)時(shí)器到22:00時(shí),再次進(jìn)入夜間模式:東西南北方向黃燈閃爍;到次日5:00時(shí)又回到白天模式。如此循環(huán)。
九、討論與改進(jìn)
特點(diǎn):
1、在整個(gè)設(shè)計(jì)過程中,分進(jìn)程實(shí)現(xiàn)整個(gè)功能,簡(jiǎn)單明了;
2、狀態(tài)機(jī)的功能和優(yōu)點(diǎn)得到了較為完整的體現(xiàn);
3、分夜間和白天模式不同,系統(tǒng)自動(dòng)調(diào)節(jié);
4、黃燈以閃爍的形式亮;系統(tǒng)運(yùn)行后紅綠燈循環(huán)點(diǎn)亮的時(shí)間也可自由修改。不足:
1、整個(gè)系統(tǒng)啟動(dòng)后從夜間0點(diǎn)開始運(yùn)行,而不能隨意調(diào)為哪個(gè)時(shí)間的交通燈狀態(tài),只能從程序中改,不能手動(dòng)調(diào)節(jié);
2、整個(gè)功能還是比較簡(jiǎn)單,未能分左右轉(zhuǎn)和直行的情況;
3、緊急情況處理時(shí)也無(wú)特殊處理的設(shè)置。
改進(jìn):
1、在進(jìn)程中可增加一個(gè)輸入量,用以控制系統(tǒng)的時(shí)鐘時(shí)間,方便調(diào)節(jié)模式和交通燈狀態(tài);
2、在進(jìn)程中可加入幾個(gè)紅綠燈狀態(tài)來(lái)分別控制東西方向和南北方向的左轉(zhuǎn)、右轉(zhuǎn)和直行的紅綠燈狀態(tài);
3、在原有程序的基礎(chǔ)上,可通過增加一個(gè)輸入量來(lái)控制一種特殊狀態(tài),用以控制特殊情況的處理,視該特殊情況而定。
二○一○年九月三日
第三篇:電壓采樣電路設(shè)計(jì)總結(jié)報(bào)告
電壓采樣電路設(shè)計(jì)總結(jié)報(bào)告
專業(yè)班級(jí): 電氣工程及其自動(dòng)化
實(shí)習(xí)日期:2013年7月22日---7月26日
2013年7月26日
目錄
一、設(shè)計(jì)要求及目的:................................................2
二、所用元件:......................................................2
三、設(shè)計(jì)思路:......................................................2
1、電源部分電路.................................................3
2、電流-電壓轉(zhuǎn)化電路............................................4
3、電壓抬升電路:...............................................5
4、二階濾波電路.................................................6
5、方波轉(zhuǎn)換電路.................................................7
四、課程設(shè)計(jì)中出現(xiàn)的問題及解決方案..................................9
五、設(shè)計(jì)總結(jié)........................................................9
一、設(shè)計(jì)要求及目的:
1、設(shè)計(jì)目標(biāo):設(shè)計(jì)一個(gè)電壓采樣電路,對(duì)220v交流信號(hào)進(jìn)行采樣,并利用運(yùn)放對(duì)其進(jìn)行處理,使其成為數(shù)模轉(zhuǎn)換器(A/D)能夠處理的信號(hào)。
2、基本要求:根據(jù)元件列表設(shè)計(jì)采樣電路及其工作電源回路,將220v交流輸入信號(hào)變?yōu)?-3v信號(hào),并對(duì)其進(jìn)行二階有源濾波,濾除高頻干擾信號(hào),濾波后的信號(hào)平滑無(wú)畸變。
3、擴(kuò)展:設(shè)計(jì)電路,將交流信號(hào)變?yōu)榉讲?,過零點(diǎn)處干凈無(wú)毛刺信號(hào)。
4、設(shè)計(jì)目的:
1)加強(qiáng)自主性學(xué)習(xí)、研究性學(xué)習(xí),加強(qiáng)團(tuán)隊(duì)合作,提高創(chuàng)新意識(shí); 2)通過該設(shè)計(jì)學(xué)會(huì)并掌握常用電子元器件的選擇和使用方法; 3)結(jié)合所學(xué)的電子電路的理論知識(shí)完成電壓采樣課程設(shè)計(jì)。
二、所用元件:
變壓器
1個(gè)、1N4007單向二極管
5個(gè)、470uF電解電容
4個(gè) 芯片7815和7915、緊密電流型電壓互感器
1個(gè)、LM324芯片 10K電位器
1個(gè)、201pF電容
2個(gè)
電阻:110KΩ1個(gè)、10KΩ5個(gè)、1Ω1個(gè)、1KΩ2個(gè)、470Ω1個(gè)、200Ω1個(gè)
三、設(shè)計(jì)思路:
電壓采樣電路基礎(chǔ)模塊的設(shè)計(jì)思路首先是220v交流電源經(jīng)過電流型電壓互感器使強(qiáng)電轉(zhuǎn)換為弱電,再通過電流/電壓變換電路使其輸出電壓為-1.5v~+1.5v,接著通過一個(gè)反相加法運(yùn)算電路使其輸出電壓抬升為0~3v,最后經(jīng)過一個(gè)二階有源低通濾波電路對(duì)其進(jìn)行濾波,濾除高頻干擾信號(hào),濾波后的信號(hào)平滑無(wú)畸變,最后用一遲滯比較器將正弦波變成方波信號(hào)。
總電路圖為:
1、電源部分電路
電路圖為:
分析:通過電路圖中三個(gè)萬(wàn)用表的示數(shù)可知,變壓器輸出交流電的有效值為15.078V,輸出的直流電壓為+15.517V和-15.633V,符合要求。
此電壓用于給給芯片LM324提供直流電源,以及提升電壓用。
1)電源變壓器:是降壓變壓器,它將電網(wǎng)220V交流電壓變換成符合需要的交流電壓,并送給整流電路,變壓器的變比由變壓器的副邊電壓確定。2)整流電路:利用4個(gè)單向?qū)щ娫?,?0Hz的正弦交流電變換成脈動(dòng)的直流電。
3)濾波電路:由于經(jīng)過整流的直流脈沖電壓還含有較大的紋波,因此需要設(shè)計(jì)濾波電路將整流電路輸出電壓中的交流成分大部分加以濾除,從而得到比較平滑的直流電壓,用兩個(gè)470uF的電解電容。
4)穩(wěn)壓電路:穩(wěn)壓電路的功能是使輸出的直流電壓穩(wěn)定,不隨交流電網(wǎng)電壓、負(fù)載的變化而變化,用7815和7915芯片。
2、電流-電壓轉(zhuǎn)化電路
思路:220V(有效值)交流電源經(jīng)過110K歐姆的電阻后電流變?yōu)?mA(有效值),經(jīng)過2mA/2mA的精密電流型的電壓互感器后電流仍未2mA,根據(jù)運(yùn)放的虛短虛斷的原理可知,運(yùn)放輸出的電壓峰峰值為-1.5V到+1.5V。
計(jì)算過程為:1.8mA*580Ω*√2=1.47V(由于給的功率電阻是121K的,所以電流為1.8mA)電路圖為:
輸出波形圖為:
3、電壓抬升電路:
思路:利用反向加法器的原理將正負(fù)1.5V的電壓提升到0-3V,所用提升電壓為直流電源提供的-15.633V電壓,通過參數(shù)選擇可以實(shí)現(xiàn)此模塊。
電路圖為:
計(jì)算公式為:U02=-[U01*1KΩ/1KΩ+(-15)*1KΩ/10KΩ],U02為0-3V的正弦波。其中470歐姆的電阻是平衡電阻,其計(jì)算過程為1K//1K//10K,三個(gè)電阻并聯(lián)的阻值。
輸出波形為:
經(jīng)測(cè)試后在示波器上得到的波形與仿真波形相似,但稍有毛刺。
4、二階濾波電路
思路:利用所學(xué)的二階低通濾波電路可以設(shè)計(jì)出符合要求的濾波電路
電路圖為:
根據(jù)其要求對(duì)0-3V電壓進(jìn)行二階有源濾波,濾除高頻干擾信號(hào),濾波后的信號(hào)平滑無(wú)畸變。
根據(jù)二階低通有源濾波的公式得:
f0=1/(2*3.14*R*C),我們選擇電阻值為1MΩ,電容值為201pF,故 f0=1/(2*3.14*1*10*201*10)=792.2Hz,近似為800Hz,符合要求。由“虛短”和“虛斷”的特點(diǎn)可得方程:
U+=U-=U03*R8/(R7+R8)=U03/(1+R8/R7)=U03/Aup,應(yīng)使U+=U-=U03 得Aup =1,則取R7=2MΩ,R8=1Ω,目的是使濾波的低通增益為1,不會(huì)改變之前0—3v電壓的波形。經(jīng)濾波后的U03的波形為0-3V正弦波。
輸出波形圖為: 6
2從示波器上測(cè)試的結(jié)果稍微有點(diǎn)相位差,兩個(gè)波形并不是完全的重合,但是誤差不大,分析原因?yàn)殡娮栌幸欢ǖ恼`差。
5、方波轉(zhuǎn)換電路
思路:利用遲滯比較器,不用過零比較器的原因是,過零比較器是輸入信號(hào)與零點(diǎn)相比較,但正弦波的零點(diǎn)會(huì)有抖動(dòng),所以方波會(huì)出現(xiàn)脈沖,用遲滯比較器可以將零點(diǎn)越過去。然后后面加一單向?qū)ǖ亩O管,只留下方波的上半部分。
電路圖為:
分析過程為:
R11之前接的是第一個(gè)運(yùn)放的輸出U01即峰值1.5V的正弦波,設(shè)計(jì)要求中,需要將輸出波形的毛刺去除,所以所用電路為遲滯比較器。為運(yùn)放的正輸入端電壓近似為0,有公式得:
U+=U04*R14/(R14+R11),則應(yīng)使R14遠(yuǎn)小于R11。經(jīng)多次的仿真調(diào)試,我們選擇R14=150Ω,R11=10KΩ.波形圖為:
所焊的電路在示波器上檢測(cè)的波形雖有一定的相位差,但總體上符合要求,分析產(chǎn)生相移的原因?yàn)椋玫氖沁t滯比較器,不可能嚴(yán)格過零點(diǎn)只能盡量去接近零點(diǎn)。
四、課程設(shè)計(jì)中出現(xiàn)的問題及解決方案
1、設(shè)計(jì)電路首先在電腦上用軟件仿真,以此來(lái)選取參數(shù),不同的仿真軟件可能有不同的結(jié)果,運(yùn)放也會(huì)出現(xiàn)問題,不過通過不斷的更改參數(shù),不斷的理論計(jì)算在仿真,最終出現(xiàn)了各部分波形圖。
2、這次所用的芯片是LM324,是四個(gè)運(yùn)放集合在一個(gè)芯片上,所以布局很重要,通過組內(nèi)討論,將繞線最少,電路最簡(jiǎn)單為目的。
3、剛開始輸出的方波和正弦波有一定的相位差,分析其原因是電阻參數(shù)選取的不合適,運(yùn)放是用作電壓比較器用,所以輸入端電壓越接近零越好。通過改變參數(shù),最終在老師那檢測(cè)的結(jié)果基本符合要求。
五、設(shè)計(jì)總結(jié)
1、通過近幾天的實(shí)習(xí),我們學(xué)習(xí)了采樣電路設(shè)計(jì)的相關(guān)知識(shí),遇到問題互相討論最終解決;
2、實(shí)踐出真知,無(wú)論課本上講的內(nèi)容如何,只有通過實(shí)踐才能獲得真正的真 理,所以在以后的學(xué)習(xí)生活中要理論聯(lián)系實(shí)際,多動(dòng)手動(dòng)腦;
3、團(tuán)隊(duì)的力量大于個(gè)人,我們?nèi)朔止っ鞔_并將遇到的各種問題討論后一一解決,所以只有團(tuán)隊(duì)合作,才能把事情做好;
4、這次實(shí)習(xí)進(jìn)一步的提高了我們的焊接與整體布局能力,對(duì)于電路的焊接在技術(shù)上更加熟練,在布局上更加美觀,讓學(xué)長(zhǎng)檢查電路時(shí),學(xué)長(zhǎng)建議能走錫的話盡量少走線;
5、我們對(duì)于Multism軟件有了更深一層次的掌握與運(yùn)用,在今后的學(xué)習(xí)中會(huì)有很大的幫助。
下面是我們的電路實(shí)物圖和布局圖
第四篇:數(shù)字電子鐘邏輯電路設(shè)計(jì)總結(jié)報(bào)告
課程設(shè)計(jì)總結(jié)報(bào)告
寫總結(jié)報(bào)告是對(duì)學(xué)生寫科學(xué)論文和科研總結(jié)報(bào)告的能力訓(xùn)練。總結(jié)報(bào)告包括以下內(nèi)容: 1.報(bào)告名稱
2.內(nèi)容摘要(<300字)3.設(shè)計(jì)內(nèi)容及要求
4.方案比較,畫出系統(tǒng)框圖,確定使用的方案。
5.單元電路設(shè)計(jì)、參數(shù)計(jì)算和器件的選擇(含器件功能表)并說明單元電路工作原理。
6.畫出完整的電路圖 7.安裝調(diào)試內(nèi)容,包括:
(1)使用的主要儀器和儀表;(2)調(diào)試電路的方法和技巧;
(3)測(cè)試的數(shù)據(jù)和波形,并與計(jì)算結(jié)果比較分析;(4)調(diào)試中出現(xiàn)的故障、原因及排除方法。
8.總結(jié)設(shè)計(jì)電路的特點(diǎn)和方案的優(yōu)缺點(diǎn),提出進(jìn)一步的改進(jìn)意見和未來(lái)的發(fā)展。9.列出所用的元器件 10.列出參考文獻(xiàn)
第五篇:基于FPGA的交通燈控制電路設(shè)計(jì)
基于FPGA的交通燈控制電路設(shè)計(jì)
關(guān)鍵字: 交通信號(hào)機(jī) FPGA 脈沖發(fā)生器
目前交通燈廣泛應(yīng)用于道路交通建設(shè)中。本文設(shè)計(jì)一個(gè)十字路口交通燈控制電路,要求東西、南北兩條干道的紅、綠、黃交通燈按要求循環(huán)變化,并以倒計(jì)時(shí)方式指示干道通行或禁止的維持時(shí)間。在QuartusⅡ軟件環(huán)境中設(shè)計(jì)、仿真,并在FPGA實(shí)驗(yàn)板上實(shí)現(xiàn)所設(shè)計(jì)電路的功能。
系統(tǒng)概述
1.1 設(shè)計(jì)思想
基于FPGA的交通燈系統(tǒng)控制設(shè)計(jì)包括4大模塊,分別為脈沖發(fā)生、狀態(tài)定時(shí)、交通燈閃爍的控制、閃爍時(shí)間的控制,基本原理如圖1所示。
1.2 總體工作情況
交通燈控制要求如表1所示。
該設(shè)計(jì)的交通燈控制分為6個(gè)狀態(tài)。由于各狀態(tài)持續(xù)時(shí)間不同,所以電路的核心控制部分是狀態(tài)機(jī)和定時(shí)器,狀態(tài)機(jī)在定時(shí)器觸發(fā)下周期性循環(huán),狀態(tài)碼控制6個(gè)燈以一定的規(guī)律變化。變化情況如圖2所示。
系統(tǒng)脈沖由FPGA開發(fā)板晶振經(jīng)過分頻電路實(shí)現(xiàn)。狀態(tài)定時(shí)由74190可逆十進(jìn)制計(jì)數(shù)器和T’觸發(fā)器實(shí)現(xiàn),只要置數(shù)合理,翻轉(zhuǎn)信號(hào)到位,就可以使電路在東西(I)、南北(J)兩個(gè)控制狀態(tài)間翻轉(zhuǎn)。紅、黃、綠燈的閃爍由7485數(shù)字比較器和組合邏輯控制,其中7485數(shù)字比較器用于比較計(jì)數(shù)器當(dāng)前持續(xù)狀態(tài)和所需要的狀態(tài)全部時(shí)間,并做出相應(yīng)的變化。組合邏輯控制由AHDL文件編寫真值表實(shí)現(xiàn)。時(shí)間顯示由AHDL文件編寫真值表實(shí)現(xiàn),輸入正確的邏輯,七段譯碼電路即能得到正確的時(shí)間顯示。
1.3 各功能的組成
整個(gè)電路可以分為4大部分,包括脈沖發(fā)生、狀態(tài)定時(shí)、時(shí)間顯示和數(shù)字比較一組合邏輯控制。
1.3.1 脈沖發(fā)生
脈沖發(fā)生器為整個(gè)系統(tǒng)提供驅(qū)動(dòng),將輸入端分配給FPGA實(shí)驗(yàn)板的PIN55引腳,則會(huì)由實(shí)驗(yàn)板上產(chǎn)生頻率為10 MHz的輸入脈沖,用7片7490,每一級(jí)都構(gòu)成10分頻電路,使頻率從10 MHz降低為1Hz。
1.3.2 狀態(tài)定時(shí)
狀態(tài)定時(shí)可由預(yù)置BCD碼初值的74190級(jí)聯(lián)實(shí)現(xiàn),構(gòu)成減計(jì)數(shù)器。級(jí)聯(lián)原則是:低位計(jì)數(shù)器從全0狀態(tài)變?yōu)樽畲蟠a值狀態(tài)時(shí)可使高位計(jì)數(shù)器減1。級(jí)聯(lián)方式分為異步和同步兩種,本文采取的是異步級(jí)聯(lián)方式,即低位計(jì)數(shù)器溢出信號(hào)控制高位計(jì)數(shù)器的記數(shù)脈沖輸入端??筛鶕?jù)計(jì)數(shù)器的時(shí)鐘觸發(fā)方式,在低位計(jì)數(shù)器狀態(tài)碼從全“0”變?yōu)樽畲蟠a值的瞬間,為高位計(jì)數(shù)器提供有效的計(jì)數(shù)脈沖邊沿。具體做法是將低片位的溢出信號(hào)RCON端口接到高片位的計(jì)數(shù)脈沖CLK,實(shí)現(xiàn)兩位BCD碼的置數(shù)、翻轉(zhuǎn)和借位,使系統(tǒng)表示的數(shù)字能在22~16之間循環(huán)。
74190功能說明:
(1)GN為計(jì)數(shù)器使能控制端,低電平有效。當(dāng)GN為高電平時(shí),禁止計(jì)數(shù)。
(2)DNUP為計(jì)數(shù)方式控制,接高電平為減計(jì)數(shù),接低電平為加計(jì)數(shù)。
(3)LDN為異步預(yù)置數(shù)控制。當(dāng)LDN為低電平時(shí),計(jì)數(shù)器狀態(tài)QD,QC,QB,QA分別等于D,C,B,A。
(4)計(jì)數(shù)器位序由高至低順序?yàn)镼D,QC,QB,QA。QD為最高位MSB,QA為最低位LSB。
(5)計(jì)數(shù)脈沖CLK上升沿有效。
(6)當(dāng)計(jì)數(shù)器輸出QDQCQBQA為十進(jìn)制加計(jì)數(shù)的最大狀態(tài)碼“1001”或?yàn)闇p計(jì)數(shù)的最小狀態(tài)碼全“0”時(shí),極值狀態(tài)碼指示MAX/MIN輸出為高電平。
(7)當(dāng)極值狀態(tài)碼指示MAX/MIN為高電平且CLK為低電平時(shí),溢出信號(hào)RCON為低電平,即RCON與計(jì)數(shù)脈沖同步。
系統(tǒng)記數(shù)脈沖為1 Hz時(shí),如表2所示,當(dāng)I狀態(tài)(東西控制狀態(tài))的定時(shí)時(shí)間為22 s,計(jì)數(shù)器應(yīng)該先預(yù)置22的BCD碼;同理,J狀態(tài)(南北控制狀態(tài))之前應(yīng)該預(yù)置16的BCD碼。
狀態(tài)計(jì)時(shí)電路由兩片74190級(jí)聯(lián)而成,構(gòu)成22和16自翻轉(zhuǎn)的電路。其要解決的核心問題包括置數(shù),翻轉(zhuǎn)和借位。根據(jù)74190芯片的特點(diǎn),可分析其實(shí)現(xiàn)原理如圖4所示,通過溢出信號(hào)RCON的上升沿實(shí)現(xiàn)借位,使得數(shù)字能夠從20到19,個(gè)位向十位借位,順利過渡。
置數(shù)和翻轉(zhuǎn)之間有先后關(guān)系,即須先置數(shù)后翻轉(zhuǎn)。如表3所示,分析兩個(gè)BCD碼各位特點(diǎn),可知兩者D7D6D3D0位均為1,D1位均為0,而D5D4D2位不同,如圖5,D5D4D2位由狀態(tài)電平S來(lái)控制,當(dāng)為I狀態(tài)時(shí),計(jì)數(shù)器的預(yù)置的數(shù)為D5=0,D4=D2=1,而為J狀態(tài)時(shí),計(jì)數(shù)器的預(yù)置的數(shù)為D5=1,D4=D2=0,根據(jù)74190的功能,將2片74190的MAX/MIN引出,通過與非門,分別連在高位和低位的LDN置數(shù)端,通過分析可知,當(dāng)計(jì)數(shù)器從01減到00時(shí)候,高低位的MAX/MIN均為高電平,經(jīng)過與非門以后為低電平,74190被置數(shù),其置數(shù)值由狀態(tài)S來(lái)決定,S是由LDN端信號(hào)經(jīng)過一個(gè)T’觸發(fā)器決定的,即LDN信號(hào)每置數(shù)一次,S翻轉(zhuǎn)1次,從而區(qū)分16和22狀態(tài)。按這個(gè)結(jié)構(gòu),可分別置數(shù)16和22,使其實(shí)現(xiàn)自翻轉(zhuǎn)。
圖5為狀態(tài)定時(shí)模塊的實(shí)際連接圖。
1.3.3 時(shí)間顯示
時(shí)間顯示要用到7段顯示譯碼電路,由于是兩位BCD碼,故用二選一數(shù)據(jù)選擇器。選擇端S接一個(gè)頻率很高的方波(如1 kHz);數(shù)據(jù)比較器的輸出和1 Hz脈沖作為AHDL模塊的輸入,即可正確顯示時(shí)間。
為正確顯示時(shí)間,用AHDL文件自編譯碼真值表如下:
1.3.4 數(shù)字比較一組合邏輯控制
該模塊將狀態(tài)定時(shí)模塊輸出的時(shí)間與時(shí)間節(jié)點(diǎn)進(jìn)行比較,從而確定電路處于22 s或者16 s的具體的某個(gè)狀態(tài)。由表1可知,東西(I)或南北(J)的控制狀態(tài)都有3個(gè)階段的控制邏輯,分別對(duì)應(yīng)3個(gè)時(shí)間段:1~3 s,4~6 s和大于6 s,因此,采用數(shù)字比較器進(jìn)行比較,確定定時(shí)值小于4 s或大于6 s,方法如圖7所示,采用4片7485數(shù)字比較器,兩兩級(jí)聯(lián),其中一個(gè)由狀態(tài)定時(shí)模塊的輸出與4即二進(jìn)制0100比較;另一個(gè)由狀態(tài)定時(shí)模塊的輸出與6即二進(jìn)制0110比較。
編寫組合邏輯真值表,將狀態(tài)信號(hào)S,兩個(gè)數(shù)字比較器的輸出Y1,Y2和1 Hz脈沖作為輸入,各個(gè)燈的狀態(tài)作為輸出。從而根據(jù)邏輯關(guān)系得出對(duì)應(yīng)時(shí)間電路的狀態(tài),控制紅、黃、綠燈處于不同的狀態(tài)。S判斷電路處于22 s狀態(tài)還是16 s狀態(tài),Y1,Y2區(qū)分東西、南北六個(gè)階段狀態(tài),1 Hz脈沖實(shí)現(xiàn)綠燈閃爍。電路的組構(gòu)與調(diào)試
來(lái)用QuartusⅡ軟件設(shè)計(jì)各個(gè)模塊,并進(jìn)行仿真。確認(rèn)結(jié)果后,下載至FPGA實(shí)驗(yàn)板中,進(jìn)行相應(yīng)的硬件調(diào)試,調(diào)試結(jié)果與仿真結(jié)果相一致。圖8為仿真波形,系統(tǒng)上電需要調(diào)整的過程,因此電路正常工作前重復(fù)了22s的狀態(tài)。