EDA大作業(yè)設計(模板5篇)

格式:DOC 上傳日期:2023-05-24 06:48:22
EDA大作業(yè)設計(模板5篇)
時間:2023-05-24 06:48:22     小編:cyyllee

在日常的學習、工作、生活中,肯定對各類范文都很熟悉吧。范文怎么寫才能發(fā)揮它最大的作用呢?以下是我為大家搜集的優(yōu)質(zhì)范文,僅供參考,一起來看看吧

EDA大作業(yè)設計篇一

交通燈設計學 院:電子信息學院

專 業(yè):電氣工程及其自動化 班 級:

學 號: 姓 名: 1

目錄

前言------1

一、設計任務-----------

2二、題目分析與整體構(gòu)思--

2三、硬件電路設計-------3

四、程序設計-----------7

五、設計創(chuàng)新----------12

六、心得體會----------1

3七、參考文獻----------13

前 言

伴隨著社會的發(fā)展以及人類生活水平的提高,汽車的數(shù)量在d的dea技術(shù)的發(fā)展和應用領域的擴大與深入,eda技術(shù)在電子信息,通信,自動,控制及計算機應用等領域的重要性日益突出。隨著技術(shù)市場與人才市場對dea的不斷的增加,交通的問題日益突出,單單依靠人力來指揮交通已經(jīng)不可行了,所以,設計交通燈來完成這個需求就顯的越加迫切了.為了確保十字路口的行人和車輛順利、暢通地通過,往往采用電子控制的交通信號來進行指揮。以下就是運用數(shù)字電子設計出的交通燈:其中紅燈亮,表示該條路禁止通行;黃燈亮表示停車;綠燈亮表示允許通行。一﹑設計任務

1.1設計要求: 設計一個十字路口的交通燈控制系統(tǒng),用實驗平臺上的led發(fā)光二極管顯示車輛通過的方向(東西和南北各一組),用數(shù)碼管顯示該方向的剩余時間。要求:工作順序為東西方向紅燈亮45秒,前40秒南北方向綠燈亮,后5秒黃燈亮。然后南北方向紅燈亮45秒,前40秒東西方向綠燈亮,后5秒黃燈亮。依次重復。有緊急事件時允許將某方向一直開綠燈或者開紅燈,另外允許特定情況兩方向均為紅燈,車輛禁行,比如十字路口惡性交通事故時,東西,南北兩個方向均有兩位數(shù)碼管適時顯示該方向亮燈時間。

二、題目分析與整體構(gòu)思

(1)該交通燈控制器應具備的功能

設東西和南北方向的車流量大致相同,因此紅、黃、綠燈的時長也相同,定為紅燈45sec,黃燈5sec,綠燈40sec,同時用數(shù)碼管指示當前狀態(tài)(紅、黃、綠)剩余時間。另外,設計一個緊急狀態(tài),當緊急狀態(tài)出現(xiàn)時,兩個方向都禁止通行,指示紅燈。緊急狀態(tài)解除后,重新計數(shù)并指示時間。(2)實現(xiàn)方案

一 從題目中計數(shù)值與交通燈的亮滅的關系如圖(1)所示

三﹑硬件電路設計(1)分頻器

分頻器實現(xiàn)的是將高頻時鐘信號轉(zhuǎn)換成底頻的時鐘信號,用于觸發(fā)控制器、計數(shù)器和掃描顯示電路。該分頻器實現(xiàn)的是一千分頻,將一千赫茲的時鐘信號分頻成一赫茲的時鐘信號。

(2)控制器設計

控制器的作用是根據(jù)計數(shù)器的計數(shù)值控制發(fā)光二極管的亮、滅,以及輸出倒計時數(shù)值給七段數(shù)碼管的分位譯碼電路。此外,當檢測到特殊情況(hold=‘1’)發(fā)生時,無條件點亮紅燈的二極管。本控制器可以有兩種設計方法,一種是利用時鐘煙的下降沿讀取前級計數(shù)器的計數(shù)值,然后作出反應;另一種則是將本模塊設計成純組合邏輯電路,不需要時鐘驅(qū)動。這兩種方法各有所長,必須根據(jù)所用器件的特性進行選擇:比如有些fpga有豐富的寄存器資源,而且可用與組合邏輯的資源則相對較少,那么使用第一種方法會比較節(jié)省資源;而有些cpld的組合邏輯資源則比較多,用第二種方法可能更好。

(3)計數(shù)器設計

這里需要的計數(shù)器的計數(shù)范圍為0-90。計到90后,下一個時鐘沿回復到0,開始下一輪計數(shù)。此外,當檢測到特殊情況(hold=‘1’)發(fā)生是,計數(shù)器暫停計數(shù),而系統(tǒng)復位信號reset則使計數(shù)器異步清零。

(4)分位譯碼電路設計--1 因為控制器輸出的到計時數(shù)值可能是1位或者2位十進制數(shù),所以在七段數(shù)碼管的譯碼電路前要加上分位電路(即將其分為2個1位的十進制數(shù),如25分為2和5,7分為0和7)。

與控制器一樣,分位電路同樣可以由時鐘驅(qū)動,也可以設計成純組合邏輯電路??刂破髦?,引入了寄存器。為了讓讀者開拓眼界,分位電路就用組合邏輯電路實現(xiàn)。

(5)分位譯碼電路設計—2

(6)數(shù)碼管驅(qū)動設計

串行連接,即每個數(shù)碼管對應的引腳都接在一起(如每個數(shù)碼管的a引腳都接到一起,然后再接到cpld/fpga上的一個引腳上),通過控制公共端為高電平控制相應數(shù)碼管的亮、滅(共陰極數(shù)碼管的公共端為高電平時,led不亮;共陽極的公共端為低電平時,led不亮)。

串行法的優(yōu)點在于消耗的系統(tǒng)資源少,占用的i/o口少,n個數(shù)碼管只需要(7+n)個引腳(如果需要小數(shù)點,則是(8+n)個引腳)。其缺點是控制起來不如并行法容易。

(7)下圖為交通燈控制器的頂層文件連接圖

四、程序設計

(1)分頻器的設計

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;

四、程序設計

(1)分頻器的設計

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;(3)計數(shù)器的設計

這里計數(shù)器的計數(shù)范圍為0—45s。計到45后,下一個時鐘沿回復到0,開始下一輪計數(shù).此外,當檢測到特殊情況(hold=‘1‘)發(fā)生時,計數(shù)器暫停計數(shù),而系統(tǒng)復位號reset則使計數(shù)器異步清0。程序如下:

library ieee;use ;entity counter is port(clock:in std_logic;reset:in std_logic;hold:in std_logic;countnum:buffer integer range 0 to 90);end;architecture behavior of counter is begin process(reset,clock)begin if reset='1' then countnum<=0;elsif rising_edge(clock)then if hold='1' then countnum<=countnum;else if countnum=90 then countnum<=0;else countnum<=countnum+1;end if;end if;end if;end process;end;(4)分位譯碼電路設計--1 library ieee;use ;entity fenwei is port(numin:in integer range 0 to 45;numa,numb:out integer range 0 to 9);end;

architecture behavior of fenwei 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)分位譯碼電路設計—2 use ;entity fenwei2 is port(numin:in integer range 0 to 45;numc,numd:out integer range 0 to 9);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;

(6)數(shù)碼管驅(qū)動設計 library ieee;use ;entity bcd_data is port(bcd_data:in std_logic_vector(3 downto 0);segout: out std_logic_vector(6 downto 0));end;architecture behavior of bcd_data is begin process(bcd_data)begin case bcd_data is when “0000”=>segout<=“1111110”;when “0001”=>segout<=“0110000”;when “0010”=>segout<=“1101101”;when “0011” =>segout<=“1111001”;when “0100” =>segout<=“0110011”;when “0101”=>segout<=“1011011”;when “0110”=>segout<=“0011111”;when “0111”=>segout<=“1110000”;when “1000” =>segout<=“1111111”;when “1001” =>segout<=“1110011”;when others =>null;end case;end process;end;

library ieee;use ;use ;entity dtsm is port(clk:in std_logic;numa,numb,numc,numd: in std_logic_vector(3 downto 0);segout1:out std_logic_vector(6 downto 0);led_sel: out std_logic_vector(3 downto 0));end dtsm;architecture bhv of dtsm is component bcd_data is port(bcd_data:in std_logic_vector(3 downto 0);segout:out std_logic_vector(6 downto 0));end component;signal x:std_logic_vector(3 downto 0);signal q:std_logic_vector(1 downto 0);begin p1:process(clk)begin if clk'event and clk ='1' then q<= q + '1';end if;end process;

p2:process(q)begin case q is when“00”=>led_sel<=“1110”;x<=numd;when“01”=>led_sel<=“1101”;x<=numc;when“10”=>led_sel<=“1011”;x<=numb;when“11”=>led_sel<=“0111”;x<=numa;when others=>null;end case;end process;u1:bcd_data port map(bcd_data=>x,segout=>segout1);end

五﹑設計創(chuàng)新

1﹑模塊化編程,模塊化接線,再編譯總原理圖,思路比較清楚解容易。2﹑可以比較容易的改變紅綠燈的時間。3﹑有的模塊可以供其它任務通用。

六﹑心得體會

eda設計我感覺程序調(diào)試最重要,試驗軟件、硬件熟悉其次。我在編完各模塊程序之后,編譯查錯最初有三十幾個錯誤,有輸入錯誤、語法錯誤。一遍一遍的變異查錯,直到?jīng)]有錯誤。必須注意工程名和實體名一致,不然一般會出錯。在沒有錯誤之后可以進行波型仿真。若與理想的不同,再查看程序,有無原理上的編輯錯誤或沒有查出的輸入錯誤。都通過可以進行管腳配對,把程序燒入芯片,在實物機上看結(jié)果,從顯示中得出還需改正的地方,再去改程序。必須注意沒改一次都要編譯,重新燒入。七﹑參考文獻

(1)楊頌華 ;數(shù)字電子技術(shù)基礎.西安:西安電子科技大學。

(2)黃任;2005;vhdl入門.解惑.經(jīng)典實例.經(jīng)驗總結(jié).北京:北京航空航天大學出版社。

(3)徐志軍,/fpga的開發(fā)與應用.北京:電子工業(yè)出版社。

(4)設計與應用.西安:西安電子科技大學出版社。

EDA大作業(yè)設計篇二

現(xiàn)代eda技術(shù)及其發(fā)展

引言

隨著大規(guī)模集成電路技術(shù)和計算機技術(shù)的不斷發(fā)展,在涉及通信、國防、航天、醫(yī)學、工業(yè)自動化、計算機應用、儀器儀表等領域的電子系統(tǒng)設計工作中,eda技術(shù)的含量正以驚人的速度上升;電子類的高新技術(shù)項目的開發(fā)也逾益依賴于eda技術(shù)的應用。即使是普通的電子產(chǎn)品的開發(fā),eda技術(shù)常常使一些原來的技術(shù)瓶頸得以輕松突破,從而使產(chǎn)品的開發(fā)周期大為縮短、性能價格比大幅提高。不言而喻,eda技術(shù)將迅速成為電子設計領域中的極其重要的組成部分。

eda技 術(shù)

即電子設計自動(electronic designautomation)技術(shù),以大規(guī)模可編程邏輯器件為設計載體,以硬件描述語言為系統(tǒng)邏輯描述的主要表達方式,以計算機、大規(guī)??删幊踢壿嬈骷拈_發(fā)軟件及實驗開發(fā)系統(tǒng)為設計工具,通過有關的開發(fā)軟件,自動完成用軟件的方式設計電子系統(tǒng)到硬件系統(tǒng)的一門技術(shù)。eda技術(shù)是一種實現(xiàn)電子系統(tǒng)或電子產(chǎn)品自動化設計的技術(shù),與電子技術(shù)、微電子技術(shù)的發(fā)展密切相關。同時它吸收了計算機科學領域的大多數(shù)最新研究成果,以計算機作為基本工作平臺,利用計算機圖形學、拓撲邏輯學、計算數(shù)學以至人工智能學等多種計算機應用學科的最新成果而開發(fā)出來的一整套電子cad通用軟件工具,是一種幫助電子設計工程師從事電子組件產(chǎn)品和系統(tǒng)設計的綜合技術(shù)。eda技術(shù)的出現(xiàn),為電子系統(tǒng)設計帶來了一場革命性的變化。沒有eda技術(shù)的支持,想要完成上述超大規(guī)模集成電路的設計制造是不可想象的。

eda技術(shù)的主要內(nèi)容

eda技術(shù)涉及面很廣,內(nèi)容豐富,從教學和實用的角度看,主要應掌握如下四個方面的內(nèi)容:1)大規(guī)??删幊踢壿嬈骷?2)硬件描述語言;3)軟件開發(fā)工具;4)實驗開發(fā)系統(tǒng)。其中,大規(guī)??删幊踢壿嬈骷抢胑da技術(shù)進行電子系統(tǒng)設計的載體,硬件描述語言是利用eda技術(shù)進行電子系統(tǒng)設計的主要表達手段,軟件開發(fā)工具是利用eda技術(shù)進行電子系統(tǒng)設計的智能化的自動設計工具,實驗開發(fā)系統(tǒng)則是利用eda

技術(shù)進行電子系統(tǒng)設計的下載工具及硬件驗證工具。大規(guī)??删幊踢壿嬈骷ld(programmable logic device,可編程邏輯器件)是一種由用戶編程以實現(xiàn)某種邏輯功能的新型邏輯器件。fpga和cpld分別是現(xiàn)場可編程門陣列和復雜可編程邏輯器件的簡稱,兩者的功能基本相同,只是實現(xiàn)原理略有不同,所以我們有時可以忽略這兩者的區(qū)別,統(tǒng)稱為可編程邏輯器件或cpld/fpga。pld是電子設計領域中最具活力和發(fā)展前途的一項技術(shù),pld能完成任何數(shù)字器件的功能。pld如同一張白紙或是一堆積木,工程師可以通過傳統(tǒng)的原理圖輸入法,或是硬件描述語言自由的設計一個數(shù)字系統(tǒng),通過軟件仿真,我們可以事先驗證設計的正確性。在pcb完成以后,還可以利用pld的在線修改能力,隨時修改設計而不必改動硬件電路。使用pld來開發(fā)數(shù)字電路,可以大大縮短設計時間,減少pcb面積,提高系統(tǒng)的可靠性。pld的這些優(yōu)點使得pld技術(shù)在20世紀90年代以后得到飛速的發(fā)展,同時也大大推動了eda軟件和硬件描述語言(hdl)的進步。硬件描述語言(hdl)硬件描述語言(hdl)是相對于一般的計算機軟件語言如c、pascal而言的。hdl是用于設計硬件電子系統(tǒng)的計算機語言,它描述電子系統(tǒng)的邏輯功能、電路結(jié)構(gòu)和連接方式。hdl具有與具體硬件電路無關和與設計平臺無關的特性,并且具有良好的電路行為描述和系統(tǒng)描述的能力,并在語言易讀性和層次化結(jié)構(gòu)化設計方面,表現(xiàn)了強大的生命力和應用潛力。用hdl進行電子系統(tǒng)設計的一個很大的優(yōu)點是設計者可以專心致力于其功能的實現(xiàn),而不需要對不影響功能的與工藝有關的因素花費過多的時間和精力。就fpga/cpld開發(fā)來說,比較常用和流行的hdl主要有vhdl、verilog hdl、abel、ahdl、systemverilog和systemc。其中vhdl、verilog在現(xiàn)在eda設計中使用最多,也擁有幾乎所有的主流eda工具的支持。而sys-temverilog和systemc這兩種hdl語言還處于完善過程中?,F(xiàn)在,vhdl和verilog作為ieee的工業(yè)標準硬件描述語言,又得到眾多eda公司的支持,在電子工程領域,已成為事實上的通用硬件描述語言。有專家認為,在新的世紀中,vhdl與verilog hdl語言將承擔起大部分的數(shù)字系統(tǒng)設計任務。

軟件開發(fā)工具

這類軟件一般由pld/fpga芯片廠家提供,基本都可以完成所有的設計輸入(原理圖或hdl),仿真,綜合,布線,下載等工作。集成的pld/fpga開發(fā)環(huán)境供應商開發(fā)環(huán)境簡介alteramaxplusiialtera的maxplusii曾經(jīng)是最優(yōu)秀的pld開發(fā)平臺之一,適合開發(fā)早期的中小規(guī)

模pld/fpga使用者眾多。目前altera已經(jīng)停止開發(fā)maxplusii,而轉(zhuǎn)向quartusii軟件平臺quartusiialtera公司新一代pld開發(fā)軟件,適合大規(guī)模fpga的開發(fā)xilinxfoundationxilinx公司上一代的pld開發(fā)軟件,目前xilinx已經(jīng)停止開發(fā)foundation轉(zhuǎn)向ise軟件平臺ise xilinx公司目前的fpga/pld開發(fā)軟件

latticeispdesignexpertlattice公司的pld開發(fā)軟件,目前最新軟件改名為ispleverispleverlattice推出的最新一代pld集成開發(fā)軟件,取代ispexpert成為fpga和pld設計的主要工具。實驗開發(fā)系統(tǒng)提供芯片下載電路及eda實驗/開發(fā)的外圍資源(類似于用于單片機開發(fā)的仿真器),供硬件驗證用。一般包括:1)實驗或開發(fā)所需的各類基本信號發(fā)生模塊,包括時鐘、脈沖、高低電平等2)fpga/cpld輸出信息顯示模塊,包括數(shù)據(jù)顯示、發(fā)光管顯示、聲響指示等3)監(jiān)控程序模塊,提供“電路重構(gòu)軟配置4)目標芯片適配座以及上面的fpga/cpld目標芯片和編程下載電路。

eda技術(shù)的應用展望

eda技術(shù)將廣泛應用于高校電類專業(yè)的實踐教學和科研工作中與世界各知名高校相比,我國高等院校在eda及微電子方面的教學和科研工作有著明顯的差距,我們的學生現(xiàn)在做的課程實驗普遍陳舊,動手能力較差。從某種意義上來說,eda教學科研情況如何,代表著一個學校電類專業(yè)教學及科研水平的高低,而eda教學科研工作開展起來后,還會對微電子類、計算機類學科產(chǎn)生積極的影響,從而帶動各高校相應學科的同步發(fā)展。eda技術(shù)將廣泛應用于專用集成電路和新產(chǎn)品的開發(fā)研制中由于可編程邏輯器件性能價格比的不斷提高,開發(fā)軟件功能的不斷完善,而且由于用eda技術(shù)設計電子系統(tǒng)具有用軟件的方式設計硬件;設計過程中可用有關軟件進行各種仿真;系統(tǒng)可現(xiàn)場編程,在線升級;整個系統(tǒng)可集成在一個芯片上等特點,使其將廣泛應用于專用集成電路和機械、電子、通信、航空航天、化工、礦產(chǎn)、生物、醫(yī)學、軍事等各個領域新產(chǎn)品的開發(fā)研制中。eda技術(shù)將廣泛應用于傳統(tǒng)機電設備的升級換代和技術(shù)改造傳統(tǒng)機電設備的電器控制系統(tǒng),如果利用eda技術(shù)進行重新設計或進行技術(shù)改造,不但設計周期短、設計成本低,而且將提高產(chǎn)品或設備的性能,縮小產(chǎn)品體積,提高產(chǎn)品的技術(shù)含量,提高產(chǎn)品的附加值。eda技術(shù)將在國防現(xiàn)代化建設中發(fā)揮重要的作用eda技術(shù)是電子設計領域的一場革命,目前正處于高速發(fā)展階段,每年都有新的eda工具問世,我國eda技術(shù)的應用水平長期落后于發(fā)達國

家,如果說用于民品的核心集成電路芯片還可以從國外買的到的話,那么軍用集成電路就必須依靠自己的力量研制開發(fā),因為用錢是買不到國防現(xiàn)代化的,特別是中國作為一支穩(wěn)定世界的重要力量,更要走自主開發(fā)的道路。強大的現(xiàn)代國防必須建立在自主開發(fā)的基礎上,因此,廣大電子工程技術(shù)人員應該盡早掌握這一先進技術(shù),這不僅是提高設計效率和我國電子工業(yè)在世界市場上生存、竟爭與發(fā)展的需要,更是建立強大現(xiàn)代國防的需要。

我國eda技術(shù)的出路

中國ic設計公司任重道遠近年來我國的半導體市場發(fā)展突飛猛進,政府積極扶植eda產(chǎn)業(yè),加大招商引資力度,大力建設eda制造業(yè)基地,國務院頒布的軟件產(chǎn)業(yè)和集成電路產(chǎn)業(yè)發(fā)展的若干政策從政策上為eda的發(fā)展營造了良好的外部環(huán)境,同時世界領先的一些供應商也看好中國市場的潛在優(yōu)勢,向中國出口先進的設計工具,但具備了工具只是解決了設計手段,而中國的設計師在eda的總體應用能力方面與世界發(fā)達國家相比還存在一定的差距,突出表現(xiàn)為專業(yè)人才緊缺,缺乏成熟化的整合性集成設計環(huán)境,供應商技術(shù)服務支持不夠,中國eda技術(shù)的現(xiàn)在和未來都應重視設計方法、工具和設計語言等方面的問題,從整體上看,中國市場對設計工具的需求已越來越與國際接軌,但是盡管中國eda設計領域中前端的設計相對成熟,但后端例如從網(wǎng)表到c++等的設計卻面臨著更大的挑戰(zhàn)。無論是eda的使用還是eda工具本身,我國與先進國家相比都有很大差距。eda標準化工作在我國剛剛起步,我國有龐大的市場需求和快的增長速度,同時還有后發(fā)優(yōu)勢,這是我國eda發(fā)展的楔機。在eda標準化方面,目前主要應采用國際和國外先進標準,一方面引進和轉(zhuǎn)化適用的標準,更重要的是加強轉(zhuǎn)化后標準的宣傳和推廣,通過標準化工作促進我國eda及集成電路產(chǎn)業(yè)的發(fā)展。

我國如何應對eda技術(shù)的挑戰(zhàn)

①充分發(fā)揮eda仿真技術(shù)在教學中的應用,培養(yǎng)更多適應新技術(shù)要求的人才。人才需求的變化,技術(shù)的發(fā)展之快更是需要教育工作者有著人才培養(yǎng)的超前意識。這一意識必須是科學的、嶄新的、快速的、甚至是跳躍的。特別是人才的培養(yǎng)需要有掌握新技術(shù)的專業(yè)教師,還要有新技術(shù)的設備才能滿足人才培養(yǎng)的要求。新技術(shù)、新設備的大量投入可能會影響到進入人才市場最前沿的機遇。這就需要我們思維創(chuàng)新,教學手段創(chuàng)新。作者認為學校實驗教學就應該以eda仿真技術(shù)

為突破口,引入計算機輔助教學手段,從而加快高素質(zhì)人才培養(yǎng)的速度,建立雄厚的eda技術(shù)人才基礎。②以半導體的研究創(chuàng)新促進eda技術(shù)發(fā)展半導體工藝技術(shù)在過去5年中正以飛快的速度發(fā)展。硅的生產(chǎn)率每18個就會增加,而設計生產(chǎn)率仍舊嚴重滯后。自從半導體行業(yè)步入0.13μm時代以來,集成電路設計所面臨的挑戰(zhàn)已被多次提及,范圍包括了數(shù)字和模擬電路領域。相關的內(nèi)容包括:功率管理,功能驗證,漏電流,對于超過1.5億個晶體管的復雜設計管理,還有0.13μm以下的混合信號和數(shù)字設計等等。過去那些令人生畏的巨大挑戰(zhàn)總會被解決,所以說沒有人會懷疑半導體技術(shù)會適時而及時地找出解決所面臨的挑戰(zhàn)方案,來擊敗itrs的預言。但是,為了在設計效率和設計技術(shù)有效上取得長足進步和避免成本重復,eda產(chǎn)業(yè)應該支持相應的一整套標準,如設計工具的全球戰(zhàn)略、可制造性設計、統(tǒng)計設計方法、低功率設計和系統(tǒng)級確認等。③開發(fā)實用性更強的eda軟件在eda軟件開發(fā)方面,目前主要集中在美國。但各國也正在努力開發(fā)相應的工具。日本、韓國都有asic設計工具,但不對外開放。中國華大集成電路設計中心,也提供ic設計軟件,但性能不是很強。相信在不久的將來會有更多更好的功能強大、界面友好、使用方便的設計工具在各地開花并結(jié)果。④外設技術(shù)與eda工程相結(jié)合外設技術(shù)與eda工程相結(jié)合的市場前景看好,如組合超大屏幕的相關連接,多屏幕技術(shù)也有所發(fā)展。中國自1995年以來加速開發(fā)半導體產(chǎn)業(yè),先后建立了幾所設計中心,推動系列設計活動以應對亞太地區(qū)其它eda市場的競爭。在信息通信領域,要優(yōu)先發(fā)展高速寬帶信息網(wǎng)、深亞微米集成電路、新型元器件、計算機及軟件技術(shù)、第三代移動通信技術(shù)、信息管理、信息安全技術(shù),積極開拓以數(shù)字技術(shù)、網(wǎng)絡技術(shù)為基礎的新一代信息產(chǎn)品,發(fā)展新興產(chǎn)業(yè),培育新的經(jīng)濟增長點。要大力推進制造業(yè)信息化,積極開展計算機輔助設計

(cad)、計算機輔助工程(cae)、計算機輔助工藝(capp)、計算機輔助制造(cam)、產(chǎn)品數(shù)據(jù)管理(pdm)、制造資源計劃(mrpii)及企業(yè)資源管理(erp)等。有條件的企業(yè)可開展“網(wǎng)絡制造”,便于合作設計、合作制造,參與國內(nèi)和國際競爭。開展“數(shù)控化”工程和“數(shù)字化”工程。自動化儀表的技術(shù)發(fā)展趨勢的測試技術(shù)、控制技術(shù)與計算機技術(shù)、通信技術(shù)進一步融合,形成測量、控制、通信與計算機(m3c)結(jié)構(gòu)。在asic和pld設計方面,向超高速、高密度、低功耗、低電壓方面發(fā)展。

EDA大作業(yè)設計篇三

實驗一:

quartus ii 軟件使用及組合電路設計仿真

實驗目的:

學習quartus ii 軟件的使用,掌握軟件工程的建立,vhdl源文件的設計和波形仿真等基本內(nèi)容。

實驗內(nèi)容:

1.四選一多路選擇器的設計 基本功能及原理 :

選擇器常用于信號的切換,四選一選擇器常用于信號的切換,四選一選擇器可以用于4路信號的切換。四選一選擇器有四個輸入端a,b,c,d,兩個信號選擇端s(0)和s(1)及一個信號輸出端y。當s輸入不同的選擇信號時,就可以使a,b,c,d中某一個相應的輸入信號與輸出y端接通。

邏輯符號如下:

程序設計:

軟件編譯:

在編輯器中輸入并保存了以上四選一選擇器的vhdl源程序后就可以對它進行編譯了,編譯的最終目的是為了生成可以進行仿真、定時分析及下載到可編程器件的相關文件。仿真分析:

仿真結(jié)果如下圖所示

分析:

由仿真圖可以得到以下結(jié)論:

當s=0(00)時y=a;當s=1(01)時y=b;當 s=2(10)時y=c;當s=3(11)時y=d。符合我們最開始設想的功能設計,這說明源程序正確。2.七段譯碼器程序設計 基本功能及原理:

七段譯碼器是用來顯示數(shù)字的,7段數(shù)碼是純組合電路,通常的小規(guī)模專用ic,如74或4000系列的器件只能作十進制bcd碼譯碼,然而數(shù)字系統(tǒng)中的數(shù)據(jù)處理和運算都是2進制的,所以輸出表達都是16進制的,為了滿足16進制數(shù)的譯碼顯示,最方便的方法就是利用vhdl譯碼程序在fpga或cpld中實現(xiàn)。本項實驗很容易實現(xiàn)這一目的。輸出信號的7位分別接到數(shù)碼管的7個段,本實驗中用的數(shù)碼管為共陽極的,接有低電平的段發(fā)亮。數(shù)碼管的圖形如下

七段譯碼器的邏輯符號:

程序設計:

軟件編譯:

在編輯器中輸入并保存了以上七段譯碼器的vhdl源程序后就可以對它進行編譯了,編譯的最終目的是為了生成可以進行仿真、定時分析及下載到可編程器件的相關文件

。仿真分析:

仿真結(jié)果如下圖所示:

分析: 由仿真的結(jié)果可以得到以下結(jié)論:

當a=0(0000)時led7=1000000 此時數(shù)碼管顯示0; 當a=1(0001)時led7=1111001 此時數(shù)碼管顯示1; 當a=2(0010)時led7=0100100 此時數(shù)碼管顯示2; 當 a=3(0011)時led7=0110000 此時數(shù)碼管顯示3; 當 a=4(0100)時led7=0011001 此時數(shù)碼管顯示4; 當 a=5(0101)時led7=0010010 此時數(shù)碼管顯示5; 當 a=6(0110)時led7=0000010 此時數(shù)碼管顯示6; 當 a=7(0111)時led7=1111000 此時數(shù)碼管顯示7; 當 a=8(1000)時led7=0000000 此時數(shù)碼管顯示8; 當a=9(1001)時led7=0010000 此時數(shù)碼管顯示9; 當a=10(1010)時led7=0001000 此時數(shù)碼管顯示a; 當a=11(1011)時led7=0000011 此時數(shù)碼管顯示b; 當 a=12(1100)時led7=1000110 此時數(shù)碼管顯示c; 當a=13(1101)時led7=0100001 此時數(shù)碼管顯示d; 當a=14(1110)時led7=0000110 此時數(shù)碼管顯示e; 當a=15(1111)時led7=0001110 此時數(shù)碼管顯示f;

這完全符合我們最開始的功能設計,所以可以說明源vhdl程序是正確的。

實驗心得:

通過這次實驗,我基本掌握了quartus ii軟件的使用,也掌握了軟件工程的建立,vhdl源文件的設計和波形仿真等基本內(nèi)容。在實驗中,我發(fā)現(xiàn)eda這門課十分有趣,從一個器件的功能設計到程序設計,再到編譯成功,最后得到仿真的結(jié)果,這其中的每一步都需要認真分析,一遍又一遍的編譯,修改。當然,中間出現(xiàn)過錯誤,但我依然不放棄,一點一點的修改,驗證,最終終于出現(xiàn)了正確的仿真結(jié)果,雖然有一些毛刺,但是總的來說,不影響整體的結(jié)果。

實驗二:計數(shù)器設計與顯示

實驗目的:

(1)熟悉利用quartus ii中的原理圖輸入法設計組合電路,掌握層次化的設計方法;

(2)學習計數(shù)器設計,多層次設計方法和總線數(shù)據(jù)輸入方式的

仿真,并進行電路板下載演示驗證。實驗內(nèi)容:

1.完成計數(shù)器設計

基本功能及原理:

本實驗要設計一個含有異步清零和計數(shù)使能的4位二進制加減可控計數(shù)器,即有一個清零端和使能端,當清零端為1時異步清零,即所有輸出值都為0,當使能端為0時,計數(shù)器停止工作,當使能端為1時,正常工作,由時鐘控制。另外,還應該有一個控制端,當控制端為0時,進行減法運算,當控制端為1時,進行加法運算。輸出端有輸出值和進位端,當進行加法運算時,輸出值遞增,當減法運算時,輸出值遞減,同時進位端進行相應的變化。

4位二進制加減計數(shù)器的邏輯符號:

程序設計:

軟件編譯:

在編輯器中輸入并保存了以上4位二進制加減計數(shù)器的vhdl源程序后就可以對它進行編譯了,編譯的最終目的是為了生成可以進行仿真、定時分析及下載到可編程器件的相關文件。仿真分析: 仿真結(jié)果如下:

分析:

由仿真圖可以得到以下結(jié)論:

當enable端為0時,所有數(shù)值都為0,當enable端為1時,計數(shù)器正常工作;當reset端為1時,異步清零,所有輸出數(shù)值為0,當reset端為0時,正常工作;當updown端為0時,進行減法運算,當updown為1時,進行加法運算;另外,當程序進行減法運算時,出現(xiàn)借位時,co為1,其余為0,當進行加法運算時,出現(xiàn)進位時,co為1,其余為0。圖中所有的功能與我們設計的完全一樣,所以說明源程序正確。2.50m分頻器的設計

基本功能及原理:

50m分頻器的作用主要是控制后面的數(shù)碼管顯示的快慢。即一個模為50m的計數(shù)器,由時鐘控制,分頻器所有的端口基本和上述4位二進制加減計數(shù)器的端口一樣,原理也基本相同。分頻器的進位端(co)用來控制加減計數(shù)器的時鐘,將兩個器件連接起來。50m分頻器的邏輯符號如下:

程序設計:

軟件編譯:

在編輯器中輸入并保存了以上50m分頻器的vhdl源程序后就可以對它進行編譯了,編譯的最終目的是為了生成可以進行仿真、定時分析及下載到可編程器件的相關文件。仿真分析: 結(jié)果如下:

上圖為仿真圖的一部分,由于整個圖太大,所以顯示一部分即可,其余部分如圖以上圖規(guī)律一直遞增,直到50m為止,然后再重復,如此循環(huán)。

上圖是部分輸出的顯示,由于整個圖太大,所以只顯示部分,其余部分如圖遞增。

分析:

由仿真圖可以看出,當reset為0,enable為1時(因為本實驗中計數(shù)器的模值太大,為了盡可能多的觀察出圖形,可讓reset一直為0,enable一直為1,即一直正常工作),輸出值由0一直遞增到50m,構(gòu)成一個加法計數(shù)器,與我們設計的功能一致。3.七段譯碼器程序設計

基本功能及原理:

七段譯碼器是用來顯示數(shù)字的,7段數(shù)碼是純組合電路,通常的小規(guī)模專用ic,如74或4000系列的器件只能作十進制bcd碼譯碼,然而數(shù)字系統(tǒng)中的數(shù)據(jù)處理和運算都是2進制的,所以輸出表達都是16進制的,為了滿足16進制數(shù)的譯碼顯示,最方便的方法就是利用vhdl譯碼程序在fpga或cpld中實現(xiàn)。本項實驗很容易實現(xiàn)這一目的。輸出信號的7位分別接到數(shù)碼管的7個段,本實驗中用的數(shù)碼管為共陽極的,接有低電平的段發(fā)亮。

七段譯碼器的邏輯符號:

程序設計:

軟件編譯:

在編輯器中輸入并保存了以上七段譯碼器的vhdl源程序后就可以對它進行編譯了,編譯的最終目的是為了生成可以進行仿真、定時分析及下載到可編程器件的相關文件。仿真分析:

仿真結(jié)果如下圖所示:

分析:具體分析與實驗一中七段譯碼器的分析相同,在此不再贅述。計數(shù)器和譯碼器連接電路的頂層文件原理圖:

原理圖連接好之后就可以進行引腳的鎖定,然后將整個程序下載到已經(jīng)安裝好的電路板上,即可進行仿真演示。

實驗心得:

經(jīng)過本次試驗,我學到了很多。首先,我加強了對quartus ii軟件的掌握;其次,我掌握了電路圖的頂層文件原理圖的連接,學會了如何把自己設計的程序正確的轉(zhuǎn)化為器件,然后正確的連接起來,形成一個整體的功能器件;最后,我學會了如何安裝以及如何正確的把完整的程序下載到電路板上,并進行演示驗證。

實驗三:大作業(yè)設計

(循環(huán)彩燈控制器)

實驗目的:

綜合應用數(shù)字電路的各種設計方法,完成一個較為復雜的電路設計。實驗內(nèi)容:

流水燈(循環(huán)彩燈)的設計 設計任務:

設計一個循環(huán)彩燈控制器,該控制器可控制10個發(fā)光二極管循環(huán)點亮,間隔點亮或者閃爍等花型。要求至少三種以上花型,并用按鍵控制花型之間的轉(zhuǎn)換,用數(shù)碼管顯示花型的序號?;驹恚?/p>

該控制器由兩部分組成,一部分是一個50m的分頻器,其主要用來控制花色變化的快慢;另一部分是一個彩燈控制器,該彩燈控制器可由兩個開關控制花型的序號,10個輸出分別控制10個發(fā)光二極管的亮暗,當輸出為1時,該發(fā)光二極管亮,輸出為0時,該二極管滅。將分頻器的co端用來控制彩燈控制器的時鐘,將兩個器件連接起來。1.分頻器的設計

50m分頻器與實驗二中的分頻器一樣,這里不再贅述。2.彩燈控制器的設計 基本原理:

該彩燈控制器由時鐘控制,reset異步清零,enable當做使能端,由兩個開關do(0-1)來控制選擇不同的花型,10個輸出端lig(0-9)來控制10個led燈的亮滅。因為用了兩個開關來控制花型,所以一共有4種花色。

彩燈控制器的邏輯符號:

程序設計:

3.七段譯碼器的設計

七段譯碼器是用來顯示不同花型的序號的,其設計與實驗一中的設計一樣,這里不再贅述。循環(huán)彩燈控制器的原理圖:

仿真波形如下: 第一種花型:

第二種花型:

第三種花型:

第四種花型:

仿真分析:

將以上仿真波形圖和源程序?qū)Ρ龋覀兛梢钥吹?,仿真出來的波形和我們設計的功能一致,這說明源vhdl程序是正確的。實驗心得:

本次試驗是在沒有老師指導的情況下自己完成的,我在參考了網(wǎng)上的程序的情況下,最終成功的設計并正確的演示出了循環(huán)彩燈的不同花型。通過本次試驗,我真正的體會到了dea這門課的樂趣,也發(fā)現(xiàn)它對我們的學習和生活帶來很大的方便。

EDA大作業(yè)設計篇四

貴州大學科技學院2010級 電科班

王斌

guizhou university eda實驗報

實驗課程名稱 eda技術(shù)與實驗 實驗項目名稱 單管低頻放大器 學 院 科技學院 專 業(yè) 班 級 2010級電子信息科學與技術(shù) 學 生 姓 名 王斌 學 號 1020040464 任 課 教 師 李良榮

貴州大學科技學院2010級 電科班

王斌

單管低頻放大器

1、實驗目的

(1)學習元器件的放置和手動、自動連線方法;(2)熟悉元器件標號及虛擬元件值的修改方法;(3)熟悉節(jié)點及標注文字的放置方法;(4)熟悉電位器的調(diào)整方法;(5)熟悉信號源的設置方法;(6)熟悉示波器的使用方法;

(7)熟悉放大器的主要性能指標的測試方法;

(8)熟悉示波器、信號源、萬用表、電壓表、電流表的應用方法;(9)學習實驗報告的書寫方法。

2、實驗內(nèi)容 a:測試電路如圖

圖1——0(1)測量ic 常規(guī)方法測量ve。用ie=ve/re ≈ ic計算集電極電流。如圖1——1所示。測試的ve=1.589v

ie?ic?ib?i c

?

ic?則ie=ve/re ≈ ic=1.589ma

vere?1.5891000=1.589v 2

貴州大學科技學院2010級 電科班

王斌

檢測是否正確:如圖1——2

圖1——2 測試正確!

結(jié)論:測試看出,兩種方法的結(jié)果是有些誤差的,原因在于re的值是有誤差的,調(diào)入器件時計算機在器件的誤差范圍內(nèi)任意取值作計算依據(jù),在實際電路中也往往如此,用萬用表測量晶體管發(fā)射極電阻上的電壓來測量電路的ic是實際電路的設計時的一般方法。

(2)信號發(fā)生器設置正旋波,f=1khz,v=10mv;

如圖1——3

貴州大學科技學院2010級 電科班

王斌

圖1——3 仿真,調(diào)整示波器觀察后得到結(jié)果。

a通道(x1,y1)=(221.048ms ,-1.146v)、b通道為(222.085ms , 9.995mv)。利用兩條時間差可以分析信號的周期、頻率等參數(shù)(圖中t2-t1=1.036ms為周期)。信號類型為“dc”方式,波形包含直流成分,“0”禁止輸入,“ac”方式不包含直流成分。

結(jié)論:保持信號源不變,調(diào)整r5為5000(接入電阻的阻值為50?5000=25k?,如果滑動變阻器增大,調(diào)到7400左右),信號輸出幅度最大,失真較小,則r5的取值在56k?左右

貴州大學科技學院2010級 電科班

王斌

最佳。

(3)調(diào)整r5,在示波器上觀察波形,是波形輸出幅度最大,且不失真;

a:減小電阻會使電路失真,且截止失真;

b:真大電阻會是電路的放大倍數(shù)增大;

(4)測量單管放大器的輸入輸出電阻ri、r0;

貴州大學科技學院2010級 電科班

王斌

輸入電阻:

ri?virvs?vi?viii=

7.0713.693?10?3?1.914k?

輸出電阻:用“替代法”計算r0,閉合開關,得到vl的值為4.614mv,斷開開關,得到v0的值為4.722mv。

貴州大學科技學院2010級 電科班

王斌

r0?(v0vl?1)?3?10?3?4.722?3???1??3?10?7.022k? ?4.614?

(5)用“失真度測量儀”測量電路的失真度;

在輸入信號3mv,f=1khz時,測得失真度:2.767%。在輸入信號10mv,f=1khz時,測得失真度:9.193%。如圖1——4。

結(jié)論:電路的失真度為9.193% 7

貴州大學科技學院2010級 電科班

王斌

圖1——4(6)用“波特圖示儀”測試電路的幅頻特性曲線。

根據(jù)帶寬的測量原理,移動測試指針,使幅度值下降3db,找到半功率點=26.459mhz。如圖1——5

=23.698hz,圖1——5 測得fw?fh?fl?26.459mhz。

貴州大學科技學院2010級 電科班

王斌

心得:通過這次實驗讓我對multisim 更進一步的了解和學習,也對很多電路的分析應用加深了了解。!

EDA大作業(yè)設計篇五

班 級 021291 學 號 02129057

eda實驗報告

學 院 電子工程學院

專 業(yè) 電子信息工程

學生姓名

02129057

導師姓名

糾博

交通控制器

一. 設計目標

設計一個十字路口交通控制系統(tǒng),其東西,南北兩個方向除了有紅、黃、綠燈指示是否允許通行外,還設有時鐘,以倒計時方式顯示每一路允許通行的時間,綠燈,黃燈,紅燈的持續(xù)時間分別是70、5和75秒。當東西或南北兩路中任一道上出現(xiàn)特殊情況,例如有消防車,警車要去執(zhí)行任務,此時交通控制系統(tǒng)應可由交警手動控制立即進入特殊運行狀態(tài),即兩條道上的所有車輛皆停止通行,紅燈全亮,時鐘停止計時,且其數(shù)字在閃爍。當特殊運行狀態(tài)結(jié)束后,管理系統(tǒng)恢復原來的狀態(tài),繼續(xù)正常運行。

二. 設計思路與實施方案

1.設計目標思路整理

在十字路口的兩個方向上各設一組紅、綠、黃燈,顯示順序為其中一方向(東西方向)是綠燈、黃燈、紅燈;另一方向(南北方向)是紅燈、綠燈、黃燈。

設置一組數(shù)碼管,以倒計時的方式顯示允許通行或禁止通行的時間,其中綠燈、黃燈、紅燈的持續(xù)時間分別是70s、5s和75s。

當各條路上任意一條上出現(xiàn)特殊情況時,如當消防車、救護車或其他需要優(yōu)先放行的車輛通過時,各方向上均是紅燈亮,倒計時停止,且顯示數(shù)字在閃爍。當特殊運行狀態(tài)結(jié)束后,控制器恢復原來狀態(tài),繼續(xù)正常運行。

2.原理分析

本系統(tǒng)主要由分頻器,計數(shù)器,控制器,倒計時顯示器等電路組成。分頻器將晶振送來的50mhz信號變?yōu)?hz時鐘信號;計數(shù)器實現(xiàn)總共150秒的計數(shù),它也是交通控制系統(tǒng)的一個大循環(huán);控制器控制系統(tǒng)的狀態(tài)轉(zhuǎn)移和紅黃綠燈的信號輸出;倒計時顯示電路實現(xiàn)75秒,70秒及5秒的倒計時和顯示功能。整個系統(tǒng)的工作時序受控制器控制,是系統(tǒng)的核心?;诖?,做出交通控制系統(tǒng)的轉(zhuǎn)移圖如下:

其中,s0:a方向綠燈亮,b方向紅燈亮,此狀態(tài)持續(xù)70秒;

s1:a方向黃燈亮,b方向紅燈亮,此狀態(tài)持續(xù)5秒;

s2:a方向紅燈亮,b方向綠燈亮,此狀態(tài)持續(xù)70秒;

s3:a方向紅燈亮,b方向黃燈亮,此狀態(tài)持續(xù)5秒;

s4:緊急制動狀態(tài),a方向紅燈亮,b方向紅燈亮,當hold=‘0‘時進入這種狀態(tài)。

當緊急制動信號無效時,狀態(tài)按照s0—s1—s2—s3—s0循環(huán);當緊急制動信號有效時,立即進入s4,兩個方向紅燈全亮,計數(shù)器停止計數(shù)。

三. 設計過程

1.電路設計

交通控制系統(tǒng)頂層原理圖如下圖示,它主要由50mhz分頻器模塊,控制器,倒計時計數(shù)器模塊,7段數(shù)碼管組成。

(1)分頻器的設計

分頻器外部接口如右圖所示:

library ieee;use ;use ;

entity fp50m is port(clk : in std_logic;

reset : in std_logic;

clk_out: out std_logic);end entity fp50m;

architecture behavior of fp50m is signal count : std_logic_vector(31 downto 0);signal q:std_logic;begin process(reset,clk)

begin if(reset = '0')then

count <=(others=>'0');--復位計數(shù)器

elsif clk'event and clk='1' then

count<=count+1;

if(count = 25000000)then

q<= not q;--反置輸出

count <=(others=>'0');

end if;

end if;

clk_out<=q;end process;end architecture behavior;由于50mhz過大,在這里就不展示分頻時序圖。(2)控制器的設計

控制器control的邏輯符號如下圖所示。其中,clk為時鐘輸入信號;hld為緊急制動信號;ared,agreen,ayellow為東西方向驅(qū)動紅燈,綠燈及黃燈指示的輸出信號;bred,bgreen,byellow分別為南北方向驅(qū)動紅燈。綠燈及黃燈指示的輸出信號??刂破靼凑丈线叺臓顟B(tài)轉(zhuǎn)移圖所示控制系統(tǒng)的時序,即為個方向紅,綠,黃燈的亮滅時間。: library ieee;use ;use ;

entity control is

port(clk,hold:in std_logic;

ared,agreen,ayellow,bred,bgreen,byellow:out std_logic);end control;

architecture behavior of control is

type state_type is(s0,s1,s2,s3,s4);

signal current_state,next_state:state_type;

signal counter:std_logic_vector(6 downto 0);

begin synch:process begin

wait until clk'event and clk='1';

if hold='0' then

--當緊急制動信號有效時,計數(shù)器停止工作

counter<=counter;

else

--當緊急制動信號無效時,計數(shù)器進行周期為150s的計數(shù)

if counter<149 then

counter<=counter+1;

else

counter<=(others=>'0');

end if;

end if;end process;

process

--狀態(tài)機的狀態(tài)轉(zhuǎn)移描述 begin

wait until clk'event and clk='1';

current_state<=next_state;end process;

state_trans:process(current_state)begin

case current_state is when s0=>

if hold='0' then

next_state<=s4;

else

if counter<69 then

next_state<=s0;

else

next_state<=s1;

end if;

end if;when s1=>

if hold='0' then

next_state<=s4;

else

if counter<74 then

next_state<=s1;

else

next_state<=s2;

end if;

end if;when s2=>

if hold='0' then

next_state<=s4;

else

if counter<144 then

next_state<=s2;

else

next_state<=s3;

end if;

end if;when s3=>

if hold='0' then

next_state<=s4;

else

if counter<149 then

next_state<=s3;

else

next_state<=s0;

end if;

end if;when s4=>

if hold='0' then

next_state<=s4;

else

if counter<69 then

next_state<=s0;

elsif counter<74 then

next_state<=s1;

elsif counter<144 then

next_state<=s2;

elsif counter<149 then

next_state<=s3;

end if;

end if;

end case;end process;

output:process(current_state)begin case current_state is when s0=>

ared<='0';

agreen<='1';

ayellow<='0';

bred<='1';

bgreen<='0';

byellow<='0';when s1=>

ared<='0';

agreen<='0';

ayellow<='1';

bred<='1';

bgreen<='0';

byellow<='0';

--每種狀態(tài)下兩個路口紅綠燈的狀態(tài)描述

when s2=>

ared<='1';

agreen<='0';

ayellow<='0';

bred<='0';

bgreen<='1';

byellow<='0';when s3=>

ared<='1';

agreen<='0';

ayellow<='0';

bred<='0';

bgreen<='0';

byellow<='1';when s4=>

ared<='1';

agreen<='0';

ayellow<='0';

bred<='1';

bgreen<='0';

byellow<='0';when others => null;end case;end process;end behavior;

control的時序圖

由圖可以看出緊急制動有效,即’hold’=0時,兩個方向都是紅燈。而緊急制動無效時,為s1狀態(tài),一方為綠燈,另一方紅燈。(3)倒計時計數(shù)器upm75(x)的設計 倒計時計數(shù)器upm75(x)的邏輯符號如下圖所示。其中,clk,cr分別為時鐘和清零端,en0~en2分別表示倒計數(shù)75s,70s,5s使能端,ql[3..0],qh[3..0],oc分別為bcd碼的個位,十位跟進位輸出。

vhdl描述upm75(x).vhd如下: library ieee;use ;use ;entity upm75 is

--實體聲明 port(clk:in std_logic;

en0,en1,en2:in std_logic;

cr,hld:in std_logic;

ql,qh:out std_logic_vector(3 downto 0);

oc:out std_logic);end upm75;

architecture behavior of upm75 is

--結(jié)構(gòu)體

signal coul,couh:std_logic_vector(3 downto 0);begin

process(cr,clk,hld,en0,en1,en2)

begin

if cr='0' then

--異步清零

coul<=“0000”;

couh<=“0000”;

elsif clk'event and clk='1' then

if hld='1' then

--緊急制動無效時,計數(shù)器正常計數(shù)

if en0='1' then

--en0有效,倒計時75s

if(coul=0 and couh=0)then

--減法記到00后,重新指數(shù)75

coul<=“0101”;

couh<=“0111”;

elsif coul=0 then

--否則,個位記到0時置為9,十位減1

coul<=“1001”;

couh<=couh-1;

else

coul<=coul-1;

--否則,個位減1

end if;

end if;

if en1='1' then

--en1有效,倒計時70s

if(coul=0 and couh=0)then

coul<=“0000”;

couh<=“0111”;

elsif coul=0 then

coul<=“1001”;

couh<=couh-1;

else

coul<=coul-1;

end if;

end if;

if en2='1' then

--en2有效,倒計時5s

if(coul=0 and couh=0)then

coul<=“0101”;

couh<=“0000”;

elsif coul=0 then

coul<=“1001”;

couh<=couh-1;

else

coul<=coul-1;

end if;

end if;

else

coul<=coul;

--緊急制動有效時,各位保持不變

couh<=couh;

end if;

end if;

end process;

process(coul,couh)

begin

if(coul=0 and couh=0)then

--減到00時,借位輸出

oc<='1';

else

oc<='0';

end if;

end process;

ql<=coul;

qh<=couh;end behavior;倒計時的時序仿真圖如下: 1.75s倒計時

由圖可以看出緊急制動有效時,停止計時,一直持續(xù)在75s,滿足要求。2.70s倒計時

3.5s倒計時

(4)七段數(shù)碼管的設計

分頻器外部接口如右圖所示: library ieee;use ;entity decl7s is

port(a : in std_logic_vector(3 downto 0);

hold:in std_logic;

clk:in std_logic;

led7s : out std_logic_vector(6 downto 0));end;architecture one of decl7s is begin process(a)begin if(hold = '0' and clk = '1')then led7s <= “0000000”;elsif(hold = '1')then case a is when “0000” => led7s <= “0111111”;when “0001” => led7s <= “0000110”;when “0010” => led7s <= “1011011”;when “0011” => led7s <= “1001111”;when “0100” => led7s <= “1100110”;when “0101” => led7s <= “1101101”;

when “0110” => led7s <= “1111101”;when “0111” => led7s <= “0000111”;when “1000” => led7s <= “1111111”;when “1001” => led7s <= “1101111”;when “1010” => led7s <= “1110111”;when “1011” => led7s <= “1111100”;when “1100” => led7s <= “0111001”;when “1101” => led7s <= “1011110”;when “1110” => led7s <= “1111001”;when “1111” => led7s <= “1110001”;when others => null;end case;end if;end process;end;

三. 遇到的問題及解決方法

1.七段數(shù)碼管顯示的數(shù)字并不是1,2,3…,將led7s的輸出取反后,得到了正確的結(jié)果; 2.倒計時開始設計的是從74s,69s,4s開始計時的,后改為75s,70s,5s;

3.緊急制動有效時,計時停止,但不閃爍,之后在decl7s程序里加入了時鐘,能夠達到閃爍的效果。

四. 綜合時序仿真結(jié)果及功能分析

總體電路圖如下:

總體時序仿真:

由于50mhz太大,看不出多種狀態(tài)間的變化,但通過仿真圖可以看出一方是綠燈,而另一方是紅燈。

五. 小結(jié)及心得體會

在本次實驗中我選擇的是交通燈,輸出有很多種情況。該系統(tǒng)主要由分頻器,計數(shù)器,控制器,倒計時顯示器等電路組成。其中,分頻器與七段數(shù)碼管是小作業(yè)的時候做好的,控制器與倒計時計數(shù)器參考數(shù)電書完成。在實驗過程中,出現(xiàn)了很多的問題,多虧了同學和老師的幫助,有很多問題都是由于粗心導致的,這又一次說明了編程是需要細心和耐心的,一個小小的錯誤就會影響到整個運行結(jié)果。所以我覺得,結(jié)果固然重要,但是自己真正投入努力的過程更是值得被體會。

【本文地址:http://mlvmservice.com/zuowen/2997128.html】

全文閱讀已結(jié)束,如果需要下載本文請點擊

下載此文檔