




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、目錄第一章 設(shè)計原理11.1 使用vhdl語言實現(xiàn)對fpga器件的編程11.2 使用的設(shè)計工具11.2.1 硬件部分11.2.2 軟件部分11.3 軟件框圖11.4 紅綠燈拓展模塊2第二章 程序設(shè)計及分析32.1 分頻器器件的設(shè)計32.2 數(shù)碼管顯示驅(qū)動器件的設(shè)計32.3 頂層器件設(shè)計42.3.1 按鍵消抖42.3.2 數(shù)碼管掃描顯示52.3.3 24小時時鐘52.3.4 改變時間設(shè)定62.3.5 交通燈主控程序7第三章 使用說明及實驗結(jié)果83.1 使用說明83.2 實驗結(jié)果9第四章 結(jié)論與體會12附錄 程序源碼13第一章 設(shè)計原理1.1 使用vhdl語言實現(xiàn)對fpga器件的編程fpga(fi
2、eldprogrammable gate array),即現(xiàn)場可編程門陣列,它是在pal、gal、cpld等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(asic)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點。對于目前的fpga器件,可以使用硬件描述語言(verilog或vhdl)完成電路設(shè)計,可以經(jīng)過簡單的綜合與布局,快速的燒錄至 fpga 上進(jìn)行測試,是現(xiàn)代 ic設(shè)計驗證的技術(shù)主流。這些可編輯元件可以被用來實現(xiàn)一些基本的邏輯門電路(比如and、or、xor、not)或者更復(fù)雜一些的組合功能比如解碼器或數(shù)學(xué)方程式。1.2 使用的
3、設(shè)計工具1.2.1 硬件部分 cyclone ii是一款fpga器件,于2004年由altera公司推出。cyclone ii fpga的成本比第一代cyclone器件低30%,邏輯容量大了三倍多,同時具有豐富的i/o引腳。實驗板采用ep2c5t144c8芯片并配有sdram芯片,時鐘頻率為50mhz。同時,實驗板包含4個數(shù)碼管以及5個按鍵,同時將豐富的i/o口用排針進(jìn)行了引出。從系統(tǒng)資源以及運(yùn)行速度的方面考慮,均足以完成智能交通燈的設(shè)計。1.2.2 軟件部分quartus ii 是altera公司的綜合性pld/fpga開發(fā)軟件,原理圖、vhdl、veriloghdl以及ahdl(alter
4、a hardware 支持description language)等多種設(shè)計輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計輸入到硬件配置的完整pld設(shè)計流程。vhdl語言是一種用于電路設(shè)計的高級語言。它在80年代的后期出現(xiàn)。具有設(shè)計靈活、支持廣泛、易于修改、獨(dú)立于器件的設(shè)計或工藝等優(yōu)秀的特性。十分適合于對fpga器件進(jìn)行編程。1.3 軟件框圖本系統(tǒng)包含一個頂層以及兩個子器件(分頻器以及數(shù)碼管顯示驅(qū)動)。分頻器將系統(tǒng)時鐘分為1000hz,1hz等待信號供頂層程序使用。頂層包含了整個系統(tǒng)關(guān)鍵性控制邏輯,在接收到分頻器時鐘信號以及按鍵信號后,由不同的進(jìn)程進(jìn)行處理,同時不同的進(jìn)程間通過標(biāo)志位信
5、號進(jìn)行通信。處理完成的信息將傳遞給led直接輸出紅綠燈信號或數(shù)碼管驅(qū)動器件進(jìn)行進(jìn)一步的處理后輸出給數(shù)碼管進(jìn)行顯示。圖1.11.4 紅綠燈拓展模塊為了達(dá)到更好的人機(jī)交互效果,本系統(tǒng)將紅綠燈在電路板上通過不同的顏色的led進(jìn)行實物化。模塊原理圖如下:圖1.2pcb設(shè)計如下:圖1.3第二章 程序設(shè)計及分析2.1 分頻器器件的設(shè)計本系統(tǒng)將分頻器單獨(dú)設(shè)置為一個器件,目的是便于對時間倍率進(jìn)行修改以及方便調(diào)用。具體思路如下:(以1ms為周期的輸出信號為例)圖2.12.2 數(shù)碼管顯示驅(qū)動器件的設(shè)計實驗板的數(shù)碼管為共陽連接,含有4個位選信號以及8個段選信號,通過控制位選及段選可以實現(xiàn)數(shù)碼管的顯示。該子器件的輸入
6、信號為0-15的整數(shù),輸出為顯示16進(jìn)制相應(yīng)字符的段選信號。程序主體采用case語句,對輸入信號進(jìn)行選擇并相應(yīng)的輸出。圖2.22.3 頂層器件設(shè)計2.3.1 按鍵消抖本系統(tǒng)對于按鍵采取了消抖的處理辦法,可以有效的增加穩(wěn)定性。消抖的實現(xiàn)原理基于計數(shù)器,當(dāng)檢測到有按鍵按下則開始計數(shù),當(dāng)計數(shù)達(dá)到設(shè)定值時給出按鍵按下的信號并執(zhí)行相應(yīng)功能,其中key5實現(xiàn)模式選擇,其余按鍵實現(xiàn)對時間設(shè)定的更改。圖2.32.3.2 數(shù)碼管掃描顯示實驗板采用了四個共陽的數(shù)碼管,若需要讓每個數(shù)碼管都顯示不一樣的內(nèi)容,則需要對數(shù)碼管進(jìn)行掃描顯示。本系統(tǒng)采用1000hz的頻率對數(shù)碼管進(jìn)行掃描顯示,實際效果可以穩(wěn)定的顯示而不會出現(xiàn)
7、閃爍的現(xiàn)象。程序設(shè)計方面采用了兩個process,分別對數(shù)碼管位選進(jìn)行掃描以及輸入段選信號圖2.4圖2.52.3.3 24小時時鐘為了實現(xiàn)白天與夜間的模式切換效果,需要加入24小時制的時鐘。本系統(tǒng)對于時鐘的實現(xiàn)依然基于計數(shù)器。具體流程如下:對分頻器輸出的分鐘信號進(jìn)行檢測,當(dāng)檢測到上升沿時執(zhí)行計數(shù),當(dāng)達(dá)到該位最大值時執(zhí)行進(jìn)位與清零。圖2.62.3.4 改變時間設(shè)定本程序?qū)崿F(xiàn)了對行人通行時間,汽車通行時間以及夜間時間段的設(shè)定。設(shè)定方式為由按鍵實現(xiàn)加減。主要代碼已經(jīng)內(nèi)嵌于按鍵消抖程序中。圖2.6圖2.72.3.5 交通燈主控程序本程序?qū)崿F(xiàn)了對白天夜間模式的判斷以及不同模式下對紅綠燈的控制。程序框圖如
8、下:圖2.8具體程序代碼詳見附錄。第三章 使用說明及實驗結(jié)果3.1 使用說明本系統(tǒng)基本實現(xiàn)了題目要求的所有功能。具備了白天、夜間模式的功能及其自動切換及其時間點設(shè)置,行人、汽車通行時間設(shè)置,24小時電子鐘,通行時間倒數(shù)等功能。同時為了實現(xiàn)更好的人機(jī)交互以及獲得更明顯的實驗效果,接入了專用的紅綠燈模塊并將電子時鐘加快了1000倍,紅綠燈計時器加快了10倍。具體使用方法如下:(1)初始值:系統(tǒng)上電后時鐘初始值為0點。夜間時間初始值為22:00-8:00,行人通行時間,車輛通行時間初始值分別為15s,30s.(2)系統(tǒng)模式選擇:數(shù)碼管共用4種顯示模式,可以通過key5(s6)對模式進(jìn)行切換(上電后將
9、默認(rèn)進(jìn)入模式0)。同時,在不同模式下按鍵也具有不同的功能。模式0:電子時鐘顯示模式(為上電后的默認(rèn)顯示模式),左邊兩個數(shù)碼管顯示小時,右邊兩個數(shù)碼管顯示分鐘。四個數(shù)碼管共同構(gòu)成當(dāng)天系統(tǒng)時間(是白天、夜間的切換的基準(zhǔn)時間)。模式1:通行剩余時間顯示。右邊兩個數(shù)碼管將顯示紅綠燈當(dāng)前狀態(tài)還將持續(xù)的剩余時間。當(dāng)進(jìn)入夜間模式且無行人通過時,數(shù)碼管將顯示-。模式2:行人,車輛通行時間設(shè)置模式。此模式下左邊兩個數(shù)碼管顯示車輛通行時間,右邊兩個數(shù)碼管為行人通行時間。按下s2將使車輛通行時間+1s,按下s3將使車輛通行時間+1s。同樣,s4與s5將分別控制行人通行時間的改變。模式3:夜間時間點設(shè)置模式。此模式下
10、左邊兩個數(shù)碼管顯示進(jìn)入白天的時間點,右邊兩個數(shù)碼管顯示進(jìn)入夜間的時間點(單位均為小時)。同樣,此時s2、s3將控制進(jìn)入白天時間點,s4、s6將控制進(jìn)入夜間的時間點。(3)白天模式:當(dāng)系統(tǒng)時鐘為設(shè)定的白天區(qū)間內(nèi),交通燈將執(zhí)行白天模式,此時人行道和車行道的紅綠燈自動切換,人行道和車行道的通行時間分別為30秒和15秒。同時車行道的綠燈到紅燈的切換有3秒過渡時間(亮黃燈)。(4)夜間模式:當(dāng)系統(tǒng)時鐘為設(shè)定的夜間區(qū)間內(nèi),交通燈將執(zhí)行白天模式,無行人過馬路時,車行道持續(xù)亮綠燈讓車通行,直到有行人按過街按鈕,才執(zhí)行人、車通行的切換。行人按下按鈕后延時30秒,切換到人行道通行15秒,然后切換到車通行。此后,若
11、無人按過街按鈕,則保持車通行狀態(tài),若繼續(xù)有人按下過街按鈕,則執(zhí)行人、車分別15秒和30秒的輪換通行。車行道的綠燈到紅燈的切換有3秒過渡時間(亮黃燈),人行道則只有紅、綠燈,且無過渡時間。3.2 實驗結(jié)果具體實驗結(jié)果可以掃描以下二維碼觀看。圖3.1部分視頻截圖如下:圖3.2圖3.3圖3.4圖3.5圖3.6圖3.7圖3.8第四章 結(jié)論與體會通過借助網(wǎng)絡(luò)工具以及對書本的學(xué)習(xí),本次成功的完成了智能交通燈的設(shè)計,并實現(xiàn)了題目要求的所有功能。但是過程中卻不是很順利,主要體現(xiàn)在按鍵的使用以及不同process間通過信號量進(jìn)行通信等,特別是當(dāng)使用較多信號進(jìn)行參數(shù)傳遞時經(jīng)常忽略信號量的值不能在兩個process
12、中同時進(jìn)行修改,而導(dǎo)致不能成功通過編譯。另外對于編程的整體思路也與之前接觸過的單片機(jī)大為不同,單片機(jī)的mcu只支持單個進(jìn)程運(yùn)行,需要加入各種中斷處理后才可以做到宏觀上的多進(jìn)程并行運(yùn)行,而fpga則支持?jǐn)?shù)個進(jìn)程同時運(yùn)行,大大的提高了代碼運(yùn)行速度的同時卻導(dǎo)致了整體設(shè)計構(gòu)思發(fā)生了較大的轉(zhuǎn)變。另外,對于程序模塊化的設(shè)計也有了較為初步的理解,通過模塊化的方法可以使代碼的可讀性、可移值性均大大的提高,同時還十分便于修改,甚至由于可以實現(xiàn)模塊化調(diào)用而大大縮減了代碼量。總結(jié):fpga很強(qiáng)大,我學(xué)會了很多。附錄 程序源碼-by hypo 20170520 交通燈主程序library ieee;use ieee.
13、std_logic_1164.all;entity test isport( key1,key2,key3,key4,key5,key6: in std_logic;-按鍵輸入 sysclk: in std_logic;-時鐘輸入led_c_r,led_c_y,led_c_g,led_p_r,led_p_g: out std_logic;-led輸出seg7data:out std_logic_vector(7 downto 0);-數(shù)碼管位選seg7com: out std_logic_vector(3 downto 0)-數(shù)碼管段選);end test;architecture main
14、of test iscomponent seg7led is -數(shù)碼管port (int_in: in integer range 0 to 16;data_out:out std_logic_vector(7 downto 0);end component seg7led;component clkdiv is-分頻器 port( clk_in:in std_logic; -時鐘信號輸入 clk_out_ms:out std_logic; -毫秒信號輸出 clk_out_s:out std_logic; -秒信號輸出 clk_out_min:out std_logic; -分鐘信號輸出 cl
15、k_out_h:out std_logic; -時鐘信號輸出 clk_out_50ms : out std_logic ); end component clkdiv;-數(shù)碼管掃描signal tmp_seg7data :integer range 0 to 16;signal data_count_seg:integer range 0 to 10;-分頻器輸出signal tmp_sig_s,tmp_sig_ms,tmp_sig_min,tmp_sig_h,tmp_sig_50ms :std_logic;-分頻器輸出時鐘信號-24小時時鐘signal data_min_low:intege
16、r range 0 to 20;signal data_min_high:integer range 0 to 10;signal data_min:integer range 0 to 100;signal data_h_low:integer range 0 to 20;signal data_h_high:integer range 0 to 10;signal data_h:integer range 0 to 100;-數(shù)碼管顯示模式切換signal data_mode: integer range 0 to 10:=0;signal data_count_key:integer r
17、ange 0 to 100;-交通燈主控程序signal led_p :integer range 0 to 3;-車道燈signal led_c :integer range 0 to 3:=1;-人行道燈signal key_flag :integer range 0 to 1:=0;signal data_time_count:integer range 0 to 1000;-時間計數(shù)signal data_mode_led: integer range 0 to 10:=0;-紅綠燈剩余時間顯示-夜間模式初始化設(shè)置signal data_time_nightin: integer ra
18、nge 0 to 100:=22;signal data_time_nightout: integer range 0 to 100:=8;signal night :std_logic:='0'-紅綠燈時間設(shè)置signal data_time_cp : integer range 0 to 100:=30;-車通行30秒signal data_time_pp : integer range 0 to 100:=15;-人通行15秒begindiv: clkdiv port map ( -分頻器clk_in => sysclk,clk_out_s => tmp_si
19、g_s,clk_out_ms => tmp_sig_ms,clk_out_min => tmp_sig_min,clk_out_h => tmp_sig_h,clk_out_50ms => tmp_sig_50ms);dis: seg7led port map ( -數(shù)碼管int_in => tmp_seg7data,data_out => seg7data);-process(sysclk,key5) -按鍵5消抖+數(shù)碼管模式選擇(s6)variable count1 :integer range 0 to 1000000; begin if key5=&
20、#39;0' then if rising_edge(sysclk) thenif count1<1000000 then count1:=count1+1; else count1:=count1;end if; if count1=999999 then data_mode <= data_mode+1;else data_mode <= data_mode; end if; end if; else count1:=0;end if; if(data_mode = 4)thendata_mode <= 0;end if;end process ;-proc
21、ess(sysclk) -按鍵1 2 3 4消抖+改變設(shè)定時間(s2 s3 s4 s5)variable count1 :integer range 0 to 1000000; beginif key1='0' or key2='0' or key3='0' or key4='0' then if rising_edge(sysclk) thenif count1<1000000 then count1:=count1+1; else count1:=count1;end if; if count1=999999 then
22、if(key1='0')thenif(data_mode = 2)thendata_time_cp <= data_time_cp+1;elsif(data_mode =3)thendata_time_nightout <= data_time_nightout+1;end if;end if; if(key2='0')thenif(data_mode = 2)thendata_time_cp <= data_time_cp-1;elsif(data_mode =3)thendata_time_nightout <= data_time_
23、nightout-1;end if;end if;if(key3='0')thenif(data_mode = 2)thendata_time_pp <= data_time_pp+1;elsif(data_mode =3)thendata_time_nightin <= data_time_nightin+1;end if;end if; if(key4='0')thenif(data_mode = 2)thendata_time_pp <= data_time_pp-1;elsif(data_mode =3)thendata_time_ni
24、ghtin <= data_time_nightin-1;end if;end if;end if; end if; else count1:=0;end if; end process;-process(sysclk) -紅綠燈點亮定義beginif(led_c = 0)thenled_c_r <= '1'led_c_g <='0'led_c_y <='0'elsif(led_c = 1)thenled_c_r <='0'led_c_g <='1'led_c_y <=
25、39;0'elseled_c_r <='0'led_c_g <='0'led_c_y <='1'end if;if(led_p = 0)thenled_p_r <= '1'led_p_g <= '0'elseled_p_r <= '0'led_p_g <= '1'end if;end process;-process(sysclk) -紅綠燈主控程序beginif rising_edge(tmp_sig_s)thendata_time
26、_count<=data_time_count+1;if(night='1')then-黑夜模式if(key_flag=1)thenif(data_time_count=data_time_cp)thenled_p <=0; -進(jìn)入黃燈led_c <=2;data_mode_led <=3;end if;if(data_time_count=(data_time_cp+3)thenled_p <=1; -行人通行l(wèi)ed_c <=0;data_mode_led <=2;end if;if(data_time_count=(data_tim
27、e_cp+3+data_time_pp)thenled_p <=0; -車通行l(wèi)ed_c <=1;key_flag <=0;data_time_count <=0;data_mode_led <= 0;end if;else led_p <=0;led_c <=1;data_mode_led <= 0;end if;end if;if(night='0')then-白天模式if(data_time_count =data_time_cp)thenled_p <=0; -進(jìn)入黃燈led_c <=2;data_mode_l
28、ed <=3;end if;if(data_time_count = (data_time_cp+3)thenled_p <=1; -行人通行l(wèi)ed_c <=0;data_mode_led <=2;end if;if(data_time_count >=(data_time_cp+3+data_time_pp) )thenled_p <=0; -車通行l(wèi)ed_c <=1;data_time_count <=0;data_mode_led <=1;end if;end if;end if;if(key6='0' and key
29、_flag = 0)thendata_time_count <= 0;data_mode_led <=1;end if;if(key6='0')thenkey_flag <=1;end if;end process;- process(tmp_sig_ms,data_count_seg) -生成數(shù)碼管位選掃描beginif rising_edge(tmp_sig_ms) thendata_count_seg <= data_count_seg+1;if(data_count_seg = 4) thendata_count_seg <= 0;end
30、if;end if;end process;-process(sysclk)-數(shù)碼管掃描各模式顯示樣式beginif(data_mode = 0)then- -模式0,時鐘顯示if(data_count_seg = 0)then-位選掃描輸入seg7com <="0111"-位選tmp_seg7data <= data_min_low;-段選elsif (data_count_seg = 1)thenseg7com <="1011"tmp_seg7data <= data_min_high;elsif (data_count_se
31、g = 2)thenseg7com <="1101"tmp_seg7data <= data_h_low;elseseg7com <="1110"tmp_seg7data <= data_h_high;end if;elsif(data_mode = 1)then-模式1,紅綠燈剩余時間顯示if(data_mode_led = 0)then-夜間模式一直車走,顯示-if(data_count_seg = 0)thenseg7com <="0111"tmp_seg7data <= 16; elsif
32、(data_count_seg = 1)thenseg7com <="1011"tmp_seg7data <= 16;elsif (data_count_seg = 2)thenseg7com <="1101"tmp_seg7data <= 16; elseseg7com <="1110"tmp_seg7data <= 16; end if;elsif(data_mode_led = 1)then-車通行剩余時間if(data_count_seg = 0)thenseg7com <="
33、;0111"tmp_seg7data <= (data_time_cp - data_time_count)rem 10; elsif (data_count_seg = 1)thenseg7com <="1011"tmp_seg7data <= (data_time_cp - data_time_count)/ 10;elsif (data_count_seg = 2)thenseg7com <="1101"tmp_seg7data <= 16; elseseg7com <="1110"
34、tmp_seg7data <= 16; end if;elsif(data_mode_led = 2)then-人通行剩余時間if(data_count_seg = 0)thenseg7com <="0111"tmp_seg7data <= (data_time_cp+3+data_time_pp) - data_time_count)rem 10; elsif (data_count_seg = 1)thenseg7com <="1011"tmp_seg7data <= (data_time_cp+3+data_time_
35、pp) - data_time_count)/ 10;elsif (data_count_seg = 2)thenseg7com <="1101"tmp_seg7data <= 16; elseseg7com <="1110"tmp_seg7data <= 16;end if;else -黃燈則顯示00if(data_count_seg = 0)thenseg7com <="0111"tmp_seg7data <= 0; elsif (data_count_seg = 1)thenseg7com &
36、lt;="1011"tmp_seg7data <= 0;elsif (data_count_seg = 2)thenseg7com <="1101"tmp_seg7data <= 16; elseseg7com <="1110"tmp_seg7data <= 16;end if;end if;elsif(data_mode = 2)then-模式2,紅綠燈時間顯示if(data_count_seg = 0)thenseg7com <="0111"tmp_seg7data <
37、= data_time_pp rem 10; elsif (data_count_seg = 1)thenseg7com <="1011"tmp_seg7data <= data_time_pp / 10; elsif (data_count_seg = 2)thenseg7com <="1101"tmp_seg7data <= data_time_cp rem 10; elseseg7com <="1110"tmp_seg7data <= data_time_cp /10; end if;else
38、-模式3,白天黑夜設(shè)定時間顯示if(data_count_seg = 0)thenseg7com <="0111"tmp_seg7data <= data_time_nightin rem 10; elsif (data_count_seg = 1)thenseg7com <="1011"tmp_seg7data <= data_time_nightin / 10; elsif (data_count_seg = 2)thenseg7com <="1101"tmp_seg7data <= data_
39、time_nightout rem 10; elseseg7com <="1110"tmp_seg7data <= data_time_nightout / 10; end if;end if;end process;-process(sysclk) -24小時時鐘計數(shù) begin if rising_edge(tmp_sig_min) then -輸入信號為分鐘,當(dāng)分鐘輸入信號為上升沿時觸發(fā)data_min_low<=data_min_low+1; -開始計數(shù)if(data_min_low = 9)then -分鐘低位達(dá)到最大值,執(zhí)行進(jìn)位data_min
40、_low <=0; -清零data_min_high<=data_min_high+1;if(data_min_high = 5)then -滿一小時進(jìn)位給小時data_min_low <=0; -清零data_min_high <=0;data_h_low <= data_h_low+1;data_h <= data_h+1;if(data_h_low = 9 )then -小時低位滿進(jìn)位給小時高位data_min_low <=0; -清零data_min_high <=0;data_h_low <=0;data_h_high <=
41、data_h_high+1;end if;end if; end if; end if;if(data_h = 24)then -滿24小時,全部清零data_min_low <=0;data_min_high <=0;data_h_low <=0;data_h_high <=0;data_h <= 0;end if;if(data_h >= data_time_nightin or data_h <data_time_nightout)then -白天黑夜判斷night <='1'elsenight <='0
42、9;end if;end process;-end main;-分頻器器件-library ieee;use ieee.std_logic_1164.all;entity clkdiv is port( clk_in:in std_logic; -時鐘信號輸入 clk_out_ms:out std_logic; -時鐘信號輸出 clk_out_s:out std_logic; -時鐘信號輸出 clk_out_min:out std_logic; clk_out_h:out std_logic; clk_out_50ms : out std_logic ); end clkdiv;archite
43、cture div of clkdiv issignal data_ms:integer range 0 to 1000000;signal data_s:integer range 0 to 100000000;signal data_min:integer range 0 to 100;signal data_h:integer range 0 to 100;signal data_50ms:integer range 0 to 10000000;signal q_ms,q_s,q_min,q_h,q_50ms:std_logic;beginprocess(clk_in) -1ms 系統(tǒng)時
44、鐘輸入begin if rising_edge(clk_in) then-當(dāng)檢測到時鐘信號為上升沿時if(data_ms=25000) then -由計數(shù)器實現(xiàn)分頻的功能, -由50m/(25000*2)得到信號翻轉(zhuǎn)周期。-修改data_ms的判斷值就可以實現(xiàn)不同的分頻比 data_ms<=0; q_ms<=not q_ms; -對暫存狀態(tài)量進(jìn)行翻轉(zhuǎn)else data_ms<=data_ms+1;end if; end if;clk_out_ms<=q_ms; -將暫存量進(jìn)行輸出end process;process(clk_in) -50ms 當(dāng)前輸出為實際時間(最終
45、沒有用到) begin if rising_edge(clk_in) then if(data_50ms=1250000) then -此句為你想要的分頻比,in/out=data*2+1 ; data=(in/out -1)/2 data_50ms<=0; q_50ms<=not q_50ms; else data_50ms<=data_50ms+1; end if; end if;clk_out_50ms<=q_50ms;end process;process(clk_in) -1s 已縮短10倍 begin if rising_edge(clk_in) thenif(data_s=2500000) then -data_s=25000000正常 data_s=2500000時1s已經(jīng)縮短10倍-data_s=250000時1s已經(jīng)縮短100倍 data_s<=0; q_s<=not q_s; else data_s<=data_s+1; end if; end if;clk_out_s<=q_s;end process;process(q_ms) -1min 已縮短1000倍 begin if rising_edge(q_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 修建贊助合同范本
- 勞務(wù)時間合同范本
- 內(nèi)外架合同范例
- 化肥合作合同范例
- 專項經(jīng)理聘用合同范本
- 農(nóng)業(yè)購貨合同范本
- 化工產(chǎn)品購銷服務(wù)合同范本
- 醫(yī)院購銷合同范本
- 出口布料銷售合同范例
- 養(yǎng)殖水車出租合同范例
- 敬老院設(shè)備采購?fù)稑?biāo)方案(技術(shù)方案)
- 充電樁采購安裝售后服務(wù)方案
- 《旅行社條例》和《旅行社管理條例》對比解讀
- 柳宗元抑郁而堅貞的一生
- 鄉(xiāng)鎮(zhèn)人大代表選舉結(jié)果情況報告單
- BOPP雙向拉伸薄膜及膠帶生產(chǎn)項目環(huán)境影響報告
- 頻譜儀N9020A常用功能使用指南
- 《英語語言史》課程教學(xué)大綱
- 復(fù)工復(fù)產(chǎn)安全生產(chǎn)培訓(xùn)試卷
- 天津高考英語詞匯3500
- 上海市2023年中考數(shù)學(xué)試卷(附答案)
評論
0/150
提交評論