隨著社會(huì)一步步向前發(fā)展,報(bào)告不再是罕見(jiàn)的東西,多數(shù)報(bào)告都是在事情做完或發(fā)生后撰寫(xiě)的。那么報(bào)告應(yīng)該怎么制定才合適呢?下面是我給大家整理的報(bào)告范文,歡迎大家閱讀分享借鑒,希望對(duì)大家能夠有所幫助。
四位十進(jìn)制頻率計(jì)設(shè)計(jì)EDA實(shí)驗(yàn)報(bào)告篇一
一、實(shí)驗(yàn)?zāi)康?/p>
1、掌握多位計(jì)數(shù)器相連的設(shè)計(jì)方法。
2、掌握十進(jìn)制,六進(jìn)制,二十四進(jìn)制計(jì)數(shù)器的設(shè)計(jì)方法。
3、掌握揚(yáng)聲器的驅(qū)動(dòng)及報(bào)時(shí)的設(shè)計(jì)。
4、led燈的花樣顯示。
5、掌握cpld技術(shù)的層次化設(shè)計(jì)方法。
二、實(shí)驗(yàn)器材
1、主芯片altera epf10k10lc84-4。2、8個(gè)led燈。
3、揚(yáng)聲器。4、4位數(shù)碼顯示管。5、8個(gè)按鍵開(kāi)關(guān)(清零,調(diào)小時(shí),調(diào)分鐘)。
三、實(shí)驗(yàn)內(nèi)容
根據(jù)電路特點(diǎn),運(yùn)用層次設(shè)計(jì)概念設(shè)計(jì)。將此設(shè)計(jì)任務(wù)分成若干模塊,規(guī)定每一模塊的功能和各模塊之間的接口。
1、時(shí)計(jì)時(shí)程序: library ieee;use ;use ;
entity hour is
port(reset,clk : in std_logic;
daout : out std_logic_vector(7 downto 0));end hour;
architecture behav of hour is
signal count : std_logic_vector(3 downto 0);signal counter : std_logic_vector(3 downto 0);begin
p1: process(reset,clk)
begin
if reset='0' then
count<=“0000”;
counter<=“0000”;
elsif(clk'event and clk='1')then
if(counter<2)then
if(count=9)then
count<=“0000”;
counter<=counter + 1;
else
count<=count+1;
end if;
else
if(count=3)
then
counter<=“0000”;
else
count<=count+1;
count<=“0000”;
end if;
end if;
end if;
end process;
daout(7 downto 4)<=counter;daout(3 downto 0)<=count;
end behav;
2、分計(jì)時(shí)程序: library ieee;
use ;use ;
entity minute is
port(reset,clk,sethour: in std_logic;
daout : out std_logic_vector(7 downto 0);
enhour : out std_logic);end minute;
architecture behav of minute is
signal count : std_logic_vector(3 downto 0);signal counter : std_logic_vector(3 downto 0);signal carry_out1 : std_logic;signal carry_out2 : std_logic;begin
p1: process(reset,clk)begin
if reset='0' then
count<=“0000”;
counter<=“0000”;
elsif(clk'event and clk='1')then
if(counter<5)then
if(count=9)then
count<=“0000”;
counter<=counter + 1;
else
count<=count+1;
end if;
carry_out1<='0';
else
if(count=9)then
count<=“0000”;
counter<=“0000”;
carry_out1<='1';
else
count<=count+1;
carry_out1<='0';
end if;
end if;end if;end process;
p2: process(clk)begin
if(clk'event and clk='0')then
if(counter=0)then
if(count=0)then
carry_out2<='0';
end if;
else
carry_out2<='1';
end if;end if;end process;
daout(7 downto 4)<=counter;daout(3 downto 0)<=count;enhour<=(carry_out1 and carry_out2)or sethour;end behav;
3、秒計(jì)時(shí)程序: library ieee;
use ;use ;
entity second is
port(reset,clk,setmin : in std_logic;
daout : out std_logic_vector(7 downto 0);
enmin : out std_logic);end second;
architecture behav of second is
signal count : std_logic_vector(3 downto 0);signal counter : std_logic_vector(3 downto 0);signal carry_out1 : std_logic;signal carry_out2 : std_logic;begin
p1: process(reset,clk)begin
if reset='0' then
count<=“0000”;
counter<=“0000”;
elsif(clk'event and clk='1')then
if(counter<5)
then
if
(count=9)
then
count<=“0000”;
counter<=counter + 1;
else
count<=count+1;
end if;
carry_out1<='0';
else
if(count=9)
then
count<=“0000”;
counter<=“0000”;
carry_out1<='1';
else
count<=count+1;
carry_out1<='0';
end if;
end if;end if;end process;daout(7 downto
4)<=counter;
daout(3
downto
0)<=count;enmin<=carry_out1 or setmin;end behav;6
4、alert程序: library ieee;
use ;use ;
entity alert is port(clkspk : in std_logic;
second : in std_logic_vector(7 downto 0);
minute : in std_logic_vector(7 downto 0);
speak : out std_logic;
lamp : out std_logic_vector(8 downto 0));end alert;
architecture behav of alert is signal spanclkspk2 : std_logic;begin p1: process(clkspk)begin
if(clkspk'event and clkspk='1')then
spanclkspk2<=not spanclkspk2;
end if;end process;p2: process(second,minute)begin if(minute=“01011001”)then case second is
when “01010001”=>lamp<=“000000001”;speak<=spanclkspk2;when “01010010”=>lamp<=“000000010”;speak<='0';when “01010011”=>lamp<=“000000100”;speak<=spanclkspk2;when “01010100”=>lamp<=“000001000”;speak<='0';when “01010101”=>lamp<=“000010000”;speak<=spanclkspk2;when “01010110”=>lamp<=“000100000”;speak<='0';when “01010111”=>lamp<=“001000000”;speak<=spanclkspk2;when “01011000”=>lamp<=“010000000”;speak<='0';when “01011001”=>lamp<=“100000000”;speak<=clkspk;when others=>lamp<=“000000000”;end case;end if;end process;end behav;8
5、seltime程序 library ieee;
use ;use ;
entity seltime is port(ckdsp : in std_logic;
reset : in std_logic;
second : in std_logic_vector(7 downto 0);
minute : in std_logic_vector(7 downto 0);
hour : in std_logic_vector(7 downto 0);
daout : out std_logic_vector(3 downto 0);
sel : out std_logic_vector(2 downto 0));end seltime;
architecture behav of seltime is signal sec : std_logic_vector(2 downto 0);begin
process(reset,ckdsp)begin
if(reset='0')then sec<=“000”;
elsif(ckdsp'event and ckdsp='1')then
sec<=“000”;else
sec<=sec+1;end if;end if;end process;
process(sec,second,minute,hour)begin case sec is
when “000”=>daout<=second(3 downto 0);when “001”=>daout<=second(7 downto 4);when “011”=>daout<=minute(3 downto 0);when “100”=>daout<=minute(7 downto 4);when “110”=>daout<=hour(3 downto 0);when “111”=>daout<=hour(7 downto 4);when others=>daout<=“1111”;end case;end process;
if(sec=“111”)then
sel<=sec;end behav;
6、deled程序: library ieee;
use ;use ;
entity deled is port(s: in std_logic_vector(3 downto 0);
a,b,c,d,e,f,g,h: out std_logic);end deled;
architecture behav of deled is
signal data:std_logic_vector(3 downto 0);signal dout:std_logic_vector(7 downto 0);begin data<=s;process(data)begin
case data is
when “0000”=>dout<=“00111111”;when “0001”=>dout<=“00000110”;when “0010”=>dout<=“01011011”;when “0011”=>dout<=“01001111”;when “0100”=>dout<=“01100110”;when “0101”=>dout<=“01101101”;when “0110”=>dout<=“01111101”;when “0111”=>dout<=“00000111”;when “1000”=>dout<=“01111111”;when “1001”=>dout<=“01101111”;when “1010”=>dout<=“01110111”;when “1011”=>dout<=“01111100”;when “1100”=>dout<=“00111001”;when “1101”=>dout<=“01011110”;when “1110”=>dout<=“01111001”;when “1111”=>dout<=“01000000”;when others=>dout<=“00000000”;end case;end process;h<=dout(7);
g<=dout(6);
f<=dout(5);
e<=dout(4);d<=dout(3);c<=dout(2);b<=dout(1);a<=dout(0);end behav;
7、頂層原理圖:
四、實(shí)驗(yàn)結(jié)果 頂層原理圖仿真波形:
五、心得體會(huì)
1、系統(tǒng)設(shè)計(jì)進(jìn)要行充分的方案論證,不可盲目就動(dòng)手去做;
2、實(shí)驗(yàn)中對(duì)每一個(gè)細(xì)節(jié)部分都要全面思考,要對(duì)特殊情況進(jìn)行處理;
3、對(duì)于數(shù)字系統(tǒng),要考慮同步、異步問(wèn)題;
4、數(shù)字電路的理論分析要結(jié)合時(shí)序圖;
5、遇到問(wèn)題,要順藤摸瓜,分析清楚,不可胡亂改動(dòng),每做一次改變都要有充分的理由;
6、模塊化設(shè)計(jì)方法的優(yōu)點(diǎn)在于其簡(jiǎn)潔性,但是在實(shí)驗(yàn)設(shè)計(jì)中也發(fā)現(xiàn),在實(shí)驗(yàn)最終電路確定之前,要盡量減少模塊重疊嵌套,因?yàn)樵诳偟碾娐非枚ㄖ埃娐愤€不成熟,很多地方需要改進(jìn),如果在開(kāi)始時(shí)就進(jìn)行多層模塊化,里層模塊電路的修改將影響其外層的全部電路,這樣就是牽一發(fā)動(dòng)全身,很顯然,這樣將導(dǎo)致電 數(shù)字鐘課程設(shè)計(jì) 電路設(shè)計(jì)的低效,所以在設(shè)計(jì)過(guò)程中,一定要盡量減少超過(guò)兩層的模塊;
7、遇到問(wèn)題花了很長(zhǎng)時(shí)間沒(méi)有解決掉,要學(xué)會(huì)想他人請(qǐng)教,別人的不經(jīng)意一點(diǎn),可能就能把自己帶出思維死區(qū)。
四位十進(jìn)制頻率計(jì)設(shè)計(jì)EDA實(shí)驗(yàn)報(bào)告篇二
簡(jiǎn)單頻率計(jì)設(shè)計(jì)
物理與電子工程學(xué)院 電子信息科學(xué)與技術(shù)專業(yè) 2011級(jí) 董思林
指導(dǎo)教師 何傳紅
摘 要:隨著數(shù)字電子技術(shù)的發(fā)展,頻率測(cè)量成為一項(xiàng)越來(lái)越普遍的工作,因此測(cè)頻計(jì)常受到人們的青睞。eda技術(shù)是以大規(guī)模可編程邏輯器件為設(shè)計(jì)載體,以硬件語(yǔ)言為系統(tǒng)邏輯描述的主要方式,以計(jì)算機(jī)、大規(guī)模可編程邏輯器件的開(kāi)發(fā)軟件及實(shí)驗(yàn)開(kāi)發(fā)系統(tǒng)為設(shè)計(jì)工具,通過(guò)有關(guān)的開(kāi)發(fā)軟件,自動(dòng)完成用軟件設(shè)計(jì)的電子系統(tǒng)到硬件系統(tǒng)的設(shè)計(jì),最終形成集成電子系統(tǒng)或?qū)S眉尚酒囊婚T新技術(shù),其設(shè)計(jì)的靈活性使得eda技術(shù).快速發(fā)展和廣泛應(yīng)用。
關(guān)鍵詞:可編程邏輯器件;計(jì)數(shù);分頻;脈沖;掃描 引言
在電子技術(shù)中,頻率是最基本的參數(shù)之一,并且與許多電參量的測(cè)量方案、測(cè)量結(jié)果都有十分密切的關(guān)系,因此,頻率的測(cè)量就顯得非常重要。測(cè)量頻率的方法有多種,其中電子計(jì)數(shù)器測(cè)量具有精度高、使用方便、測(cè)量迅速,以及便于實(shí)現(xiàn)測(cè)量過(guò)程自動(dòng)化等優(yōu)點(diǎn),是頻率測(cè)量的重要手段之一。電子計(jì)數(shù)器測(cè)頻有兩種方式:一是直接測(cè)頻法,即在一定閘門時(shí)間內(nèi)量被測(cè)信號(hào)的脈沖個(gè)數(shù);二是間接測(cè)頻法,如周期測(cè)頻法。直接測(cè)頻法適用于高頻信號(hào)的頻率測(cè)量,間接測(cè)頻法適用于低頻號(hào)的頻率測(cè)量。本設(shè)計(jì)采用直接測(cè)頻法,以quartusⅱ軟件為設(shè)計(jì)平臺(tái),采用vhdl語(yǔ)言實(shí)現(xiàn)數(shù)字頻率計(jì)的整體設(shè)計(jì)。伴隨著集成電路(ic)技術(shù)的發(fā)展,電子設(shè)計(jì)自動(dòng)化(eda)逐漸成為重要的設(shè)計(jì)手段,已經(jīng)廣泛應(yīng)用于模擬與數(shù)字電路系統(tǒng)等許多領(lǐng)域。電子設(shè)計(jì)自動(dòng)化是一種實(shí)現(xiàn)電子系統(tǒng)或電子產(chǎn)品自動(dòng)化設(shè)計(jì)的技術(shù),它與電子技術(shù),微電子技術(shù)的發(fā)展密切相關(guān),它吸收了計(jì)算機(jī)科學(xué)領(lǐng)域的大多數(shù)最新研究成果,以高性能的計(jì)算機(jī)作為工作平臺(tái),促進(jìn)了工程發(fā)展。eda的一個(gè)重要特征就是使用硬件描述語(yǔ)言(hdl)來(lái)完成的設(shè)計(jì)文件,在電子
第 1 頁(yè)(共 7 頁(yè))設(shè)計(jì)領(lǐng)域受到了廣泛的接受。
eda技術(shù)就是以計(jì)算機(jī)為工具,設(shè)計(jì)者在eda軟件平臺(tái)上,有硬件描述語(yǔ)言vhdl完成設(shè)計(jì)文件,然后由計(jì)算機(jī)自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合、優(yōu)化、布局、布線和仿真,直至對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作,最終形成集成電子系統(tǒng)或?qū)I(yè)集成芯片的一門新技術(shù)。eda技術(shù)的出現(xiàn),極大地提高了電路設(shè)計(jì)的效率和可操作性,減輕了設(shè)計(jì)者的勞動(dòng)強(qiáng)度。設(shè)計(jì)原理
2.1 基本原理
數(shù)字頻率計(jì)的主要功能是測(cè)量周期信號(hào)的頻率。頻率是單位時(shí)間(1秒)內(nèi)信號(hào)發(fā)生周期變化的次數(shù)。在給定的1秒時(shí)間內(nèi)對(duì)信號(hào)波形計(jì)數(shù),并將所計(jì)數(shù)值顯示出來(lái),就能讀取被測(cè)信號(hào)的頻率。數(shù)字頻率計(jì)首先必須獲得相對(duì)穩(wěn)定與準(zhǔn)確的時(shí)間,然后通過(guò)計(jì)數(shù)器計(jì)算這一段時(shí)間間隔內(nèi)的方波脈沖個(gè)數(shù)并顯示出來(lái)。這就是數(shù)字頻率計(jì)的基本原理。
2.2 系統(tǒng)框圖
通過(guò)測(cè)頻控制信號(hào)發(fā)生器將由脈沖發(fā)生器產(chǎn)生的信號(hào)轉(zhuǎn)換成所需要的控制信號(hào)clk1和en,待測(cè)信號(hào)計(jì)數(shù)器在en的控制下對(duì)待測(cè)信號(hào)進(jìn)行測(cè)量并通過(guò)鎖存與譯碼器在clk1的控制下按要求進(jìn)行顯示,大體結(jié)構(gòu)如圖1所示:
圖2.2 系統(tǒng)框圖
第 2 頁(yè)(共 7 頁(yè))整體功能介紹
3.1 計(jì)數(shù)器設(shè)計(jì)
頻率計(jì)的核心元件之一是含有時(shí)鐘使能及進(jìn)位擴(kuò)展輸出的十進(jìn)制計(jì)數(shù)器。為此,這里用一個(gè)雙十進(jìn)制計(jì)數(shù)器器件74390和其他一些輔助元件來(lái)完成。電路框圖如圖3.1所示。
圖3.1 含有時(shí)鐘使能的2位十進(jìn)制計(jì)數(shù)器
圖中,74390連接成兩個(gè)獨(dú)立的十進(jìn)制計(jì)數(shù)器,待測(cè)頻率信號(hào)clk通過(guò)一個(gè)與門進(jìn)入74390的計(jì)數(shù)器“1”端的時(shí)鐘輸入端1clka。與門的另一端由計(jì)數(shù)使能信號(hào)enb控制:當(dāng)enb=1時(shí)允許計(jì)數(shù);enb=0時(shí)禁止計(jì)數(shù)。計(jì)數(shù)器1的4位輸出q[3]、q[2]、q[1] 和q[0] 并成總線表達(dá)方式,即q[3..0],由圖左下角的output輸出端口向外輸出計(jì)數(shù)值。同時(shí)由一個(gè)4輸入與門和兩個(gè)反相器構(gòu)成進(jìn)位信號(hào),進(jìn)位信號(hào)進(jìn)入第二個(gè)計(jì)數(shù)器的時(shí)鐘輸入端2clka。第二個(gè)計(jì)數(shù)器的4位計(jì)數(shù)輸出是q[7]、q[6]、q[5] 和q[4],總線輸出信號(hào)是q[7..4].這兩個(gè)計(jì)數(shù)器的總得進(jìn)位信號(hào),可由一個(gè)6輸入與門和兩個(gè)反相器產(chǎn)生,由cout輸出。clr是計(jì)數(shù)器的清零信號(hào)。對(duì)圖3.1所示電路進(jìn)行仿真,其波形圖如下圖3.1.1所示。
第 3 頁(yè)(共 7 頁(yè))
圖3.1.1 仿真波形圖
3.2 時(shí)序控制電路設(shè)計(jì)
欲使電路能自動(dòng)測(cè)頻,還需增加一個(gè)測(cè)頻時(shí)序控制電路,如圖3.2所示。該電路由三部分組成:4位二進(jìn)制計(jì)數(shù)器7493、4-16譯碼器74154和兩個(gè)由雙與非門構(gòu)成的rs觸發(fā)器。
圖3.2 測(cè)頻時(shí)序控制電路
3.3 時(shí)鐘分頻模塊設(shè)計(jì)
由于設(shè)計(jì)中利用了一個(gè)50mhz的時(shí)鐘信號(hào)輸入,需要將其分頻為合適的頻率供給本設(shè)計(jì)中的各個(gè)模塊。其程序代碼如下:
module clk_span(clk,spanclk);input clk;
output spanclk;
reg spanclk;
reg [span_width-1:0]counter;
parameter span_num = 500000;
parameter span_width = 19;
//時(shí)鐘偶數(shù)分頻模塊
//定義輸入時(shí)鐘 //定義輸出時(shí)鐘 //定義寄存器
//定義計(jì)數(shù)寄存器 //參數(shù),定義分頻參數(shù)
//參數(shù),定義分頻參數(shù)占用的位寬
第 4 頁(yè)(共 7 頁(yè))always @(posedge clk)
//分頻過(guò)程
begin
if(counter ==((span_num>>1)-1))//注意分頻數(shù)的計(jì)算公式
begin
counter <= 0;
spanclk <= ~spanclk;
end
else
counter <= counter + 1'b1;end endmodule
利用此代碼生成元件命名為clk_span,供上層文件調(diào)用。3.4 數(shù)碼管動(dòng)態(tài)掃描顯示驅(qū)動(dòng)模塊設(shè)計(jì)
本設(shè)計(jì)利用8位7段led數(shù)碼管,但只需要2位,需采用動(dòng)態(tài)掃描驅(qū)動(dòng),為顯示頻率計(jì)的結(jié)果,需要在計(jì)數(shù)器和數(shù)碼管之間放置一個(gè)驅(qū)動(dòng)電路模塊,由于數(shù)碼管的現(xiàn)實(shí)字符段碼過(guò)于冗長(zhǎng),這里只作簡(jiǎn)要說(shuō)明。代碼總共分為三部分:第一部分是相關(guān)參數(shù)的定義和段碼字符的賦值;第二部分有兩個(gè)case語(yǔ)句,第一個(gè)case語(yǔ)句實(shí)現(xiàn)對(duì)莫一位數(shù)碼管的定義,第二個(gè)case語(yǔ)句實(shí)現(xiàn)對(duì)數(shù)碼管某一個(gè)段進(jìn)行定義;第三部分則是對(duì)數(shù)碼管具體要顯示哪個(gè)字符進(jìn)行初始化。3.5 頂層電路設(shè)計(jì)
將圖3.1所示電路包裝入庫(kù),元件名取為counter8;將圖3.2所示電路包裝入庫(kù),元件名取為ft_ctrl。有了counter8和ft_ctrl,就可以做成自動(dòng)測(cè)頻和數(shù)據(jù)顯示的實(shí)用頻率計(jì)了,電路如圖3.5所示。圖中counter8為第1步生成的2位十進(jìn)制計(jì)數(shù)器模塊,ft_ctrl為第2步生成的時(shí)序控制模塊,只含有兩個(gè)輸入信號(hào):待測(cè)頻率輸入信號(hào)f_in和測(cè)頻控制時(shí)鐘clk。時(shí)鐘分頻模塊clk_span在此設(shè)計(jì)中被調(diào)用(例化)了3次,因?yàn)榇四K采用了參數(shù)可配置的設(shè)計(jì)模式,所以調(diào)用同一個(gè)原型,通過(guò)改變參數(shù)就可以實(shí)現(xiàn)不同的特性,其中最上面一個(gè)時(shí)鐘分頻模塊把50mhz分頻到1024hz(參數(shù)span_num為48828,所以輸出頻率為50mhz/48828≈1024hz;參數(shù)span_width隨span_num而變;中間一個(gè)分頻模塊把1024hz分頻到8hz作為時(shí)序控制模塊的時(shí)鐘,則計(jì)數(shù)使能信號(hào)cnt_en的脈沖寬度即
第 5 頁(yè)(共 7 頁(yè))為1秒,從而可使數(shù)碼管直接顯示f_in的頻率值了;下面一個(gè)分頻模塊把1024hz分頻到約51hz作為被測(cè)頻率f_in輸入到十進(jìn)制計(jì)數(shù)器。
圖3.5 頂層電路設(shè)計(jì)電路 設(shè)計(jì)總結(jié)
通過(guò)這次eda課程設(shè)計(jì),我對(duì)課堂上所學(xué)到的理論知識(shí)的理解加深了許多,自己動(dòng)腦、動(dòng)手設(shè)計(jì)的能力也得到了較大提高。在這次課程設(shè)計(jì)的過(guò)程中,我對(duì) vhdl 語(yǔ)言有了更深的認(rèn)識(shí)。通過(guò)查閱相關(guān)資料和動(dòng)手設(shè)計(jì)我發(fā)現(xiàn)我以前對(duì) vhdl 語(yǔ)言的認(rèn)識(shí)太過(guò)膚淺,認(rèn)為 vhdl 語(yǔ)言只能用于設(shè)計(jì)小型的電路系統(tǒng)。但有了更深刻的認(rèn)識(shí)之后我發(fā)現(xiàn)學(xué)好 vhdl 語(yǔ)言可以設(shè)計(jì)出大規(guī)模的、功能復(fù)雜的電路系統(tǒng)。以前之所以會(huì)有錯(cuò)誤的認(rèn)識(shí)是因?yàn)樽约簩?duì) vhdl 語(yǔ)言的了解和掌握還不夠。現(xiàn)在仔細(xì)想想,這次課程設(shè)計(jì)使得我對(duì) vhdl 語(yǔ)言的理解與應(yīng)用能力得到了較大的提升,也讓我認(rèn)識(shí)到只要深入學(xué)習(xí),提升的空間永遠(yuǎn)是存在的。在設(shè)計(jì)的過(guò)程中我遇到了一些問(wèn)題,通過(guò)查閱書(shū)本我發(fā)現(xiàn)了產(chǎn)生錯(cuò)誤的原因并解決了問(wèn)題完成了設(shè)計(jì)。經(jīng)過(guò)反思我發(fā)現(xiàn)較大一部分錯(cuò)誤是因?yàn)椴僮鞯牟皇炀氃斐傻模@也讓我明白了要保持設(shè)計(jì)的高效率必須經(jīng)常練習(xí)。另一方面我第 6 頁(yè)(共 7 頁(yè))也發(fā)現(xiàn)了動(dòng)手實(shí)踐的重要性。動(dòng)手實(shí)踐是理論知識(shí)得以靈活運(yùn)用的必要前提,也是今后走上工作崗位之后能夠很好的完成設(shè)計(jì)工作的技術(shù)保證。只有遇到實(shí)際問(wèn)題并根據(jù)自己對(duì)課堂上獲得的專業(yè)知識(shí)的理解來(lái)解決才能真正的提高自己的能力。這也提醒我在平時(shí)的學(xué)習(xí)生活中不能一味埋頭于課本知識(shí),當(dāng)今社會(huì)競(jìng)爭(zhēng)越來(lái)越激烈,社會(huì)對(duì)人才的要求越來(lái)越全面,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,必須靠實(shí)踐作支撐。雖然此次設(shè)計(jì)完成了,但是我意識(shí)到,我對(duì)fpga 技術(shù)僅僅只是停留在入門的階段,想要有更大的發(fā)展,更深入的研究,還需要更多的努力與實(shí)踐。因此在學(xué)習(xí)之余我們應(yīng)該積極參加各種與專業(yè)知識(shí)有關(guān)的實(shí)踐活動(dòng)和競(jìng)賽,鞏固所學(xué)的理論知識(shí),多注重培養(yǎng)實(shí)際動(dòng)手能力和專業(yè)技術(shù)能力,這樣才能在以后的工作崗位上有所作為。
參考文獻(xiàn): [1] 技術(shù)實(shí)用教程-verilog hdl版(第四版).科學(xué)出版社 [2] 楊欣.電子設(shè)計(jì)從零開(kāi)始(第2版),清華大學(xué)出版社 [3] 康華光.電子技術(shù)基礎(chǔ)·模擬部分,高等教育出版社 [4] 康華光.電子技術(shù)基礎(chǔ)·數(shù)字部分,高等教育出版社
[5] 顧斌,趙明忠,姜志鵬,馬才根.數(shù)字電路eda設(shè)計(jì),西安電子科技大學(xué)出版社
第 7 頁(yè)(共 7 頁(yè))
四位十進(jìn)制頻率計(jì)設(shè)計(jì)EDA實(shí)驗(yàn)報(bào)告篇三
工學(xué)院實(shí)驗(yàn)報(bào)告
姓名:黃娟
學(xué)號(hào):32214125
班級(jí):自動(dòng)141
成績(jī):
實(shí)驗(yàn)名稱:2位十進(jìn)制頻率計(jì)設(shè)計(jì)
一、實(shí)驗(yàn)?zāi)康?/p>
1.掌握eda工具quartus ⅱ的使用; 2.掌握quartus ⅱ的原理圖設(shè)計(jì)流程。3.掌握2位十進(jìn)制頻率計(jì)設(shè)計(jì)方法。
二、2位十進(jìn)制頻率計(jì)設(shè)計(jì)
1、quartus ⅱ原理圖設(shè)計(jì)流程
(1)計(jì)數(shù)器設(shè)計(jì) a.設(shè)計(jì)電路原理圖 b.建立工程 c.系統(tǒng)仿真 d.生成元件符號(hào)(2)頻率計(jì)主結(jié)構(gòu)電路設(shè)計(jì)(3)時(shí)序控制電路設(shè)計(jì)
(4)頂層電路設(shè)計(jì) 2、2位十進(jìn)制頻率計(jì)(1)原理圖
工學(xué)院實(shí)驗(yàn)報(bào)告
(2)仿真測(cè)試結(jié)果
(2)rtl圖
工學(xué)院實(shí)驗(yàn)報(bào)告
三、實(shí)驗(yàn)小結(jié)
通過(guò)這次實(shí)驗(yàn),我們掌握eda工具quartus ⅱ的使用; 了解了quartus ⅱ的原理圖設(shè)計(jì)流程。掌握2位十進(jìn)制頻率計(jì)設(shè)計(jì)方法。其中原理圖中運(yùn)用主線和線的命名實(shí)現(xiàn)連接更加簡(jiǎn)單方便。基于前面的設(shè)計(jì)基礎(chǔ),所以我們?cè)诟闱宄?shí)驗(yàn)?zāi)康暮鸵笾螅汩_(kāi)始了設(shè)計(jì)實(shí)驗(yàn),而且整個(gè)過(guò)程中思路比較清晰,我們首先設(shè)計(jì)了計(jì)數(shù)器,然后將計(jì)數(shù)器封裝置后,設(shè)置為可以在后邊的設(shè)計(jì)電路中調(diào)用的工具文件,然后設(shè)計(jì)了2位十進(jìn)制數(shù)字頻率計(jì)的電路,最后經(jīng)過(guò)仿真測(cè)試,實(shí)現(xiàn)了實(shí)驗(yàn)要求的功能。
四位十進(jìn)制頻率計(jì)設(shè)計(jì)EDA實(shí)驗(yàn)報(bào)告篇四
eda課程設(shè)計(jì)報(bào)告書(shū)
交通燈設(shè)計(jì)
設(shè) 計(jì) 者: 邱春華 呂云蘭
指導(dǎo)老師: 李 敏
學(xué) 號(hào): 09387105 09387114 專業(yè)班級(jí):通信工程0911班
摘要………………………………………………………………………………3
1、設(shè)計(jì)任務(wù)………………………………………………………………………4
2、方案選擇與論證………………………………………………………4
3、實(shí)現(xiàn)方案原理及說(shuō)明…………………………………………………………5
4、系統(tǒng)設(shè)計(jì)詳述…………………………………………………………………6 a、分頻器的設(shè)計(jì)……………………………………………………………………6 b、控制器的設(shè)計(jì)……………………………………………………………………7 c、計(jì)數(shù)器的設(shè)計(jì)……………………………………………………………………7 d、分位譯碼電路的設(shè)計(jì)……………………………………………………………8 e、數(shù)碼管驅(qū)動(dòng)的設(shè)計(jì)——綠燈和紅燈驅(qū)動(dòng)………………………………………9 f、數(shù)碼管驅(qū)動(dòng)的設(shè)計(jì)--黃燈驅(qū)動(dòng)……………………………………………9
5、程序設(shè)計(jì)………………………………………………………………………10 5.1 分頻器的設(shè)計(jì)…………………………………………………………………10 5.2 控制器的設(shè)計(jì)…………………………………………………………………10 5.3 計(jì)數(shù)器的設(shè)計(jì)…………………………………………………………………11 5.4 分位譯碼電路的設(shè)計(jì)…………………………………………………………14 5.5數(shù)碼管驅(qū)動(dòng)的設(shè)計(jì)……………………………………………………………15
6、整個(gè)系統(tǒng)的構(gòu)成及仿真圖……………………………………………………17
7、心得體會(huì)………………………………………………………………………18
8、參考文獻(xiàn)………………………………………………………………………18
語(yǔ)言實(shí)現(xiàn)交通燈的設(shè)計(jì)
作者:邱春華、呂云蘭
指導(dǎo)老師:李 敏(湖北文理學(xué)院理工學(xué)院 襄陽(yáng) 230036)
【摘要】:伴隨著社會(huì)的發(fā)展以及人類生活水平的提高,汽車的數(shù)量在eda技術(shù)的發(fā)展和應(yīng)用領(lǐng)域的擴(kuò)大與深入,eda 技術(shù)在電子信息、通信、自動(dòng)控制及計(jì)算機(jī)應(yīng)用等領(lǐng)域的重要性日益突出。隨著技術(shù)市場(chǎng)與人才市場(chǎng)對(duì)dea 的不斷的增加,交通的問(wèn)題日益突出,單單依靠人力來(lái)指揮交通已經(jīng)不可行了。所以,設(shè)計(jì)交通燈來(lái)完成這個(gè)需求就顯的越加迫切。
【關(guān)鍵字】:eda技術(shù)、vhdl語(yǔ)言、交通燈
quartusii 設(shè)計(jì)軟件為用戶提供完整的多平臺(tái)設(shè)計(jì)環(huán)境,它可以輕易滿足特定設(shè)計(jì)的需要。它是單芯片可編程系統(tǒng)(sopc)設(shè)計(jì)的綜合性環(huán)境,eda技術(shù)作為現(xiàn)代電子設(shè)計(jì)技術(shù)的核心,它依賴強(qiáng)大的計(jì)算機(jī),在eda工具軟件平臺(tái)上,對(duì)以硬件描述語(yǔ)言vhdl為系統(tǒng)邏輯描述手段完成的設(shè)計(jì)文件,自動(dòng)地完成邏輯編譯、邏輯簡(jiǎn)化、邏輯分割、邏輯綜合,以及邏輯優(yōu)化和仿真測(cè)試,直至實(shí)現(xiàn)既定的電子線路系統(tǒng)功能。下面詳細(xì)介紹在quartus ii軟件環(huán)境下開(kāi)發(fā)基于vhdl語(yǔ)言交通燈的設(shè)計(jì)。、設(shè)計(jì)任務(wù)
a、設(shè)計(jì)內(nèi)容
設(shè)計(jì)一個(gè)十字路口的交通燈控制系統(tǒng),用實(shí)驗(yàn)平臺(tái)上的led 發(fā)光二極管顯示車輛通過(guò)的方向(甲車道和乙車道各一組),用數(shù)碼管顯示該方向的亮燈時(shí)間。
b、設(shè)計(jì)要求:
交通燈按正常狀態(tài)依次點(diǎn)亮紅、黃、綠燈,交警可以根據(jù)路口車流量的情況分別設(shè)置紅、綠、黃燈持續(xù)點(diǎn)亮的時(shí)間。在紅、綠燈點(diǎn)亮?xí)r,能夠顯示其點(diǎn)亮持續(xù)的時(shí)間。
2、方案選擇與論證
本次實(shí)驗(yàn)設(shè)計(jì)交通燈設(shè)計(jì)采用自頂向下、由粗到細(xì), 逐步分解的設(shè)計(jì)方法, 最頂層電路是指系統(tǒng)的整體要求, 最下層是具體的邏輯電路的實(shí)現(xiàn)。自頂向下的設(shè)計(jì)方法將一個(gè)復(fù)雜的系統(tǒng)逐漸分解成若干功能模塊, 從而進(jìn)行設(shè)計(jì)描述, 并且應(yīng)用eda 軟件平臺(tái)自動(dòng)完成各功能模塊的邏輯綜合與優(yōu)化, 門級(jí)電路的布局, 再下載到硬件中實(shí)現(xiàn)設(shè)計(jì)。對(duì)于交通燈來(lái)說(shuō)首先是分頻器、控制器、計(jì)數(shù)器、分位譯碼電路及數(shù)碼管驅(qū)動(dòng)的設(shè)計(jì),然后能在led中顯示紅、綠、黃燈的轉(zhuǎn)化,并帶有數(shù)碼管計(jì)時(shí)功能。通過(guò)參考eda課程設(shè)計(jì)指導(dǎo)書(shū),有以下方案:
(1)、頂層文件輸入端口:時(shí)鐘脈沖信號(hào)、復(fù)位按鍵及綠燈計(jì)數(shù)器的計(jì)數(shù)范圍輸入端t1;輸出端口:兩個(gè)車道的紅、綠、黃輸出,及其所對(duì)應(yīng)各燈所輸出時(shí)間計(jì)數(shù)共16個(gè)。
(2)、底層文件分為:a.分頻模塊、b.計(jì)數(shù)器模塊、c.控制器模塊、d.分位譯碼模塊、e.數(shù)碼管驅(qū)動(dòng)模塊。
、實(shí)現(xiàn)方案原理及說(shuō)明
從題目中計(jì)數(shù)值與交通燈的亮滅的關(guān)系如圖(1)所示:
圖(1)
交通燈控制器系統(tǒng)框圖如圖2 所示:
圖(2)考慮到黃燈的作用是警示已過(guò)停車線的司機(jī)盡快離開(kāi)路口,而路口總寬度不變,因此將其固定為5 秒,而紅燈亮的時(shí)間等于綠燈亮的時(shí)間加上黃燈亮的時(shí)間,因此緊對(duì)綠燈點(diǎn)亮?xí)r間進(jìn)行設(shè)置就可以同時(shí)改變紅燈亮的時(shí)間,這里將綠燈所能設(shè)置的最長(zhǎng)時(shí)間設(shè)置為40 秒即(0
4、系統(tǒng)設(shè)計(jì)詳述
其輸入及輸出端口有:
clkin——輸入的高頻時(shí)鐘脈沖; reset——復(fù)位端,高電平有效; t1——綠燈計(jì)數(shù)器的計(jì)數(shù)范圍輸入端;
r1、g1、y1——分別為第一車道紅、綠、黃燈輸出;
r1a、r1b、g1a、g1b、y1a——分別為第一車道紅、綠、黃燈對(duì)應(yīng)的數(shù)碼管計(jì)數(shù)輸出;
r2、g2、y2——分別為第二車道紅、綠、黃燈輸出;
r2a、r2b、g2a、g2b、y2a——分別為第二車道紅、綠、黃燈對(duì)應(yīng)的數(shù)碼管計(jì)數(shù)輸出; a、分頻器的設(shè)計(jì)
分頻器實(shí)現(xiàn)的是將高頻時(shí)鐘信號(hào)轉(zhuǎn)換成低頻的時(shí)鐘信號(hào),用于觸發(fā)控制器和計(jì)數(shù)器。該分頻器實(shí)現(xiàn)的是一千分頻,將一千赫茲的時(shí)鐘信號(hào)分頻成一赫茲的時(shí)鐘信號(hào)。生成的symbol 文件如圖
圖(3)3 和仿真波形如圖4 所示。
圖(4)
b、控制器的設(shè)計(jì)
控制器的作用是根據(jù)計(jì)數(shù)器的計(jì)數(shù)值及t1 的輸入數(shù)據(jù)控制發(fā)光二極管的亮、滅,以及輸出正計(jì)時(shí)數(shù)值給七段數(shù)碼管的分位譯碼電路。本控制器是利用時(shí)鐘沿的下降沿讀取前級(jí)計(jì)數(shù)器的計(jì)數(shù)值,然后作出反應(yīng);生成的實(shí)體模塊如圖5 和仿真波形如圖6 所 圖(5)示。
圖(6)
c、計(jì)數(shù)器的設(shè)計(jì)
計(jì)數(shù)器rcounter的計(jì)數(shù)范圍為由t1引腳輸入。計(jì)到t1 后,下一個(gè)時(shí)鐘沿恢復(fù)到0,開(kāi)始下一輪計(jì)數(shù)。仿真波形如圖當(dāng)t1 取7 時(shí),計(jì)數(shù)器計(jì)數(shù)到7 后清零。實(shí)體模塊如圖7 和仿真波形如圖8。計(jì)數(shù)器grounter和計(jì)數(shù)器ycounter的實(shí)體模塊如圖9 和圖10 所示。
圖(7)圖(9)圖(10)
圖(8)
d、分位譯碼電路的設(shè)計(jì)
由于控制器輸出的正計(jì)時(shí)數(shù)值可能是1 位或者2 位十進(jìn)制數(shù),因此在七段數(shù)碼管的譯碼電路前要加上分位電路(即將其分成2 個(gè)1 位的十進(jìn)制數(shù),如40 分成4 和0,5分為0 和5)。與控制器一樣,分位電路同樣可以由時(shí)鐘驅(qū)動(dòng),也可以設(shè)計(jì)成純組合邏輯電路。控制器中,引入了寄
圖(11)存器。本電路中分位電路使用組合邏輯電路實(shí)現(xiàn)。生成的實(shí)體模塊如圖11 及仿真波形如圖12。
圖(12)
e、數(shù)碼管驅(qū)動(dòng)的設(shè)計(jì)——綠燈和紅燈驅(qū)動(dòng)
要求數(shù)碼管共陽(yáng)極連接(共陽(yáng)極的公共端為低電平時(shí),led 不亮),在設(shè)計(jì)中為每個(gè)數(shù)碼管都添加了一個(gè)驅(qū)動(dòng)電路,在使用時(shí)通過(guò)調(diào)用模塊來(lái)實(shí)現(xiàn)。本模塊設(shè)計(jì)為時(shí)序邏
圖(14)
輯電路,采用下降沿觸發(fā)。實(shí)體模塊如圖14 和仿真波形如圖15。
圖(15)
f、數(shù)碼管驅(qū)動(dòng)的設(shè)計(jì)——黃燈驅(qū)動(dòng)
由于黃燈固定時(shí)間是5 秒,因此變化范圍是0 至5 秒,七段數(shù)碼管只要能顯示0-5 的數(shù)就行了,所以單獨(dú)用一個(gè)數(shù)碼管驅(qū)動(dòng)。實(shí)體模塊如圖16和仿真波形如圖17。圖(16)
圖(17)
、程序設(shè)計(jì)
5.1 分頻器的設(shè)計(jì)
library ieee;use ;entity fredevider is port(clkin:in std_logic;clkout:out std_logic);end;architecture devider of fredevider is constant n:integer:=499;signal counter:integer range 0 to n;signal clk:std_logic;begin process(clkin)begin if rising_edge(clkin)then if counter=n then counter<=0;clk<=not clk;else counter<=counter+1;end if;end if;end process;clkout<=clk;end;5.2 控制器的設(shè)計(jì)
library ieee;use ;entity control is port(clk :in std_logic;c1,c2,c3:out std_logic;w1,w2,w3:in std_logic;r1,r2 :out std_logic;y1,y2 :out std_logic;g1,g2 :out std_logic;reset :in std_logic);end control;architecture a of control is type state_space is(s3,s2,s1,s0);
begin process(clk)begin if reset='1' then state<=s0;else if(clk'event and clk='1')then case state is when s0=> if w1='1' then state<=s1;end if;when s1=> if w2='1' then state<=s2;end if;when s2=> if w3='1' then state<=s3;end if;when s3=> if w2='1' then state<=s0;end if;end case;end if;end if;end process;c1<='1'when state =s0 else '0';c2<='1'when state =s1 or state =s3 else '0';c3<='1'when state =s2 else '0';r1<='1'when state =s1 or state =s0 else '0';y1<='1'when state =s3 else '0';g1<='1'when state =s2 else '0';r2<='1'when state =s2 or state =s3 else '0';y2<='1'when state =s1 else '0';g2<='1'when state =s0 else '0';end a;5.3 計(jì)數(shù)器的設(shè)計(jì) 5.3.1 綠燈計(jì)數(shù)器
library ieee;use ;
port(clk :in std_logic;enable :in std_logic;t1 :in integer range 0 to 40;c1 :out std_logic;m1 :out integer range 0 to 5);end gcounter;architecture a of gcounter is begin process(clk)variable cnt : integer range 0 to 40;begin if(clk'event and clk='1')then if enable='1'and cnt
library ieee;use ;entity rcounter is port(clk :in std_logic;enable :in std_logic;t1 :in integer range 0 to 40;c2 :out std_logic;m2:out integer range 0 to 32);end rcounter;architecture a of rcounter is constant y:integer:=5;signal t2: integer range 0 to 45;begin process(clk)variable cnt : integer range 0 to 45;
t2<=t1+y;if(clk'event and clk='1')then if enable='1'and cnt
library ieee;use ;entity ycounter is port(clk :in std_logic;enable :in std_logic;c3 :out std_logic;m3 :out integer range 0 to 5);end ycounter;architecture a of ycounter is begin process(clk)variable cnt : integer range 0 to 5;begin if(clk'event and clk='1')then if enable='1'and cnt<5 then cnt:=cnt+1;else cnt:=0;end if;if cnt=5 then c3<='1';else c3<='0';end if;end if;
end process;end a;5.4 分位譯碼電路設(shè)計(jì) 5.4.1分位器-1 library ieee;use ;entity fenwei1 is port(numin:in integer range 0 to 45;numa,numb:out integer range 0 to 9);end;architecture behavior of fenwei1 is begin process(numin)begin if numin>=40 then numa<=4;numb<=numin-40;elsif numin>=30 then numa<=3;numb<=numin-30;elsif numin>=20 then numa<=2;numb<=numin-20;elsif numin>=10 then numa<=1;numb<=numin-10;else numa<=0;numb<=numin;end if;end process;end;5.4.2分位器-2 library ieee;use ;entity fenwei2 is port(numin:in integer range 0 to 45;);end;architecture behavior of fenwei2 is begin process(numin)begin if numin>=40 then numc<=4;numd<=numin-40;elsif numin>=30 then numc<=3;numd<=numin-30;elsif numin>=20 then numc<=2;numd<=numin-20;elsif numin>=10 then numc<=1;numd<=numin-10;else numc<=0;numd<=numin;end if;end process;end;5.5數(shù)碼管驅(qū)動(dòng)的設(shè)計(jì) 5.5.1 紅綠燈驅(qū)動(dòng)
library ieee;use ;entity ygqudong is port(clk:in std_logic;enable :in std_logic;data:in integer range 0 to 9;segout: out std_logic_vector(6 downto 0));end;architecture behavior of ygqudong is begin process(clk,data)begin if falling_edge(clk)and enable='1' then case data is
when 1=>segout<=“0110000”;when 2=>segout<=“1101101”;when 3=>segout<=“1111001”;when 4=>segout<=“0110011”;when 5=>segout<=“1011011”;when 6=>segout<=“0011111”;when 7=>segout<=“1110000”;when 8=>segout<=“1111111”;when 9=>segout<=“1110011”;when others =>null;end case;end if;end process;end;5.5.2 黃燈驅(qū)動(dòng)
library ieee;use ;entity hqudong is port(clk:in std_logic;enable :in std_logic;data:in integer range 0 to 5;segout: out std_logic_vector(6 downto 0));end;architecture behavior of hqudong is begin process(clk,data)begin if falling_edge(clk)and enable='1' then case data is when 0=>segout<=“1111110”;when 1=>segout<=“0110000”;when 2=>segout<=“1101101”;when 3=>segout<=“1111001”;when 4=>segout<=“0110011”;when 5=>segout<=“1011011”;when others =>null;end case;end if;end process;end;
、整個(gè)系統(tǒng)的構(gòu)成及仿真圖
圖(18)
圖(19)
結(jié)果說(shuō)明:在圖18 中,綠燈計(jì)數(shù)器直接接分位譯碼器1,紅燈計(jì)數(shù)器直接接分位譯碼器2,每個(gè)譯碼器分別接兩個(gè)驅(qū)動(dòng)電路,然后接輸出。左邊5 個(gè)驅(qū)動(dòng)器接的數(shù)碼管顯示的是甲車道各個(gè)燈亮的時(shí)間,右邊5 個(gè)驅(qū)動(dòng)器接的數(shù)碼管顯示的是乙車道各個(gè)燈亮的時(shí)間。在19 圖中可以看出甲車道綠燈亮的時(shí)間加上黃燈亮
乙車道紅燈亮的時(shí)間,乙車道綠燈亮的時(shí)間加上黃燈亮的時(shí)間等于甲車道紅燈亮的時(shí)間。與此同時(shí)具有燈亮?xí)r間計(jì)數(shù)顯示,可以看出該系統(tǒng)滿足我們所需的要求。
7、心得體會(huì)
一段時(shí)間的eda課程設(shè)計(jì),使我們學(xué)到了很多,本次課程設(shè)計(jì)的交通燈所需底層模塊很多,其實(shí)現(xiàn)的vhdl語(yǔ)言程序較多,整個(gè)過(guò)程中調(diào)試程序是很重要的,要有很好的耐心,開(kāi)始編譯時(shí)總是會(huì)有很多錯(cuò)誤,比如輸入錯(cuò)誤、語(yǔ)法錯(cuò)誤等,發(fā)現(xiàn)錯(cuò)誤之后再一遍一遍的仔細(xì)查錯(cuò),直到?jīng)]有錯(cuò)誤,然后進(jìn)行波型仿真。現(xiàn)在,對(duì)eda 的認(rèn)識(shí)有了很大的提高,能夠熟練的使用quartsii,能夠用vhdl 語(yǔ)言編寫(xiě)簡(jiǎn)單的、實(shí)用的小程序,這次eda 課程設(shè)計(jì)重點(diǎn)學(xué)習(xí)了交通燈部分程序的編寫(xiě)、調(diào)試、還有硬件下載、操作等過(guò)程。在整個(gè)課程設(shè)計(jì)的過(guò)程中,我們查閱了大量的關(guān)于eda 的資料,特別是在網(wǎng)上和圖書(shū)館我找到了大量的關(guān)于硬件編程的資料。在李敏老師平時(shí)認(rèn)真的授課及嚴(yán)格的治學(xué)態(tài)度下,讓我有了一定的基礎(chǔ),同時(shí)還得感謝老師在實(shí)驗(yàn)課上的細(xì)心指導(dǎo),讓我們學(xué)到了很多,受益終生。
【參考文獻(xiàn)】
[1] 潘松, 技術(shù)實(shí)用教程[m] 第2版 北京: 科學(xué)出版社, 2006 [2] 曹昕燕,周鳳臣,技術(shù)實(shí)驗(yàn)與課程設(shè)計(jì) 北京:清華大學(xué)出版社,2006.5
四位十進(jìn)制頻率計(jì)設(shè)計(jì)EDA實(shí)驗(yàn)報(bào)告篇五
eda
多 功 能 數(shù) 字 時(shí) 鐘
專業(yè):11級(jí)應(yīng)用電子技術(shù) 班級(jí):二班
學(xué)號(hào):110372023307 姓名:賀成林 指導(dǎo)老師:祝宏
日期:2023年6月29日
一、實(shí)驗(yàn)?zāi)康?/p>
1、課程設(shè)計(jì)是一實(shí)踐教學(xué)環(huán)節(jié),是針對(duì)《數(shù)字電子技術(shù)》課程的要求,結(jié)合實(shí)踐對(duì)學(xué)生進(jìn)行綜合設(shè)計(jì)性訓(xùn)練,在自學(xué)和實(shí)踐訓(xùn)練中培養(yǎng)學(xué)生理論聯(lián)系實(shí)踐和實(shí)踐動(dòng)手能力,獨(dú)立地解決實(shí)際問(wèn)題能力。
2、通過(guò)課程設(shè)計(jì)是使學(xué)生熟悉和了解可編程專用數(shù)字邏輯電路的設(shè)計(jì)、開(kāi)發(fā)流程,熟悉和了解現(xiàn)代eda設(shè)計(jì)工具,掌握數(shù)字電子系統(tǒng)層次化的設(shè)計(jì)方法。
已知條件:max+plus軟件
基本功能:
1、以數(shù)字形式顯示時(shí)、分、秒的時(shí)間;
2、小時(shí)計(jì)數(shù)器為24進(jìn)制;
3、分秒計(jì)數(shù)器為60進(jìn)制。
二、實(shí)驗(yàn)要求、綜合應(yīng)用《數(shù)字電子技術(shù)基礎(chǔ)》課程中的理論知識(shí)去獨(dú)立地完成一個(gè)設(shè)計(jì)課題;
2、熟悉和了解現(xiàn)代eda設(shè)計(jì)、編程、編譯、仿真及下載技術(shù)的全過(guò)程。
三、eda 技術(shù)介紹
1、eda 技術(shù)概況
eda 是電子設(shè)計(jì)自動(dòng)化(electronic design automation)的縮寫(xiě),在 20 世 紀(jì) 90 年代初從計(jì)算機(jī)輔助設(shè)計(jì)(cad)、計(jì)算機(jī)輔助制造(cam)、計(jì)算機(jī)輔助測(cè)試(cat)和計(jì)算機(jī)輔助工程(cae)的概念發(fā)展而來(lái)的。eda 技術(shù)就是以計(jì)算機(jī)為工 具,設(shè)計(jì)者在 eda 軟件平臺(tái)上,用硬件描述語(yǔ)言 hdl 完成設(shè)計(jì)文件,然后由計(jì)算機(jī) 自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合、優(yōu)化、布局、布線和仿真,直至對(duì)于特 定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。eda 技術(shù)的出現(xiàn),極大地提 高了電路設(shè)計(jì)的效率和可*性,減輕了設(shè)計(jì)者的勞動(dòng)強(qiáng)度。
2、altera quartus ii 軟件介紹
quartus ii 是 altera 公司的綜合性 pld 開(kāi)發(fā)軟件,支持原理圖、vhdl、veriloghdl 以及 ahdl(altera hardware description language)等多種 設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件 配置的完整 pld 設(shè)計(jì)流程。
四、關(guān)鍵詞
數(shù)字計(jì)數(shù)器、動(dòng)態(tài)顯示、快速校分、整點(diǎn)報(bào)時(shí)、時(shí)段控制。
五、實(shí)驗(yàn)步驟
1、秒計(jì)數(shù)器是60進(jìn)制的。當(dāng)下面的74161到9時(shí)等下一個(gè)脈沖來(lái)是向上面的74161計(jì)數(shù),到5時(shí)將兩個(gè)74161共同預(yù)置。從而實(shí)現(xiàn)00—59秒的計(jì)數(shù)功能。
電路圖如下:
進(jìn)行編譯及波形仿真,如下圖: 將上述文件保存并打包,如圖:
2、分計(jì)數(shù)器是60進(jìn)制的。功能如秒計(jì)數(shù)器。其電路圖如下:
波形圖仿真及打包圖如下:
3、小時(shí)計(jì)數(shù)器是24進(jìn)制的。當(dāng)下面的74161到9時(shí)等下一個(gè)脈沖來(lái)是向上面的74161計(jì)數(shù)。但是等到上面的記到2時(shí)下面的將不能超過(guò)4,所以等上面的記到2,下面的記到4時(shí)就將兩個(gè)74161共同預(yù)置。從而實(shí)現(xiàn)00—24秒的計(jì)數(shù)功能。
原理圖如下:
仿真的波形圖及打包的文件圖如下:
4、校時(shí)。校時(shí)是通過(guò)加快時(shí)分的計(jì)數(shù)速度來(lái)快速校準(zhǔn)時(shí)間的。實(shí)際上我們把秒脈沖cps加到分計(jì)數(shù)和時(shí)計(jì)數(shù)上,是他們加快計(jì)數(shù)速度。所以其中我們需要通過(guò)開(kāi)關(guān)來(lái)選擇。
原理圖及打包圖如下:
5、時(shí)段控制:時(shí)段控制是通過(guò)7485集成電路的數(shù)據(jù)比較來(lái)控制的。
原理圖及打包圖如下:
6、整點(diǎn)報(bào)時(shí):整點(diǎn)報(bào)時(shí)是通過(guò)整點(diǎn)時(shí)的二進(jìn)制數(shù)據(jù)規(guī)律來(lái)報(bào)時(shí)的。
原理圖及打包圖如下:
7、將時(shí)分秒打包文件連成多功能數(shù)字電路圖如下:
8、多功能數(shù)字鐘硬件測(cè)試原理圖如下:
9、部分制作過(guò)程圖,如下:
六、實(shí)驗(yàn)工具
裝有quartusⅱ軟件的電腦,eda開(kāi)發(fā)板,相關(guān)eda設(shè)計(jì)方面的書(shū)籍。
七、設(shè)計(jì)中遇到問(wèn)題及解決方法
1、實(shí)驗(yàn)后期的引腳分配及下載方法不當(dāng),實(shí)驗(yàn)所用電腦沒(méi)有
quartus11.0 的 驅(qū)動(dòng)。耗費(fèi)時(shí)間較多。解決方法:參閱西安電子科技大學(xué)出版社出版的《數(shù)字電路設(shè)計(jì)及 verilog hdl 實(shí)現(xiàn)》第 394 頁(yè)關(guān)于引腳分配和下載驗(yàn)證的介紹;
2、下載驗(yàn)證過(guò)程中時(shí)段控制部分有錯(cuò)誤,原代碼在軟件上仿真沒(méi)有錯(cuò)誤,但是下載到實(shí)驗(yàn)板驗(yàn)證時(shí),出現(xiàn)錯(cuò)誤。解決方法:通過(guò)去請(qǐng)教同學(xué)及查閱相關(guān)資料得到解決。
八、特點(diǎn)和實(shí)用性
利用 quartusii 軟件,結(jié)合所學(xué)的數(shù)字電路的知識(shí)設(shè)計(jì)一個(gè) 24 時(shí)多功能數(shù) 字鐘,具有正常分、秒計(jì)時(shí),動(dòng)態(tài)顯示、快速校分、整點(diǎn)報(bào)時(shí)、時(shí)段控制的功能。分析整個(gè)電路的工作原理,分別說(shuō)明各子模塊的設(shè)計(jì)原理和調(diào)試、仿真、編 程下載的過(guò)程,并對(duì)最終結(jié)果進(jìn)行總結(jié),最后提出在實(shí)驗(yàn)過(guò)程中出現(xiàn)的問(wèn)題和解 決的方案。通過(guò)實(shí)驗(yàn)掌握一些邏輯組合器件的基本功能和用法,同時(shí)體會(huì)利用軟件設(shè)計(jì) 電路的方便快捷,避免硬件布線的繁瑣,提高效率。
九、心得體會(huì)
1、設(shè)計(jì)必須要有整體概念,提前熟悉軟件。剛開(kāi)始時(shí)沒(méi)頭緒,不知道該怎 樣分塊,進(jìn)度很慢,加上對(duì)軟件不是很熟悉,比如:封裝要注意哪些,哪些不能 運(yùn)行,哪些是不正確的操作等等,走了很多冤枉路。
2、設(shè)計(jì)的模塊要分塊調(diào)試,免得等所有都完工了再調(diào)試出錯(cuò),那樣的話很 難確定是什么出錯(cuò),更加沒(méi)頭緒。有必要的話做一部分后就送到平臺(tái)上調(diào)試,這 樣會(huì)大大減少出錯(cuò)率。
3、沒(méi)有硬件軟件化的概念,開(kāi)始設(shè)計(jì)時(shí)沒(méi)有總體的規(guī)劃,不知道什么是可行 的,什么是封裝,怎樣使搭配組合最優(yōu)化。
4、遇到問(wèn)題先自己摸索,查閱資料要有技巧,避免沒(méi)有目的和思路。明白 自己要解決什么問(wèn)題。同時(shí)請(qǐng)教老師,和同學(xué)交流。良好的溝通很重要。針對(duì)本次的畢業(yè)設(shè)計(jì),用我國(guó)著名的數(shù)學(xué)家的話概括一下我的感受: “科學(xué)上沒(méi)有平坦的大道,真理長(zhǎng)河中有無(wú)數(shù)礁石險(xiǎn)灘。只有不為畏攀登的采藥者,只有不怕 巨浪的弄潮兒,才能登上高峰采得仙草,深入水底覓得驪珠。”
十、參閱教材及文獻(xiàn)
1、蔣立平編著《數(shù)字電路》.南京理工大學(xué)翻印;
2、南京理工大學(xué)電子技術(shù)中心編著.《eda 設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)書(shū)》 南京理工大學(xué),2008 年;
3、譚會(huì)生,張昌凡.《eda 技術(shù)及應(yīng)用》.西安電子科技大學(xué)出版社,2001年;
4、《數(shù)字電路設(shè)計(jì)及 verilog hdl 實(shí)現(xiàn)》 西安電子科技大學(xué)出版社出版;
5、《電子線路實(shí)驗(yàn)設(shè)計(jì)與仿真講義》。
上一篇:最新電子eda課程心得
下一篇:返回列表