欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      基于FPGA的乒乓球游戲機(jī)控制器設(shè)計(jì)

      時(shí)間:2019-05-14 05:48:27下載本文作者:會(huì)員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《基于FPGA的乒乓球游戲機(jī)控制器設(shè)計(jì)》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《基于FPGA的乒乓球游戲機(jī)控制器設(shè)計(jì)》。

      第一篇:基于FPGA的乒乓球游戲機(jī)控制器設(shè)計(jì)

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第I頁

      基于FPGA的乒乓球游戲機(jī)設(shè)計(jì)

      摘 要

      Verilog是甚高速集成電路硬件描述語言。目前,verilog已成為許多設(shè)計(jì)自動(dòng)化工具普遍采用的標(biāo)準(zhǔn)化硬件描述語言。verilog語言功能性強(qiáng),覆蓋面廣,靈活性高,具有很好的實(shí)用性。本文設(shè)計(jì)一個(gè)基于verilog的乒乓游戲機(jī),乒乓游戲機(jī)由狀態(tài)機(jī)、記分器、譯碼顯示器與按鍵去抖等部分所組成。通過對各部分編寫verilog程序,然后進(jìn)行編譯、仿真、邏輯綜合、邏輯適配,最后進(jìn)行編程下載,并且通過EDA實(shí)驗(yàn)箱的驗(yàn)證,實(shí)現(xiàn)乒乓游戲機(jī)的基本功能。

      關(guān)鍵詞:verilog;EDA;乒乓游戲機(jī)

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第II頁

      Abstract

      VERILOG is high speed IC hardware describe language.VERILOG already becomes the language of normalizing hardware describe that a lot of design automation implement adopts commonly at present.The VERILOG language function is strong.The face covering is broad, flexibility high and have the very good pragmatism.One main body of the book is designed waits for what part group is accomplished owing to that VERILOG table tennis game machine, table tennis game machine go to tremble from state machine, marker, decoding display and button.By compiling and composing VERILOG procedure to every part, then compiling, simulate, logic synthesis, logic fitting.Carry out programming time be loaded with finally.Then verification and by GW48 type EDA experiment box, realize table tennis game machine’s fundamental function.Key words: VERILOG:EDA;Table tennis game machine

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第III頁

      目 錄 緒論..............................................................1

      1.1課題的背景和意義...........................................1 1.2國內(nèi)外研究現(xiàn)狀.............................................1 1.3本論文的主要內(nèi)容...........................................2 2 Quartus II與Modelsim 軟件簡介....................................3

      2.1Quartus II 簡介.............................................3 2.2Modelsim簡介...............................................4 3 方案選擇與系統(tǒng)總體設(shè)計(jì)............................................6

      3.1整體方案的選擇.............................................6

      3.1.1設(shè)計(jì)任務(wù)與要求.......................................6 3.1.2設(shè)計(jì)的原理和方法.....................................7 3.1.3芯片的選擇...........................................8 3.2系統(tǒng)總體設(shè)計(jì)...............................................8

      3.2.1乒乓游戲機(jī)的組成示意圖...............................8 3.2.2本系統(tǒng)的邏輯分框圖...................................9 系統(tǒng)各部分電路的詳細(xì)設(shè)計(jì).........................................10 4.1七段數(shù)碼管顯示譯碼電路....................................10 4.2按鍵去抖電路..............................................11 4.3狀態(tài)機(jī)設(shè)計(jì)................................................11 4.3.1狀態(tài)機(jī)的6種狀態(tài)及狀態(tài)轉(zhuǎn)移..........................11 4.3.2狀態(tài)機(jī)/球臺(tái)控制電路.................................13

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第IV頁

      4.4記分器設(shè)計(jì)................................................15 5 系統(tǒng)的整體綜合與仿真.............................................16 5.1頂層文件設(shè)計(jì)..............................................16 5.2系統(tǒng)程序框圖:............................................17 5.3整個(gè)系統(tǒng)的綜合與仿真......................................18 5.3.1 電路符號...........................................18 5.3.2 系統(tǒng)仿真...........................................18 6 系統(tǒng)的運(yùn)行與仿真過程.............................................20 6.1系統(tǒng)程序的編譯............................................20 6.2 系統(tǒng)的仿真................................................22 結(jié)論...............................................................24 謝 辭..............................................................25 參考文獻(xiàn)...........................................................26 附錄...............................................................27

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第1頁 緒論

      1.1課題的背景和意義

      隨著人們的物質(zhì)生活越來越好了,人們開始對娛樂生活有了新的要求,特別是進(jìn)入新世紀(jì)以來各種電子產(chǎn)品的不斷出現(xiàn),更是促進(jìn)了我國電子行業(yè)的發(fā)展,為此,能夠推出一款新的游戲產(chǎn)品是非常有前景的,本設(shè)計(jì)正是考慮了當(dāng)前的社會(huì)現(xiàn)狀,想設(shè)計(jì)出一款“乒乓球”游戲機(jī),以往可能有過這方面的設(shè)計(jì)出現(xiàn)過,但是那些大多數(shù)都是采用的單片機(jī)等來實(shí)現(xiàn)的,本設(shè)計(jì)將采用最新的FPGA技術(shù)對“乒乓球”游戲機(jī)進(jìn)行實(shí)現(xiàn)。

      日常娛樂生活中,智能化的娛樂產(chǎn)品非常流行。FPGA具有功能強(qiáng)、可靠性高、使用方便、體積小及重量輕等優(yōu)點(diǎn)。國外已廣泛應(yīng)用于自動(dòng)化控制的各個(gè)領(lǐng)域。近年來,國內(nèi)的FPGA技術(shù)與產(chǎn)品開發(fā)應(yīng)用方面的發(fā)展也很快,各種電子產(chǎn)品已越來越多地采用FPGA控制系統(tǒng)且性價(jià)比高。本文從實(shí)用的角度以Altera公司的EP2C35F484I8芯片為核心設(shè)計(jì)了一種智能“乒乓球”游戲機(jī)。實(shí)踐證明,該游戲機(jī)運(yùn)行狀況穩(wěn)定、可靠,滿足了智能化要求。

      1.2國內(nèi)外研究現(xiàn)狀

      隨著社會(huì)的進(jìn)步和工業(yè)技術(shù)的發(fā)展,在電子線路設(shè)計(jì)領(lǐng)域中,設(shè)計(jì)自動(dòng)化工具已經(jīng)逐步為設(shè)計(jì)者所接受,成為主要的設(shè)計(jì)手段。目前,VERILOG已成為許多設(shè)計(jì)自動(dòng)化工具普遍采用的標(biāo)準(zhǔn)化硬件描述語言,掌握VERILOG語言,用VERILOG語言設(shè)計(jì)電子線路,是電子線路設(shè)計(jì)者必須掌握的基本技能。VERILOG支持?jǐn)?shù)字電路的開發(fā)環(huán)境,VERILOG也支持各種設(shè)計(jì)方法:自頂向下、自底向上或混合的方法[1]。VERILOG語言功能性強(qiáng),覆蓋面大,靈活性高,具有很好的實(shí)用性[2]。本文設(shè)計(jì)一個(gè)基于VERILOG的乒乓游戲機(jī),乒乓游戲機(jī)是由5個(gè)發(fā)光二極管代表乒乓球臺(tái),中間的發(fā)光二極管兼作球網(wǎng),用點(diǎn)亮的發(fā)光二極管按一定方向移動(dòng)來表示球的運(yùn)動(dòng)。在游戲機(jī)的兩側(cè)各設(shè)置兩個(gè)開關(guān),甲乙二人按乒乓球比賽規(guī)則來操作開關(guān)。本設(shè)計(jì)由譯碼顯示器、記分器、狀態(tài)機(jī)/球臺(tái)控制器與按鍵去抖等部

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第2頁

      分組成。本設(shè)計(jì)是用實(shí)驗(yàn)箱進(jìn)行模擬乒乓機(jī),用發(fā)光二極管代表乒乓球臺(tái),最中間的發(fā)光二極管作球網(wǎng),用點(diǎn)亮的發(fā)光二極管按一定方向移動(dòng)來表示球的運(yùn)動(dòng),用按鈕設(shè)置發(fā)球和接球開關(guān)。1.3本論文的主要內(nèi)容

      本論文的主要內(nèi)容是設(shè)計(jì)一個(gè)基于FPGA的“乒乓球”游戲機(jī),在廣泛收集相關(guān)資料的基礎(chǔ)上,對“乒乓球”游戲機(jī)進(jìn)行了深入的研究,利用現(xiàn)場可編程門陣列FPGA完成本次設(shè)計(jì)。整個(gè)系統(tǒng)以ALtera公司的EP2C35芯片為核心,采用verilog HDL語言進(jìn)行開發(fā),配置了相應(yīng)的輸入、信號處理及顯示電路,并進(jìn)行仿真及驗(yàn)證。

      本論文各章的內(nèi)容如下:

      第一章介紹了“乒乓球”游戲機(jī)設(shè)計(jì)的背景及意義,并簡單的的闡述了目前國內(nèi)外在這方面的發(fā)展現(xiàn)狀。

      第二章介紹了Quartus II 軟件以及Modelsim軟件的使用和特點(diǎn)。第三章介紹了對于系統(tǒng)的整體設(shè)計(jì)以及相關(guān)的設(shè)計(jì)任務(wù)和設(shè)計(jì)要求,并簡單的分析了整個(gè)系統(tǒng)的設(shè)計(jì)流程和方法。

      第四章主要是介紹在整個(gè)“乒乓球”游戲機(jī)系統(tǒng)中各個(gè)模塊的工作原理及過程。

      第五章主要是對系統(tǒng)進(jìn)行原理圖的設(shè)計(jì)和對整個(gè)系統(tǒng)的仿真。第六章主要是對整個(gè)的設(shè)計(jì)過程和仿真的的過程做一個(gè)簡單的描述。

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第3頁 Quartus II與Modelsim 軟件簡介

      2.1Quartus II 簡介

      Quartus II 是Altera公司的綜合性PLD開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整PLD設(shè)計(jì)流程。

      Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl腳本完成設(shè)計(jì)流程外,提供了完善的用戶圖形界面設(shè)計(jì)方式。具有運(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn)。

      Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模塊庫,使用戶可以充分利用成熟的模塊,簡化了設(shè)計(jì)的復(fù)雜性、加快了設(shè)計(jì)速度。對第三方EDA工具的良好支持也使用戶可以在設(shè)計(jì)流程的各個(gè)階段使用熟悉的第三方EDA工具。

      此外,Quartus II 通過和DSP Builder工具與Matlab/Simulink相結(jié)合,可以方便地實(shí)現(xiàn)各種DSP應(yīng)用系統(tǒng);支持Altera的片上可編程系統(tǒng)(SOPC)開發(fā),集系統(tǒng)級設(shè)計(jì)、嵌入式軟件開發(fā)、可編程邏輯設(shè)計(jì)于一體,是一種綜合性的開發(fā)平臺(tái)。

      Maxplus II 作為Altera的上一代PLD設(shè)計(jì)軟件,由于其出色的易用性而得到了廣泛的應(yīng)用。目前Altera已經(jīng)停止了對Maxplus II 的更新支持,Quartus II 與之相比不僅僅是支持器件類型的豐富和圖形界面的改變。Altera在Quartus II 中包含了許多諸如SignalTap II、Chip Editor和RTL Viewer的設(shè)計(jì)輔助工具,集成了SOPC和HardCopy設(shè)計(jì)流程,并且繼承了Maxplus II 友好的圖形界面及簡便的使用方法。

      Altera Quartus II 作為一種可編程邏輯的設(shè)計(jì)環(huán)境, 由于其強(qiáng)大的設(shè)計(jì)能力和直觀易用的接口,越來越受到數(shù)字系統(tǒng)設(shè)計(jì)者的歡迎。

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第4頁

      2.2Modelsim簡介

      Mentor公司的ModelSim是業(yè)界最優(yōu)秀的HDL語言仿真軟件,它能提供友好的仿真環(huán)境,是業(yè)界唯一的單內(nèi)核支持VHDL和Verilog混合仿真的仿真器。它采用直接優(yōu)化的編譯技術(shù)、Tcl/Tk技術(shù)、和單一內(nèi)核仿真技術(shù),編譯仿真速度快,編譯的代碼與平臺(tái)無關(guān),便于保護(hù)IP核,個(gè)性化的圖形界面和用戶接口,為用戶加快調(diào)錯(cuò)提供強(qiáng)有力的手段,是FPGA/ASIC設(shè)計(jì)的首選仿真軟件。主要特點(diǎn):

      ? RTL和門級優(yōu)化,本地編譯結(jié)構(gòu),編譯仿真速度快,跨平臺(tái)跨版本仿真; ? 單內(nèi)核VHDL和Verilog混合仿真; ? 源代碼模版和助手,項(xiàng)目管理;

      ? 集成了性能分析、波形比較、代碼覆蓋、數(shù)據(jù)流ChaseX、Signal Spy、虛擬對象Virtual Object、Memory窗口、Assertion窗口、源碼窗口顯示信號值、信號條件斷點(diǎn)等眾多調(diào)試功能;

      ? C和Tcl/Tk接口,C調(diào)試;

      ? 對SystemC的直接支持,和HDL任意混合 ? 支持SystemVerilog的設(shè)計(jì)功能;

      ? 對系統(tǒng)級描述語言的最全面支持,SystemVerilog, SystemC, PSL;? ASIC Sign off。

      ModelSim分幾種不同的版本:SE、PE、LE和OEM,其中SE是最高級的版本,而集成在 Actel、Atmel、Altera、Xilinx以及Lattice等FPGA廠商設(shè)計(jì)工具中的均是其OEM版本。SE版和OEM版在功能和性能方面有較大差別,比如對于大家都關(guān)心的仿真速度問題,以Xilinx公司提供的OEM版本ModelSim XE為例,對于代碼少于40000行的設(shè)計(jì),ModelSim SE 比ModelSim XE要快10倍;對于代碼超過40000行的設(shè)計(jì),ModelSim SE要比ModelSim XE快近40倍。ModelSim

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第5頁

      SE支持PC、UNIX和LINUX混合平臺(tái);提供全面完善以及高性能的驗(yàn)證功能;全面支持業(yè)界廣泛的標(biāo)準(zhǔn);Mentor Graphics公司提供業(yè)界最好的技術(shù)支持與服務(wù)。

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第6頁 方案選擇與系統(tǒng)總體設(shè)計(jì)

      3.1整體方案的選擇

      本課題將采用Altera公司的EP2C35F484I8芯片進(jìn)行基于FPGA的“乒乓球”游戲機(jī)設(shè)計(jì)。

      3.1.1設(shè)計(jì)任務(wù)與要求

      設(shè)計(jì)一個(gè)乒乓球游戲機(jī),模擬乒乓球比賽基本過程和規(guī)則,并能自動(dòng)裁判和計(jì)分。具體要求如下:

      使用乒乓球游戲機(jī)的甲,乙雙方各在不同的位置發(fā)球或擊球。乒乓球的位置和移動(dòng)方向可由LED顯示燈和一次點(diǎn)亮的方向決定,球的移動(dòng)速度設(shè)為0.5s移動(dòng)1位。使用者可按乒乓球的位置發(fā)出相應(yīng)的動(dòng)作,提前擊球或出界均判失分。

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第7頁

      3.1.2設(shè)計(jì)的原理和方法

      乒乓球游戲機(jī)是用5個(gè)發(fā)光二極管代表乒乓球臺(tái),中間發(fā)光二極管兼作乒乓球網(wǎng),用點(diǎn)亮的發(fā)光二極管按一定的方向移動(dòng)來表示球的運(yùn)動(dòng)。另外設(shè)置發(fā)球開關(guān)Af,Bf以及接球開關(guān)Aj,Bj。利用7段數(shù)碼管作為記分牌。

      甲乙雙方按乒乓球比賽規(guī)則來操作開關(guān)。當(dāng)甲方按動(dòng)發(fā)球開關(guān)af時(shí),靠近甲方的第一個(gè)燈亮,然后按順序向乙方移動(dòng);當(dāng)球過網(wǎng)后,乙方可以接球,接球后燈反方向移動(dòng),雙方繼續(xù)比賽;如果一方提前擊球或未擊球,則判失分,對方加分。重新發(fā)球后繼續(xù)比賽。

      本設(shè)計(jì)主要的設(shè)計(jì)方法是采用文本編輯法,利用verilog HDL語言描述乒乓球游戲機(jī),并進(jìn)行綜合和仿真。

      圖3.1 系統(tǒng)設(shè)計(jì)流程圖

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第8頁

      3.1.3芯片的選擇

      在這次設(shè)計(jì)中選用的FPGA芯片是Altera公司的Cyclone(颶風(fēng))系列的芯片,型號為:EP2C35。它是基于1.5V的,采用0.13um全銅SRAM工藝、TQFP封裝,有5980個(gè)邏輯單元,2個(gè)鎖相環(huán),20個(gè)M4K RAM塊,其中每個(gè)RAM為4kbit,可以另加一位奇偶校驗(yàn)位。

      3.2系統(tǒng)總體設(shè)計(jì)

      3.2.1乒乓游戲機(jī)的組成示意圖

      圖3.2 乒乓球游戲機(jī)組成示意圖

      本設(shè)計(jì)中的乒乓游戲機(jī)是由5個(gè)發(fā)光二極管代表乒乓球臺(tái),中間的發(fā)光二極管兼作球網(wǎng),用點(diǎn)亮的發(fā)光二極管按一定方向移動(dòng)來表示球的運(yùn)動(dòng)。在游戲機(jī)的兩側(cè)各設(shè)置兩個(gè)開關(guān),一個(gè)是發(fā)球開關(guān)af、bf;另一個(gè)是擊球開關(guān)aj、bj。甲乙二人按乒乓球比賽規(guī)則來操作開關(guān)。當(dāng)甲方按動(dòng)發(fā)球開關(guān)af時(shí),靠近甲方的

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第9頁

      第一個(gè)發(fā)光二極管亮,然后發(fā)光二極管由甲向乙依次點(diǎn)亮,代表乒乓球的移動(dòng)。當(dāng)球過網(wǎng)后按設(shè)計(jì)者規(guī)定的球位,乙方就可以擊球。若乙方提前擊球或沒有擊中球,則判乙方失分,甲方的記分牌自動(dòng)加一分。然后重新發(fā)球,比賽繼續(xù)進(jìn)行。比賽一直要進(jìn)行到一方記分牌達(dá)到21分,該局才結(jié)束。本設(shè)計(jì)由譯碼顯示器、按鍵去抖、狀態(tài)機(jī)/球臺(tái)控制器和記分器等部分所組成。3.2.2本系統(tǒng)的邏輯分框圖

      圖3.2 系統(tǒng)邏輯分框圖

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第10頁 系統(tǒng)各部分電路的詳細(xì)設(shè)計(jì)

      4.1七段數(shù)碼管顯示譯碼電路

      圖4.1 譯碼顯示電路符號

      七段數(shù)碼是純組合電路,通常的小規(guī)模專用IC,如74或4000系列的器件只能作十進(jìn)制BCD碼譯碼,然而數(shù)字系統(tǒng)中的數(shù)據(jù)處理和運(yùn)算都是2進(jìn)制的,所以輸出表達(dá)都是16進(jìn)制的,為了滿足16進(jìn)制數(shù)的譯碼顯示,最方便的方法就是利用VHDL譯碼程序在FPGA或CPLD中實(shí)現(xiàn)。七段數(shù)碼管分為共陰極和共陽極兩種[8]。簡而言之,對共陰極來說,公共引腳要接地,想要點(diǎn)亮某段數(shù)碼管,就在相應(yīng)的引腳加上高電平;對共陰極來說剛好相反,公共引腳提高電平,想要點(diǎn)亮某段數(shù)碼管,就在相應(yīng)的引腳加上低電平[9]。七段BCD碼譯碼器的設(shè)計(jì),輸出信號LED7S的7位分別接如圖4所示數(shù)碼管的七個(gè)段,高位在左,低位在右[9]。例如當(dāng)LED7S輸出為“1101101” 時(shí),數(shù)碼管的7個(gè)段:g、f、e、d、c、b、a分別接1、1、0、1、1、0、1,接有高電平的段發(fā)亮,于是數(shù)碼管顯示“5”。

      帶使能信號EN的譯碼電路的verilog程序中,EN為高電平時(shí),譯碼器正常工作;EN為低電平時(shí),譯碼器輸出0000000,表示數(shù)碼管無顯示。用選擇信號賦值語句描述,將綜合成組合邏輯電路。

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第11頁

      4.2按鍵去抖電路

      圖4.2 按鍵電路符號

      鍵盤的按鍵閉合與釋放瞬間,輸入的信號會(huì)有毛刺。如果不進(jìn)行消抖處理,系統(tǒng)會(huì)將這些毛刺誤以為是用戶的另一次輸入,導(dǎo)致系統(tǒng)的誤操作。防抖電路有很多種,最簡單、最容易理解的就是計(jì)數(shù)法。其原理是對鍵值進(jìn)行計(jì)數(shù),當(dāng)某一鍵值保持一段時(shí)間不改變時(shí)(計(jì)數(shù)器達(dá)到一定值后),才確認(rèn)它為有效值;否則將其判為無效鍵值,重新對鍵值進(jìn)行計(jì)算。

      4.3狀態(tài)機(jī)設(shè)計(jì)

      4.3.1狀態(tài)機(jī)的6種狀態(tài)及狀態(tài)轉(zhuǎn)移

      本狀態(tài)機(jī)有6種狀態(tài),分別是WAITSTATE、ATOB、BTOA、ASCORE、BSCORE和FINALRESULT,其含義如下表所示:

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第12頁

      狀態(tài)機(jī)的6種狀態(tài)及含義:

      表4.1 狀態(tài)機(jī)6種狀態(tài)表

      狀 態(tài) 含 義

      WAITSTATE 等待狀態(tài),等待A或B方開球

      ATOB 球從A向B方移動(dòng)

      BTOA 球從B向A方移動(dòng)

      ASCORE A得一分

      BSCORE B得一分

      FINALRESULT 比賽結(jié)束(最終判分),在此狀態(tài)下需要按復(fù)位鍵,才能開始下一輪比賽

      結(jié)合上表從下圖中很清楚地看出乒乓游戲機(jī)比賽過程中球的移動(dòng)情況,及加分方法,還可以初步了解到本狀態(tài)機(jī)設(shè)計(jì)的基本思路:

      圖4.3 乒乓游戲機(jī)狀態(tài)轉(zhuǎn)移圖

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第13頁

      4.3.2狀態(tài)機(jī)/球臺(tái)控制電路

      狀態(tài)機(jī)是種很重要的時(shí)序電路,也是本設(shè)計(jì)的核心部件。狀態(tài)機(jī)屬于時(shí)序電路范疇,實(shí)現(xiàn)一個(gè)控制功能更為方便,并提高了控制速度。本次設(shè)計(jì)中狀態(tài)機(jī)的符號如下圖所示:

      圖4.4 狀態(tài)機(jī)、球臺(tái)控制電路符號

      在本設(shè)計(jì)中,狀態(tài)機(jī)用兩個(gè)信號表示狀態(tài):STATE表示當(dāng)前狀態(tài),TABLESTATE表示下一個(gè)狀態(tài)。此狀態(tài)機(jī)由兩個(gè)進(jìn)程構(gòu)成,狀態(tài)機(jī)的輸入/輸出引腳的作用如下表所示。其中SCOREAL[3..0]、SCOREAH[3..0]、SCOREBL[3..0]、SCOREBH[3..0]用七段BCD碼譯碼器顯示得分情況,而SCOREA、SCOREB用二進(jìn)制進(jìn)行加分,由記分器反饋回來。

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第14頁

      輸入/輸出引腳的作用:

      表4.2 輸入輸出引腳表

      引 腳 作 用

      CLK

      所需時(shí)鐘可由系統(tǒng)時(shí)鐘分頻得到。此時(shí)時(shí)鐘決定了球移動(dòng)的速度,可根據(jù)實(shí)際需要調(diào)整。

      RESET 復(fù)位鍵,比賽重新開始,記分器清0 af、bf A和B雙方的開始的開球鍵

      aj,bj

      A和B雙方的擊球鍵(可以將其與開球鍵合并)CLEAR 將記分器清0(給記分器的控制信號)INCREASEA、INCREASEB 分別為A、B雙方的加分信號(給記分器的控制信號)SCOREAL[3..0]SCOREAH[3..0] SCOREBL[3..0]SCOREBH[3..0] SCOREA、SCOREB

      A、B雙方的分?jǐn)?shù)(由記分器給出)

      LIGHT[4..0] 接5個(gè)發(fā)光二極管

      AWIN、BWIN 分別接發(fā)光二極管,表示A或B方勝出

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第15頁

      4.4記分器設(shè)計(jì)

      圖4.5 計(jì)分器電路符號

      記分器元件符號如上圖所示,本設(shè)計(jì)中記分器比較簡單,只須根據(jù)狀態(tài)機(jī)給出的兩個(gè)信號(INCREASEA和INCREASEB)對六個(gè)分?jǐn)?shù)(SCOREAL、SCOREAH和SCOREBL、SCOREBH、SCOREA、SCOREB)進(jìn)行操作。

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第16頁 系統(tǒng)的整體綜合與仿真

      5.1頂層文件設(shè)計(jì)

      “乒乓球”游戲機(jī)系統(tǒng)主要由譯碼電路,按鍵去抖電路,狀態(tài)機(jī)/球臺(tái)控制電路等構(gòu)成,下圖為系統(tǒng)的頂層文件設(shè)計(jì)原理圖:

      圖5.1 頂層文件設(shè)計(jì)原理圖

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第17頁

      5.2系統(tǒng)程序框圖:

      系統(tǒng)的程序框圖如下圖所示,程序清單見附錄:

      clk1khzClk1_2hzClk1_2hz上升沿Rst=1NY重置初值判斷a,b,af,aj,bf,bj的值球的位置狀態(tài)shift_1A,B接發(fā)球情況A方得分a_scoreB方得分b_scoreA方得分的各位十位a_one,a_tenB方得分的各位十位b_one,b_ten譯碼顯示譯碼顯示 圖5.2 系統(tǒng)程序框圖

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第18頁

      5.3整個(gè)系統(tǒng)的綜合與仿真

      5.3.1 電路符號

      乒乓球游戲機(jī)的電路符號如下圖所示。輸入信號:系統(tǒng)時(shí)鐘clk1khz(輸入1KHZ的時(shí)鐘信號);系統(tǒng)復(fù)位端rst;甲方發(fā)球af;乙方發(fā)球bf;甲方擊球aj;乙方擊球bj;輸出信號:5個(gè)LED顯示模塊shift[4?0];數(shù)碼管地址選擇信號scan[3?0];7段顯示控制信號seg7[6..0]。

      圖5.3 系統(tǒng)電路符號

      5.3.2 系統(tǒng)仿真

      由于本系統(tǒng)的狀態(tài)情況比較的多,下面就幾種典型的情況進(jìn)行系統(tǒng)的綜合和仿真:

      1、甲方發(fā)球后乙方提前擊球,同時(shí)甲方得分:下圖為仿真的結(jié)果圖,觀察波形可知,球的移動(dòng)方向?yàn)閺淖蟮接?,乙提前擊球后a_core加1,即甲方得分。

      圖5.4 仿真結(jié)果圖

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第19頁

      2、甲方發(fā)球后,乙方在過網(wǎng)后擊球:此情況的功能仿真結(jié)果如下圖所示,觀察波形可知,乙接到球后,球的運(yùn)動(dòng)方向變?yōu)閺挠业阶蟆?/p>

      圖5.5 仿真結(jié)果圖

      3、甲方發(fā)球后,乙方?jīng)]有擊球:此情況的功能仿真結(jié)果圖如下圖所示,觀察波形可知,乙沒有接球,則甲方加分。

      圖5.6 仿真結(jié)果圖

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第20頁 系統(tǒng)的運(yùn)行與仿真過程

      6.1系統(tǒng)程序的編譯

      1、運(yùn)行新建項(xiàng)目向?qū)?,新建一個(gè)項(xiàng)目,選擇之前創(chuàng)建好的文件夾,用來存放該項(xiàng)目的文件,如圖6.1所示:

      2、該步驟主要是為以后的仿真做準(zhǔn)備,如圖6.2所示選擇仿真軟件為modelsim,編程語言為verilog HDL。

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第21頁

      3、創(chuàng)建完項(xiàng)目之后接著再新建一個(gè)verilog HDL file 用來編輯之前設(shè)計(jì)好的程序,再編輯區(qū)輸入設(shè)計(jì)好的程序之后,點(diǎn)擊編譯按鈕開始編譯文件,通過不斷的調(diào)試修改直到編譯成功為止,如圖6.3所示:

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第22頁

      6.2 系統(tǒng)的仿真

      1、點(diǎn)擊進(jìn)入仿真軟件modelsim之后,點(diǎn)擊如圖6.4所示的按鈕,找到之前準(zhǔn)備好的文件,開始編譯,觀察信息區(qū),直到編譯成功為止。

      2、在work庫中找到編譯成功的文件zhouyou,雙擊準(zhǔn)備開始仿真,如圖6.5所示:

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第23頁

      3、如圖6.6所示開始給定各個(gè)變量的初始值,以及所需的時(shí)鐘信號 根據(jù)自己的需要和仿真的方便性考慮時(shí)鐘的大小.4、給定完時(shí)鐘信號和各個(gè)變量的初始值之后,開始點(diǎn)擊進(jìn)入仿真界面,運(yùn)行開始仿真,具體的步驟如圖6.7所示:

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第24頁

      結(jié)論

      本文進(jìn)行乒乓游戲機(jī)軟件設(shè)計(jì),并用EDA實(shí)驗(yàn)箱進(jìn)行驗(yàn)證,目標(biāo)芯片是Altera公司CycloneII系列的EP2C35F484I8,本設(shè)計(jì)由狀態(tài)機(jī)/球臺(tái)控制器、記分器、譯碼顯示器、按鍵去抖等模塊組成。通過實(shí)驗(yàn)箱模擬乒乓球游戲機(jī),用發(fā)光二極管代表乒乓球臺(tái),最中間的發(fā)光二極管作球網(wǎng),用點(diǎn)亮的發(fā)光二極管按一定方向移動(dòng)來表示球的運(yùn)動(dòng),用按鈕設(shè)置發(fā)球和接球開關(guān)。最終實(shí)現(xiàn)乒乓機(jī)能模擬乒乓球比賽的基本過程和規(guī)則,并能自動(dòng)裁判和記分。本設(shè)計(jì)用了16個(gè)發(fā)光二極管當(dāng)乒乓球臺(tái)。本設(shè)計(jì)可以再改進(jìn)一下,把指示勝利2個(gè)發(fā)光二極管用數(shù)碼管來代替,這樣不僅可以完成之前的功能,而且可以顯示比賽的局?jǐn)?shù)。

      通過幾個(gè)月的努力,基本完成了畢業(yè)設(shè)計(jì)任務(wù)書所要求的內(nèi)容,而且在實(shí)驗(yàn)箱上對大部分功能進(jìn)行了仿真,取得了預(yù)期的結(jié)果,總之,通過自己的努力以及同學(xué)和老師的幫助,圓滿的完成了本次設(shè)計(jì)任務(wù)。

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第25頁

      謝 辭

      通過兩個(gè)多月的畢業(yè)設(shè)計(jì),我學(xué)習(xí)了怎樣運(yùn)用FPGA設(shè)計(jì)乒乓球游戲機(jī)系統(tǒng)。非常感謝我的指導(dǎo)老師孫禾,在整個(gè)設(shè)計(jì)過程中一直耐心教導(dǎo),認(rèn)真負(fù)責(zé),細(xì)心教誨,讓我領(lǐng)略到如何實(shí)現(xiàn)一個(gè)系統(tǒng)的設(shè)計(jì),以及如何使用書本知識到實(shí)際應(yīng)用上去。在很多細(xì)節(jié)上,孫老師的指導(dǎo)與教誨,讓人受益匪淺。

      感謝四年來測控技術(shù)與儀器專業(yè)各位老師的孜孜教誨和學(xué)校的細(xì)心培養(yǎng),讓我能有今天的進(jìn)步,在今后的工作中發(fā)揮自己的價(jià)值。

      最后要感謝我身后的父親,母親,一直以來對我的信任和支持,有朝一日,希望可以回給他們同樣的愛。

      感謝遼寧科技學(xué)院四年的學(xué)習(xí)!

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第26頁

      參考文獻(xiàn)

      [1] 邊計(jì)年.用VHDL設(shè)計(jì)電子線路[M].北京:清華出版社,2000:2.[2] 黃任.VHDL入門?解惑?經(jīng)典實(shí)例?經(jīng)驗(yàn)總結(jié)[M].北京:北京航天大學(xué)出版社,2005:3-5,115.[3] 尹常永.EDA技術(shù)/電子設(shè)計(jì)實(shí)驗(yàn)講義[M].西安:西安電子科技大學(xué)出版社,2004:3.[4] 楊剛.現(xiàn)代電子技術(shù)—VHDL與數(shù)字系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2004:6.[5] 甘歷.VHDL應(yīng)用與開發(fā)實(shí)驗(yàn)[M].北京:科學(xué)出版社,2003:4.[6] 侯伯亨.VHDL硬件描述語言與數(shù)字邏輯電路設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,1999:27.[7] 潭會(huì)生,張昌凡.EDA技術(shù)及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2004:81,233,256.[8] 王振紅.VHDL數(shù)字電路設(shè)計(jì)與應(yīng)用實(shí)踐教程[M].北京:機(jī)械工業(yè)出版社,2005:35,37.[9] 李宜達(dá).數(shù)字邏輯電路設(shè)計(jì)與實(shí)現(xiàn)[M].北京:科學(xué)出版社,2004:144.遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第27頁

      附錄

      1、系統(tǒng)程序:

      module zhouyou(shift,scan,seg7,clk1khz,rst,af,aj,bf,bj);output[4:0] shift;output[3:0] scan;output[6:0] seg7;input clk1khz;input af;input aj;input bf;input bj;input rst;reg[4:0] shift;reg[3:0] scan;reg[6:0] seg7;reg clk1_2hz;reg[3:0] a_score,b_score;reg[1:0] cnt;reg[3:0] data;reg[3:0] a_one,a_ten,b_one,b_ten;reg[7:0] count;reg a,b;

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第28頁

      reg[4:0] shift_1;

      always@(posedge clk1khz)begin if(count=='b1111_1010)begin clk1_2hz<=~clk1_2hz;count<=0;end else begin count<=count+1;end

      if(cnt=='b11)begin cnt<='b00;end else begin cnt<=cnt+1;end end

      always@(posedge clk1khz)begin if(rst)begin a_score<=0;b_score<=0;a<=0;b<=0;shift_1<=0;end else begin

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第29頁

      if(!a&&!b&&af)begin a<=1;shift_1<='b10000;end else if(!a&&!b&&bf)begin b<=1;shift_1<='b00001;end else if(a&&!b)begin if(shift_1>'b00100)begin if(bj)begin a_score<=a_score+1;a<=0;b<=0;shift_1<='b00000;end else begin shift_1[4:1]<=shift_1[4:1]>>1;end end else if(shift_1=='b0)begin a_score<=a_score+1;a<=0;b<=0;end else begin if(bj)begin a<=0;b<=1;end

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第30頁

      else begin shift_1[4:1]<=shift_1[4:1]>>1;end end end else if(b&&!a)begin if(shift_1<'b00100&&shift_1!='b0)begin if(aj)begin b_score<=b_score+1;a<=0;b<=0;shift_1<='b00000;end else begin shift_1[3:0]<=shift_1[3:0]<<1;end end else if(shift_1=='b0)begin b_score<=b_score+1;a<=0;b<=0;end else begin if(aj)

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第31頁

      begin a<=1;b<=0;end else begin shift_1[3:0]<=shift_1[3:0]<<1;end end end end shift<=shift_1;if(a_score=='b1011&&!rst)begin a_score<=a_score;b_score<=b_score;end if(b_score=='b1011&&!rst)begin a_score<=a_score;b_score<=b_score;end end always@(posedge clk1khz)begin case(a_score[3:0])'b0000:begin a_one<='b0000;a_ten<='b0000;end 'b0001:begin a_one<='b0001;a_ten<='b0000;end 'b0010:begin a_one<='b0010;a_ten<='b0000;end 'b0011:begin a_one<='b0011;a_ten<='b0000;end 'b0100:begin a_one<='b0100;a_ten<='b0000;end 'b0101:begin a_one<='b0101;a_ten<='b0000;end 'b0110:begin a_one<='b0110;a_ten<='b0000;end

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第32頁

      'b0111:begin a_one<='b0111;a_ten<='b0000;end 'b1000:begin a_one<='b1000;a_ten<='b0000;end 'b1001:begin a_one<='b1001;a_ten<='b0000;end 'b1010:begin a_one<='b0000;a_ten<='b0001;end 'b0011:begin a_one<='b0001;a_ten<='b0001;end default:begin a_one<='bx;a_ten<='bx;end endcase

      case(b_score[3:0])'b0000:begin b_one<='b0000;b_ten<='b0000;end 'b0001:begin b_one<='b0001;b_ten<='b0000;end 'b0010:begin b_one<='b0010;b_ten<='b0000;end 'b0011:begin b_one<='b0011;b_ten<='b0000;end 'b0100:begin b_one<='b0100;b_ten<='b0000;end 'b0101:begin b_one<='b0101;b_ten<='b0000;end 'b0110:begin b_one<='b0110;b_ten<='b0000;end 'b0111:begin b_one<='b0111;b_ten<='b0000;end 'b1000:begin b_one<='b1000;b_ten<='b0000;end 'b1001:begin b_one<='b1001;b_ten<='b0000;end 'b1010:begin b_one<='b0000;b_ten<='b0001;end 'b0011:begin b_one<='b0001;b_ten<='b0001;end default:begin b_one<='bx;b_ten<='bx;end

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第33頁

      endcase

      case(cnt[1:0])'b00:begin data<=b_one;scan<='b0001;end 'b01:begin data<=b_ten;scan<='b0010;end 'b10:begin data<=a_one;scan<='b0100;end 'b11:begin data<=a_ten;scan<='b1000;end default:begin data<='bx;scan<='bx;end endcase

      case(data[3:0])'b0000: seg7[6:0]=7'b1111110;'b0001: seg7[6:0]=7'b0110000;'b0010: seg7[6:0]=7'b1101101;'b0011: seg7[6:0]=7'b1111001;'b0100: seg7[6:0]=7'b0110011;'b0101: seg7[6:0]=7'b1011011;'b0110: seg7[6:0]=7'b1011111;'b0111: seg7[6:0]=7'b1110000;'b1000: seg7[6:0]=7'b1111111;'b1001: seg7[6:0]=7'b1111011;

      遼寧科技學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)第34頁

      default: seg7[6:0]='bx;endcase end

      endmodule

      第二篇:基于FPGA的交通燈控制器設(shè)計(jì)

      數(shù)字系統(tǒng)課程設(shè)計(jì)

      基于FPGA的交通控制燈設(shè)計(jì)

      姓名:

      學(xué)號:

      班級:

      摘要

      隨著社會(huì)的發(fā)展,城市規(guī)模的不斷擴(kuò)大,城市交通成為制約城市發(fā)展的一大因素。人口和汽車日益增長,市區(qū)交通也日益擁擠,人們的安全問題當(dāng)然也日益重要。因此,紅綠交通信號燈成為交管部門管理交通的重要工具之一。有了交通燈,人們的安全出行也有了很大的保障。自從交通燈誕生以來,其內(nèi)部的電路控制系統(tǒng)就不斷的被改進(jìn),設(shè)計(jì)方法也開始多種多樣,從而使交通燈顯得更加智能化。尤其是近幾年來,隨著電子與計(jì)算機(jī)技術(shù)的飛速發(fā)展,電子電路分析和設(shè)計(jì)方法有了很大的改進(jìn),電子設(shè)計(jì)自動(dòng)化也已經(jīng)成為現(xiàn)代電子系統(tǒng)中不可或缺的工具和手段,這些都為交通燈控制系統(tǒng)的設(shè)計(jì)提供了一定的技術(shù)基礎(chǔ)。本課程設(shè)計(jì)運(yùn)用erilog HDL語言描述交通控制器,通過狀態(tài)機(jī)計(jì)數(shù)法,實(shí)現(xiàn)設(shè)計(jì)所要求的交通燈控制及時(shí)間顯示,并最后進(jìn)行了軟件實(shí)現(xiàn),達(dá)到了系統(tǒng)要求的功能。

      設(shè)計(jì)原理

      1.1設(shè)計(jì)要求

      設(shè)計(jì)一個(gè)交通控制器,用LED顯示燈表示交通狀態(tài),并以7段數(shù)碼顯示器顯示當(dāng)前狀態(tài)剩余秒數(shù) 主干道綠燈亮?xí)r,支干道紅燈亮;反之亦然,二者交替允許通行,主干道每次放行35s,支干道每次放行25s。每次由綠燈變?yōu)榧t燈的過程中,亮光的黃燈作為過渡,黃燈的時(shí)間為5s。能進(jìn)行特殊狀態(tài)顯示,特殊狀態(tài)時(shí)東西、南北路口均顯示紅燈狀態(tài)。用LED燈顯示倒計(jì)時(shí),并且能實(shí)現(xiàn)總體清零功能,計(jì)數(shù)器由初始狀態(tài)開始計(jì)數(shù),對應(yīng)狀態(tài)的顯示燈亮。能實(shí)現(xiàn)特殊狀態(tài)的功能顯示,1.2設(shè)計(jì)思路和原理

      本次設(shè)計(jì)是針對十字路口,進(jìn)行南北和東西直行情況下交通燈控制。設(shè)定東西方向?yàn)橹鞲傻婪较颍鶕?jù)交通燈的亮的規(guī)則,在初始狀態(tài)下四個(gè)方向的都為紅燈亮啟,進(jìn)入正常工作狀態(tài)后,當(dāng)主干道上綠燈亮?xí)r,支干道上紅燈亮,持續(xù)35S后,主干道和支干道上的黃燈都亮啟,持續(xù)5S后,主干道上紅燈亮啟,支干道上綠燈亮啟持續(xù)25S,之后主干道和支干道上的黃燈都亮啟5s,一個(gè)循環(huán)完成。循環(huán)往復(fù)的直行這個(gè)過程。其過程如下圖所示:

      0s主干道方向25s綠燈亮30s紅燈亮黃燈亮65s支干道方向0s紅燈亮35s綠燈亮黃燈亮60s65s

      圖1.交通燈點(diǎn)亮?xí)r間控制說明

      1.3實(shí)現(xiàn)方法

      本次采用文本編輯法,即利用Verilog HDL語言描述交通控制器,通過狀態(tài)機(jī)計(jì)數(shù)法,實(shí)現(xiàn)設(shè)計(jì)所要求的交通燈控制及時(shí)間顯示。設(shè)計(jì)中用兩組紅黃綠LED模擬兩個(gè)方向上的交通燈,用4個(gè)7段數(shù)碼管分別顯示兩個(gè)方向上的交通燈剩余時(shí)間,控制時(shí)鐘由試驗(yàn)箱上頻率信號提供。

      Verilog HDL程序設(shè)計(jì)

      2.1整體設(shè)計(jì)

      根據(jù)上章設(shè)計(jì)原理,交通燈控制的關(guān)鍵是各個(gè)狀態(tài)之間的轉(zhuǎn)換和進(jìn)行適當(dāng)?shù)臅r(shí)間延時(shí),根據(jù)狀態(tài)機(jī)的設(shè)計(jì)規(guī)范,本次設(shè)計(jì)了三個(gè)狀態(tài)之間的循環(huán)轉(zhuǎn)化,其真值表及狀態(tài)轉(zhuǎn)化圖如下所示:

      狀狀00狀狀00狀狀10狀狀11狀狀01狀狀01狀狀11狀狀10狀狀狀狀狀狀狀狀狀狀001狀狀狀狀狀010狀狀狀狀狀100狀狀狀狀狀010狀狀狀狀狀狀狀狀狀狀100狀狀狀狀狀010狀狀狀狀狀001狀狀狀狀狀010

      圖2.交通燈控制狀態(tài)轉(zhuǎn)化

      說明:該狀態(tài)圖為交通燈在正常情況下的狀態(tài)轉(zhuǎn)化圖,進(jìn)入控制后,狀態(tài)00時(shí)主干道綠燈及支干道紅燈亮起,進(jìn)入狀態(tài)01后兩路黃燈亮起,狀態(tài)11時(shí)主干道紅燈及支干道綠燈亮起。進(jìn)入10狀態(tài)兩路黃燈亮起。結(jié)束一個(gè)循環(huán),從00狀態(tài)重新開始循環(huán)。

      為實(shí)現(xiàn)控制與顯示的功能,需要設(shè)計(jì)交通燈點(diǎn)亮順序控制程序,倒數(shù)計(jì)時(shí)程序,七段數(shù)碼管顯示程序,數(shù)碼管顯示掃描程序,其系統(tǒng)結(jié)構(gòu)圖如下所示:

      holdrst狀狀狀狀1Hz狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀clk1KHz狀狀狀狀狀狀狀1Hz狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀 圖3.交通燈控制系統(tǒng)結(jié)構(gòu)圖

      其中rst為復(fù)位信號,clk為時(shí)鐘信號,hold為特殊情況控制信號,輸入hold時(shí)兩個(gè)方向紅燈無條件亮起。

      2.2 具體設(shè)計(jì)

      根據(jù)整體設(shè)計(jì)要求,編寫各個(gè)功能部分Verilog HDL程序,設(shè)置各輸入輸出變量說明如下 clk: 為計(jì)數(shù)時(shí)鐘; qclk:為掃描顯示時(shí)鐘;

      en: 使能信號,為1 的話,則控制器開始工作; rst: 復(fù)位信號,為1的話,控制及技術(shù)回到初始狀態(tài);

      hoid:特殊情況控制信號,為1的話,則兩個(gè)方向無條件顯示為紅燈;

      light1: 控制主干道方向四盞燈的亮滅;其中,light1[0]~light[2],分別控制主干道方向的 綠燈、黃燈和紅燈;

      light2: 控制支干道方向四盞燈的亮滅;其中,light2[0] ~ light2[2],分別控制支干道方向的 綠燈、黃燈和紅燈;

      num1: 用于主干道方向燈的時(shí)間顯示,8 位,可驅(qū)動(dòng)兩個(gè)數(shù)碼管; num2: 用于支干道方向燈的時(shí)間顯示,8 位,可驅(qū)動(dòng)兩個(gè)數(shù)碼管; counter:用于數(shù)碼管的譯碼輸出; st1,st2:數(shù)碼管掃描信號。輸入輸出及中間變量設(shè)置如下:

      module traffic(en,clk,qclk,rst,rst1,hold,num1,num2,light1,light2,counter,st1,st2);input en,clk,qclk,rst,hold,rst1;output st1,st2;output[7:0] num1,num2;output[6:0]counter;output[2:0] light1,light2;reg tim1,tim2,st1,st2;reg[1:0]state1,state2,ste;reg[2:0]light1,light2;reg[3:0]num;reg[6:0]counter;reg[7:0] num1,num2;reg[7:0] red1,red2,green1,green2,yellow1,yellow2;

      1.二極管點(diǎn)亮控制

      該部分程序的作用是根據(jù)計(jì)數(shù)器的計(jì)數(shù)值控制發(fā)光二極管的亮、滅,以及輸出倒計(jì)時(shí)數(shù)值給七段數(shù)碼管的譯碼電路。此外,當(dāng)檢測到特殊情況(hold=‘1’)發(fā)生時(shí),無條件點(diǎn)亮紅燈的二極管,當(dāng)檢測到復(fù)位信號,兩個(gè)方向計(jì)數(shù)與控制回復(fù)到00狀態(tài)。因?yàn)橹鳌⒅Ц傻纼蓚€(gè)方向二極管點(diǎn)亮的順序與延遲時(shí)間不同,顧編寫兩個(gè)獨(dú)立的部分來控制,具體程序如下: 1)主干道方向 always @(posedge clk)begin

      if(rst)//復(fù)位與特殊情況控制

      begin light1<=3'b001;num1<=green1;end else if(hold)begin light1<=3'b100;num1<=green1;end else if(en)

      begin //使能有效開始控制計(jì)數(shù)

      if(!tim1)//

      begin //主干道交通燈點(diǎn)亮控制

      tim1<=1;

      case(state1)

      2'b00:begin num1<=green1;light1<=3'b001;state1<=2'b01;end

      2'b01:begin num1<=yellow1;light1<=3'b010;state1<=2'b11;end

      2'b11:begin num1<=red1;light1<=3'b100;state1<=2'b10;end

      2'b10:begin num1<=yellow1;light1<=3'b010;state1<=2'b00;end

      default:light1<=3'b100;

      endcase

      end 2)支干道方向

      always @(posedge clk)begin

      if(rst)//復(fù)位與特殊情況控制

      begin

      light2<=3'b100;

      num2<=red2;

      end

      else if(hold)

      begin

      light2<=3'b100;

      num2<=red2;

      end

      else if(en)

      begin

      if(!tim2)

      begin

      tim2<=1;

      case(state1)

      2'b00:begin num2<=red2;light2<=3'b100;state2<=2'b01;end

      2'b01:begin num2<=yellow1;light2<=3'b010;state2<=2'b11;end

      2'b11:begin num2<=green2;light2<=3'b001;state2<=2'b10;end

      2'b10:begin num2<=yellow2;light2<=3'b010;state2<=2'b00;end

      default:light2<=3'b100;

      endcase

      end

      2.倒數(shù)計(jì)時(shí)

      該部分程序完成二極管發(fā)光時(shí)延的計(jì)數(shù),并將計(jì)數(shù)結(jié)果送到數(shù)碼管顯示電路,每切換到一個(gè)狀態(tài),計(jì)數(shù)器的初值都被重置,以實(shí)現(xiàn)不同顏色二極管不同的時(shí)延要求。本次設(shè)計(jì)直接用邏輯運(yùn)算完成2位十進(jìn)制數(shù)的計(jì)數(shù),未采用分位器的設(shè)計(jì)。因?yàn)橹?、支干道上?jì)數(shù)器的結(jié)構(gòu)完全相同,顧只列出一路的程序,其具體程序如下所示:

      always @(posedge clk)begin else begin //倒數(shù)計(jì)時(shí)

      if(num1>0)

      if(num1[3:0]==0)

      begin

      num1[3:0]<=4'b1001;

      num1[7:4]<=num1[7:4]-1;

      end

      else num1[3:0]<=num1[3:0]-1;

      if(num1==1)tim1<=0;

      end

      end

      else

      begin

      light1<=3'b010;

      num1=2'b00;

      tim1<=0;

      end end

      3.數(shù)碼管的譯碼及掃描顯示

      該段程序主要完成4個(gè)7段數(shù)碼管的譯碼顯示及掃描,使系統(tǒng)能正常顯示主、支干道兩個(gè)方向上的剩余時(shí)間。譯碼的時(shí)鐘頻率要低,為Hz級。掃描的時(shí)鐘頻率要高,最低不得小于人眼分辨頻率50Hz,具體程序如下所示: always @(posedge qclk)begin //數(shù)碼管掃描

      if(rst1)

      begin

      st1=0;

      st2=0;

      end else

      begin

      case({st2,st1})

      2'b00:begin num<=num1[3:0];{st2,st1}<=2'b01;end

      2'b01:begin num<=num1[7:4];{st2,st1}<=2'b10;end

      2'b10:begin num<=num2[3:0];{st2,st1}<=2'b11;end

      2'b11:begin num<=num2[7:4];{st2,st1}<=2'b00;end

      endcase

      end end always @(posedge qclk)begin //數(shù)碼管譯碼顯示 case(num)4'b0000: counter<=7'b0111111;//0 4'b0001: counter<=7'b0000110;//1 4'b0010: counter<=7'b1011011;//2 4'b0011: counter<=7'b1001111;//3 4'b0100: counter<=7'b1100110;//4 4'b0101: counter<=7'b1101101;//5 4'b0110: counter<=7'b1111101;//6 4'b0111: counter<=7'b0000111;//7 4'b1000: counter<=7'b1111111;//8 4'b1001: counter<=7'b1101111;//9 default: counter<=7'b0111111;//0 endcase end endmodule 總體程序見程序清單所示

      仿真與硬件調(diào)試

      3.1 波形仿真

      在QuartursⅡ軟件下創(chuàng)建工程,新建編輯設(shè)計(jì)文件,將程序輸入,整體編譯后,新建波形仿真文件。設(shè)置仿真時(shí)間,時(shí)鐘周期,輸入輸出端口,進(jìn)行波形仿真。具體仿真波形圖及說明如下所示: 仿真截止時(shí)間:100us; 時(shí)鐘:clk 1us,qclk 0.1us 1.正常工作時(shí)波形仿真圖

      圖4.正常工作時(shí)波形仿真圖

      圖形說明

      波形仿真主要完成了控制與計(jì)數(shù)以及數(shù)碼管顯示的波形圖。en為低電品時(shí),計(jì)數(shù)器置初值,高電平時(shí)開始正??刂婆c計(jì)數(shù)??刂瓢l(fā)光二極管首次輸出為“l(fā)ight1=001,light2=100”,表示主干道路綠燈亮,支桿道路紅燈亮,計(jì)數(shù)器num1和num2從“00110101”開始遞減計(jì)數(shù),計(jì)數(shù)至“00000000”時(shí),進(jìn)入下一個(gè)狀態(tài),控制輸出量為light=010,light2=010,表示主、支干道黃燈均亮起,計(jì)數(shù)器num1和num2從“00000101”開始計(jì)數(shù)遞減,計(jì)數(shù)至”00000000”時(shí)進(jìn)入下一個(gè)狀態(tài),light=100,light2=001,表示主干道路紅燈亮,支桿道路綠燈亮。Counter根據(jù)num1,num2變化隨時(shí)鐘上升沿輸出譯碼后的數(shù)據(jù)。由于屏幕顯示大小有限,未仿真出一個(gè)完整周期。

      2.特殊情況仿真波形

      圖5.特殊情況仿真波形

      圖形說明

      當(dāng)hold輸入高電平時(shí),在時(shí)鐘上升沿的控制下,light 1與light2被強(qiáng)制置位為”100”,表示兩路紅燈均亮起

      3.復(fù)位情況仿真波形

      圖6.復(fù)位情況仿真波形

      圖形說明

      當(dāng)rst輸入高電平時(shí),在時(shí)鐘上升沿控制下,計(jì)數(shù)與控制都回到00狀態(tài),即light1=001,light2=100,計(jì)數(shù)器num1和num2從“00110101”開始遞減計(jì)數(shù)。3.2 硬件調(diào)試

      完成時(shí)序仿真確認(rèn)無誤后,進(jìn)行實(shí)驗(yàn)箱管腳設(shè)置,注意設(shè)置完成后一定要再進(jìn)行一次全局仿真,使程序真正對應(yīng)于硬件輸出輸出。具體連接說明如下所示

      輸入變量:rst、clk、qclk、hold、en 其中en,hold,rst接”0-1”撥碼開關(guān),以穩(wěn)定的輸出可變化的電平。計(jì)數(shù)時(shí)鐘clk接實(shí)驗(yàn)箱上1Hz時(shí)鐘,掃描顯示時(shí)鐘qclk接125Khz時(shí)鐘。

      輸出變量:light1[2:0]、light2[2:0]、counter[6:0]、st1、st2 其中l(wèi)ight1[0]、light2[0]分別接綠色的發(fā)光二極管;light1[1]、light2[1] 分別接黃色的發(fā)光二極管;light1[2]、light2[2]分別接紅色的發(fā)光二極管。counter[0]~counter[6],分別接七段數(shù)碼管的a~f,st1、st2分別接試驗(yàn)箱上”4-16”譯碼器的低兩位。

      完成接線后將程序燒寫到芯片上,開始功能調(diào)試。分辨改變使能信號,復(fù)位信號以及特殊情況信號,觀察數(shù)碼管以及發(fā)光二級管情況。

      程序清單

      module traffic(en,clk,qclk,rst,rst1,hold,num1,num2,light1,light2,counter,st1,st2);input en,clk,qclk,rst,hold,rst1;output st1,st2;output[7:0] num1,num2;output[6:0]counter;output[2:0] light1,light2;reg tim1,tim2,st1,st2;reg[1:0]state1,state2,ste;reg[2:0]light1,light2;reg[3:0]num;reg[6:0]counter;reg[7:0] num1,num2;reg[7:0] red1,red2,green1,green2,yellow1,yellow2;

      always @(en)if(!en)begin //設(shè)置計(jì)數(shù)初值 green1<=8'b00110101;red1<=8'b00100101;yellow1<=8'b00000101;green2<=8'b00100101;red2<=8'b00110101;yellow2<=8'b00000101;end

      always @(posedge clk)begin if(rst)//復(fù)位與特殊情況控制

      begin

      light1<=3'b001;num1<=green1;

      end else if(hold)

      begin

      light1<=3'b100;

      num1<=green1;

      end

      else if(en)

      begin //使能有效開始控制計(jì)數(shù)

      if(!tim1)//開始控制

      begin //主干道交通燈點(diǎn)亮控制

      tim1<=1;

      case(state1)

      2'b00:begin num1<=green1;light1<=3'b001;state1<=2'b01;end

      2'b01:begin num1<=yellow1;light1<=3'b010;state1<=2'b11;end

      2'b11:begin num1<=red1;light1<=3'b100;state1<=2'b10;end

      2'b10:begin num1<=yellow1;light1<=3'b010;state1<=2'b00;end

      default:light1<=3'b100;

      endcase

      end

      else

      begin //倒數(shù)計(jì)時(shí)

      if(num1>0)

      if(num1[3:0]==0)

      begin

      num1[3:0]<=4'b1001;

      num1[7:4]<=num1[7:4]-1;

      end

      else num1[3:0]<=num1[3:0]-1;

      if(num1==1)tim1<=0;

      end

      end

      else

      begin

      light1<=3'b010;

      num1=2'b00;

      tim1<=0;

      end

      end

      always @(posedge clk)begin

      if(rst)//復(fù)位與特殊情況控制

      begin

      light2<=3'b100;

      num2<=red2;

      end

      else if(hold)

      begin

      light2<=3'b100;

      num2<=red2;

      end

      else if(en)

      begin

      if(!tim2)

      begin

      tim2<=1;

      case(state1)

      2'b00:begin num2<=red2;light2<=3'b100;state2<=2'b01;end

      2'b01:begin num2<=yellow1;light2<=3'b010;state2<=2'b11;end

      2'b11:begin num2<=green2;light2<=3'b001;state2<=2'b10;end

      2'b10:begin num2<=yellow2;light2<=3'b010;state2<=2'b00;end

      default:light2<=3'b100;

      endcase

      end

      else

      begin //倒數(shù)計(jì)時(shí)

      if(num2>0)

      if(num2[3:0]==0)

      begin

      num2[3:0]<=4'b1001;

      num2[7:4]<=num2[7:4]-1;

      end

      else num2[3:0]<=num2[3:0]-1;

      if(num2==1)tim2<=0;

      end

      end

      else

      begin

      tim2<=0;

      state2<=2'b00;

      light2<=3'b010;

      end

      end

      always @(posedge qclk)begin //數(shù)碼管掃描

      if(rst1)

      begin

      st1=0;

      st2=0;

      end else

      begin

      case({st2,st1})

      2'b00:begin num<=num1[3:0];{st2,st1}<=2'b01;end

      2'b01:begin num<=num1[7:4];{st2,st1}<=2'b10;end

      2'b10:begin num<=num2[3:0];{st2,st1}<=2'b11;end

      2'b11:begin num<=num2[7:4];{st2,st1}<=2'b00;end

      endcase

      end end always @(posedge qclk)begin //數(shù)碼管譯碼顯示 case(num)4'b0000: counter<=7'b0111111;//0 4'b0001: counter<=7'b0000110;//1 4'b0010: counter<=7'b1011011;//2 4'b0011: counter<=7'b1001111;//3 4'b0100: counter<=7'b1100110;//4 4'b0101: counter<=7'b1101101;//5 4'b0110: counter<=7'b1111101;//6 4'b0111: counter<=7'b0000111;//7 4'b1000: counter<=7'b1111111;//8 4'b1001: counter<=7'b1101111;//9 default: counter<=7'b0111111;//0 endcase end endmodule

      總結(jié)

      在設(shè)計(jì)中采用V erilog HDL語言設(shè)計(jì)交通燈控制系統(tǒng), 借助其功能強(qiáng)大的語言結(jié)構(gòu), 簡明的代碼描述復(fù)雜控制邏輯設(shè)計(jì), 與工藝無關(guān)特性, 在提高工作效率的同時(shí)達(dá)到求解目的, 并可以通過V erilog HDL 語言的綜合工具進(jìn)行相應(yīng)硬件電路生成, 具有傳統(tǒng)邏輯設(shè)計(jì)方法所無法比擬的優(yōu)越性。

      在設(shè)計(jì)過程中,覺得最難的部分是波形仿真部分,雖然程序編譯通過但仿真出不了正確的波形,不是計(jì)數(shù)器無法正常計(jì)數(shù),就是控制輸出無法進(jìn)入到下一個(gè)狀態(tài),每次出現(xiàn)問題就必須返回重新修改程序。實(shí)踐證明,在編寫一個(gè)較復(fù)雜的程序時(shí),一開始一定要畫流程圖,弄清楚各個(gè)功能及實(shí)現(xiàn)它們的邏輯算法,做到心中有數(shù)后在開始下筆寫編寫程序。在編寫的時(shí)候要尤其要注意語言的規(guī)范,如本次設(shè)計(jì)中編寫的V erilog在Quartus8.1中可以正常生成時(shí)序圖,而在低版本的軟件中卻無法生成,原因就是語言使用不規(guī)范,在解決這個(gè)問題時(shí)我總結(jié)了一些經(jīng)驗(yàn),首先程序要邏輯清晰,簡潔明了,避免不必要的嵌套與條用,其次要適當(dāng)?shù)亟o程序加上注解文字,提高可讀性,以方便之后的程序出錯(cuò)時(shí)進(jìn)行查找,最后充分利用仿真軟件提供的各項(xiàng)編譯工具與報(bào)錯(cuò)消息,按圖索驥,有方向的完成程序調(diào)試。

      完成仿真后進(jìn)行,進(jìn)行試驗(yàn)箱上的硬件調(diào)試,該步驟主要是要求細(xì)心,按照引腳清單,逐一完成連線,本次設(shè)計(jì)用到兩個(gè)時(shí)鐘輸入,注意一定要選擇合適頻率的時(shí)鐘,以便達(dá)到期望的效果。注意觀察實(shí)物的現(xiàn)象,看是否滿足設(shè)計(jì)要求,不滿足時(shí)檢查是硬件問題還是程序問題,如果是程序問題,在修改完之后必須要重新編譯,重新燒入。不斷排查錯(cuò)誤,直至達(dá)到滿意的效果。

      通過這次課程設(shè)計(jì),熟悉了簡單EDA設(shè)計(jì)的整個(gè)流程,加深了對Verilog HDL硬件描述語言的理解,提高了動(dòng)手能力,并且鍛煉了自己的耐心,收獲頗豐,我會(huì)把在本次課程設(shè)計(jì)中學(xué)到的東西應(yīng)用到今后的工作學(xué)習(xí)中。

      參考資料

      [1] 夏宇聞.復(fù)雜數(shù)字電路與系統(tǒng)的V erilog HDL設(shè)計(jì)技術(shù) [M ].北京: 北京航空航天大學(xué)出版社, 1998 [2] 郭梯云.移動(dòng)通信[M ].西安: 西安電子科技大學(xué)出版社, 1995 [3] [法]M ichelMouly, M arie Bernadet te Pautet1GSM 數(shù)字移動(dòng)通信系統(tǒng)[M ].駱健霞, 顧龍信, 徐云霄譯.北京: 電子工業(yè)出版社, 1996 [4] 張毅剛, 喬立巖.虛擬儀器軟件開發(fā)環(huán)境L abW indow s?CV I 610 編程指南[M ].北京: 機(jī)械工業(yè)出版社, 2002 [5] 劉國權(quán).GSM 手機(jī)的測試[J ].中國無線電管理, 2003 [6] 俞定玖, 劉湘慧.GSM 數(shù)字蜂窩移動(dòng)交換系統(tǒng)測試[J ].電信科學(xué), 2000 [7] 張明.V erilog HDL 實(shí)用教程[M ].成都: 電子科技大學(xué)出版社, 1999 [8] Hyde D C.Bucknell Handbook on V erilog HDL 1Computer Science Department, Bucknell U niversity L ew is burg, 1995 [9] 康華光.電子技術(shù)基礎(chǔ)(數(shù)字部分)[M ].北京: 高等教育出版社, 1988

      第三篇:基于FPGA的彩燈控制器設(shè)計(jì)

      鄭州輕工業(yè)學(xué)院

      可編程數(shù)字系統(tǒng)設(shè)計(jì)

      題 目 學(xué)生姓名 專業(yè)班級 學(xué) 號 院(系)指導(dǎo)教師 完成時(shí)間

      基于FPGA的彩燈控制器的設(shè)計(jì) 張煥煥 電子信息工程10-2班 電氣信息工程學(xué)院

      基于FPGA的彩燈控制器設(shè)計(jì)

      摘 要

      隨著科技的發(fā)展 , 在現(xiàn)代生活中, 彩燈作為一種景觀應(yīng)用越來越多。而在電子電路設(shè)計(jì)領(lǐng)域中,電子設(shè)計(jì)自動(dòng)化(EDA)工具已成為主要的設(shè)計(jì)手段,VHDL語言則是EDA的關(guān)鍵技術(shù)之一,它采用自頂向下的設(shè)計(jì)方法,即從系統(tǒng)總體要求出發(fā),自上至下地將設(shè)計(jì)任務(wù)分解為不同的功能模塊,最后將各功能模塊連接形成頂層模塊,完成系統(tǒng)硬件的整體設(shè)計(jì)。本文介紹了基于EDA技的多路彩燈控制器的設(shè)計(jì)與分析。在MAX+PLUSII環(huán)境下采用VHDL語言實(shí)現(xiàn),論述了基于VHDL語言和FPGA芯片的數(shù)字系統(tǒng)設(shè)計(jì)思想和實(shí)現(xiàn)過程。電子設(shè)計(jì)自動(dòng)化技術(shù)EDA的發(fā)展給電子系統(tǒng)的設(shè)計(jì)帶來了革命性的變化,EDA軟件設(shè)計(jì)工具,硬件描述語言,可編程邏輯器件使得EDA技術(shù)的應(yīng)用走向普及。FPGA是新型的可編程邏輯器件,采用FPGA進(jìn)行產(chǎn)品開發(fā)可以靈活地進(jìn)行模塊配置,大大縮短了產(chǎn)品開發(fā)周期,也有利于產(chǎn)品向小型化,集成化的方向發(fā)展。

      關(guān)鍵詞: VHDL 彩燈 仿真

      1、概述

      1.1、設(shè)計(jì)目的:

      設(shè)計(jì)一個(gè)彩燈控制器,使彩燈(LED管)可以實(shí)現(xiàn)四種花樣循環(huán)變化及兩種不同頻率的閃爍,有復(fù)位開關(guān)。整個(gè)系統(tǒng)有七個(gè)輸入信號CLK,CLR,A,B,C,D,OPT,六個(gè)輸出信號控制六個(gè)彩燈。OPT的高低電平控制彩燈閃爍的快慢,A,B,C,D控制各種不同花樣彩燈的變換。此彩燈控制系統(tǒng)設(shè)定有四種花樣變化。四種花樣分別為:a.彩燈從左到右逐次亮起,再逐次從右到左熄滅;b.彩燈兩邊同時(shí)亮兩個(gè),再逐次向中間亮;c.彩燈從左到右兩個(gè)兩個(gè)的亮,再從右到左兩個(gè)兩個(gè)逐次的亮;d.彩燈中間兩個(gè)亮,再同時(shí)向兩邊散開。

      1.2、設(shè)計(jì)要求:

      ? 掌握FPGA 的程序設(shè)計(jì)方法。? 掌握硬件描述語言語法。

      ? 程序設(shè)計(jì)完成后要求在軟件中實(shí)現(xiàn)功能仿真。

      2、系統(tǒng)設(shè)計(jì)

      2.1、設(shè)計(jì)原理:

      整個(gè)系統(tǒng)共有七個(gè)輸入信號:基準(zhǔn)時(shí)鐘信號CLK,系統(tǒng)清零信號(復(fù)位信號)CLR,彩燈節(jié)奏快慢選擇開關(guān)OPT;共有4個(gè)輸出信號Q[3..0],分別用于控制四路彩燈。據(jù)此,我們可將整個(gè)彩燈控制器CDKZQ分為四大部分:彩燈花樣控制部分、分頻部分、定時(shí)部分和計(jì)數(shù)部分。當(dāng)各個(gè)模塊均完成上述操作之后,形成最后的四路彩燈顯示系統(tǒng),并且進(jìn)行仿真。仿真通過,即可下載到指定的FPGA芯片里面,并進(jìn)行實(shí)際連線,進(jìn)行最后的硬件測試。把分頻部分的不同頻率的時(shí)鐘信號CP輸送到計(jì)數(shù)部分 ,從而控制彩燈閃爍速度的快慢 ,定時(shí)部分控制每種速度維持的時(shí)間長短。

      圖表 1 2.

      2、設(shè)計(jì)方案:

      在電路中以 1 代表燈亮,以 0 代表燈滅,由 0、1按不同的規(guī)律組合代表不同的燈光圖案,同時(shí)使其選擇不同的頻率,從而實(shí)現(xiàn)多種圖案多種頻率的花樣功能顯示。在該電路中只需簡單的修改程序就可以靈活地調(diào)整彩燈圖案和變化方式。下面就以一個(gè)四路彩燈控制系統(tǒng)的實(shí)現(xiàn)為例進(jìn)行簡單說明。此四路彩燈控制系統(tǒng)設(shè)定有四種花樣變化。彩燈圖案狀態(tài)變換的速度有快、慢兩種。

      3、程序仿真過程

      start compilation先編譯

      generate functional simulation netlist然后生成功能仿真網(wǎng)絡(luò)表 assignments–setting—simulation setting設(shè)置成功能仿真 然后新建一個(gè)vector waveform file 通過view—utility windows--node finder 把輸入輸出管腳添加進(jìn)波形仿真圖里 點(diǎn)擊start simulation 得到仿真圖WAVEFORM1:

      由圖可見:正常情況下 燈按照花樣abcd的順序循環(huán)d在80NS---120NS的高電平使得花樣變?yōu)镈花樣,D高電平結(jié)束,燈順序進(jìn)行A花樣。

      OPT 在80NS---170NS高電平使得燈變換速度提高2倍 但是001100和100000這兩種燈的狀態(tài)任然占用了兩個(gè)時(shí)鐘周期,這是因?yàn)榛觗和花樣a狀態(tài)轉(zhuǎn)換之間沒有立即銜接,導(dǎo)致220NS處CLR高電平使得燈全部清0,不再變化DIV2是二分頻輸出,由圖可見是輸入時(shí)鐘CLK的二分頻

      4、實(shí)驗(yàn)結(jié)果分析

      實(shí)驗(yàn)表明 ,此設(shè)計(jì)方法能夠滿足多種不同花樣彩燈的變化要求 ,并且該方法便于擴(kuò)展不同變化模式的彩燈花樣,同時(shí)又實(shí)現(xiàn)了彩燈的兩種不同頻率的閃爍。如果不按任何按鍵時(shí)候,燈就按四種花樣順序循環(huán)跑,如果按下某個(gè)鍵再松開,比如按下C鍵然后松開,那么不管之前燈跑到哪個(gè)花樣,按鍵后燈就會(huì)從C代表的花樣處開始跑,然后是D花樣,然后是A花樣,依次循環(huán)。但是A,B,C,D認(rèn)為是按下會(huì)彈起的按鍵,因?yàn)檫@個(gè)程序里,如果一直按著按鍵不松手,會(huì)導(dǎo)致燈只是反復(fù)跑一個(gè)花樣。比如按著B鍵不松手,那么就會(huì)反復(fù)跑B花樣。還有不能允許同時(shí)按下兩個(gè)鍵,三個(gè)鍵,4個(gè)鍵,也就是說,同一時(shí)刻ABCD只能有一個(gè)是高電平,否則會(huì)出錯(cuò),因?yàn)檫@個(gè)程序并沒有防錯(cuò)機(jī)制。

      5、心得體會(huì)

      本次設(shè)計(jì)的課題是彩燈控制器的設(shè)計(jì),當(dāng)拿到這個(gè)課題的時(shí)候經(jīng)過分析就知道關(guān)鍵是計(jì)數(shù)器和分頻器的使用,分頻的方法有很多種,對于同一種功能的實(shí)現(xiàn),用VHDL可以采用多種方式進(jìn)行描述,每種方式之間各有優(yōu)劣,本次設(shè)計(jì)只采用了其中較簡單的一種,應(yīng)盡量用最簡潔的語言寫出所需功能的程序。

      通過這次課程設(shè)計(jì)對EDA技術(shù)有了更進(jìn)一步的熟悉,VHDL 語言和C語言等其他語言還是有很大的區(qū)別。VHDL是EDA技術(shù)的重要組成部分,其具有與具體硬件電路無關(guān)和與設(shè)計(jì)平臺(tái)無關(guān)的特性,并且具有良好的電路行為描述和系統(tǒng)描述的能力,并在語言易讀性和層次化、結(jié)構(gòu)化設(shè)計(jì)方面,表現(xiàn)了強(qiáng)大的生命力和應(yīng)用潛力。其主要的也是最大的優(yōu)點(diǎn)就在于設(shè)計(jì)者可以專心致力于其功能的實(shí)現(xiàn),而不需要對不影響功能的與工藝有關(guān)的因素花費(fèi)過多的時(shí)間和精力。在實(shí)際操作中發(fā)現(xiàn)設(shè)計(jì)和課本上的知識有很大聯(lián)系,但又高于課本,一個(gè)簡單的原理要把它應(yīng)用以及和其他功能綜合起來就有些困難。通過設(shè)計(jì)也鞏固了我們的書本知識以及通過借閱書籍和上網(wǎng)查找資料,也豐富了自己對EDA的了解。

      6、致謝

      7、參考文獻(xiàn)

      [1] 周潤景.基于QuartusⅡ的FPGA/CPLD數(shù)字系統(tǒng)設(shè)計(jì)實(shí)例[M].電子工業(yè)出版社.2007,8

      [2] 潘松 黃繼業(yè).EDA技術(shù)實(shí)用教程(第二版).北京:科學(xué)出版社,2006.9 [3] 林明權(quán) 馬維旻 VHDL數(shù)字控制系統(tǒng)設(shè)計(jì)范例.電子工業(yè)出版社2003,1 [4] 褚振勇.FPGA設(shè)計(jì)及應(yīng)用(第三版)[M].西安電子科技大學(xué)出版社.2012,4

      8、附錄

      彩燈控制器的源程序

      library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity horseracelamp is port(clk:in std_logic;clr:in std_logic;a:in std_logic;b:in std_logic;c:in std_logic;d:in std_logic;opt:in std_logic;q:out std_logic_vector(5 downto 0);div2:out std_logic);end;architecture one of horseracelamp is

      type states is(s0,s1,s2,s3);

      signal present:states;

      signal q1:std_logic_vector(5 downto 0);

      signal count:std_logic_vector(3 downto 0);

      signal halfclk:std_logic_vector(1 downto 0);

      signal clkin:std_logic_vector(1 downto 0);begin

      process(clk)--------------------該進(jìn)程實(shí)現(xiàn)二分頻 begin if clk'event and clk='1' then

      halfclk<=halfclk+1;end if;end process;

      process(opt)---------------------該進(jìn)程實(shí)現(xiàn)OPT高時(shí)候用原來的時(shí)鐘,OPT低的時(shí)候用二分頻后的時(shí)鐘,信號CLKIN(0)會(huì)傳遞到下一個(gè)進(jìn)程里

      begin

      if opt='0' then

      clkin(0)<=halfclk(0);

      else

      clkin(0)<=clk;

      end if;

      end process;

      process(clk,clr,a,b,c,d)

      ------------S1,S2,S3,S4分別對應(yīng)

      A,B,C,D四種花樣,它們之間會(huì)自動(dòng)按順序循環(huán),也

      會(huì)因?yàn)锳,B,C,D中某個(gè)置高而改變循環(huán)順序,所以用了大量的IF ELSIF語句

      begin if clr='1' then

      present<=s0;

      q1<=(others=>'0');elsif clkin(0)'event and clkin(0)='1' then

      case present is

      when s0=>if q1=“000000”then

      q1<=“100000”;else

      if count=“1100” then

      count<=(others=>'0');q1<=“100001”;present<=s1;

      elsif b='1'then

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

      q1<=“100001”;

      present<=s1;

      elsif c='1'then

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

      q1<=“110000”;

      present<=s2;

      elsif d='1'then count<=(others=>'0');

      q1<=“001100”;

      present<=s3;

      else

      case count is when “0000”=>q1<=“100000”;when “0001”=>q1<=“110000”;when “0010”=>q1<=“111000”;when “0011”=>q1<=“111100”;when “0100”=>q1<=“111110”;when “0101”=>q1<=“111111”;when “0110”=>q1<=“111110”;when “0111”=>q1<=“111100”;when “1000”=>q1<=“111000”;when “1001”=>q1<=“110000”;when “1010”=>q1<=“100000”;when “1011”=>q1<=“000000”;when others=>null;end case;

      count<=count+1;present<=s0;

      end if;end if;

      when s1=>if count=“0011” then

      count<=(others=>'0');q1<=“110000”;present<=s2;elsif a='1'then

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

      q1<=“100000”;

      present<=s0;

      elsif c='1'then

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

      q1<=“110000”;

      present<=s2;

      elsif d='1'then count<=(others=>'0');

      q1<=“001100”;

      present<=s3;

      else

      case count is when “0000”=>q1<=“100001”;when “0001”=>q1<=“110011”;when “0010”=>q1<=“111111”;when others=>null;end case;

      count<=count+1;present<=s1;

      end if;

      when s2=>if count=“0110” then

      count<=(others=>'0');q1<=“001100”;present<=s3;elsif a='1'then

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

      q1<=“100000”;

      present<=s0;

      elsif b='1'then

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

      q1<=“100001”;

      present<=s1;

      elsif d='1'then count<=(others=>'0');

      q1<=“001100”;

      present<=s3;

      else

      case count is

      when “0000”=>q1<=“110000”;when “0001”=>q1<=“111100”;when “0010”=>q1<=“111111”;when “0011”=>q1<=“000011”;when “0100”=>q1<=“001100”;when “0101”=>q1<=“110000”;when others=>null;end case;

      count<=count+1;present<=s2;

      end if;

      when s3=>if count=“0011” then

      count<=(others=>'0');q1<=“100000”;present<=s0;elsif a='1'then

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

      q1<=“100000”;

      present<=s0;

      elsif b='1'then

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

      q1<=“100001”;

      present<=s1;

      elsif c='1'then count<=(others=>'0');

      q1<=“110000”;

      present<=s2;

      else

      case count is when “0000”=>q1<=“001100”;when “0001”=>q1<=“010010”;when “0010”=>q1<=“100001”;when others=>null;end case;

      count<=count+1;present<=s3;

      end if;

      end case;

      end if;

      end process;

      div2<=halfclk(0);

      q<=q1;

      end;

      第四篇:基于FPGA模數(shù)轉(zhuǎn)換控制器的設(shè)計(jì)

      EDA課程設(shè)計(jì)任務(wù)書

      1、設(shè)計(jì)題目:基于FPGA模數(shù)轉(zhuǎn)換控制器的設(shè)計(jì)

      2、設(shè)計(jì)目的:

      (1)熟悉掌握VHDL語言設(shè)計(jì)基本知識,熟練運(yùn)用QuartusⅡ軟件對各單元電路進(jìn)行軟件模擬、仿真;

      (2)學(xué)習(xí)用狀態(tài)機(jī)對A/D轉(zhuǎn)換器ADC0809的采樣控制電路的實(shí)現(xiàn),使設(shè)計(jì)能夠?qū)崿F(xiàn)8路數(shù)據(jù)的采集;

      (3)通過本次課程設(shè)計(jì)的學(xué)習(xí),復(fù)習(xí)所學(xué)的專業(yè)知識,使課堂學(xué)習(xí)的理論知識應(yīng)用于實(shí)踐,通過本次課程設(shè)計(jì)的實(shí)踐提高我們的實(shí)踐操作能力、提高分析問題和解決問題的能力。

      3、設(shè)計(jì)要求:

      (1)給出模數(shù)轉(zhuǎn)換采樣控制電路的方案設(shè)計(jì),利用QuartusⅡ軟件進(jìn)行軟件模擬、仿真;要求能夠?qū)崿F(xiàn)8路數(shù)據(jù)的采集。分析A/D轉(zhuǎn)換原理及時(shí)序、建立項(xiàng)目的實(shí)施方案,并畫出控制狀態(tài)圖;

      (2)認(rèn)真完成設(shè)計(jì)后,提交課程設(shè)計(jì)報(bào)告:給出控制器的方案設(shè)計(jì),包括綜合設(shè)計(jì)概況、主要技術(shù)指標(biāo)、相應(yīng)模塊的實(shí)現(xiàn)方法;模塊的電路原理圖;所采用的器件資料,等等。報(bào)告格式參照中原工學(xué)院畢業(yè)設(shè)計(jì)指導(dǎo)手冊。

      4、設(shè)計(jì)內(nèi)容:利用QuartusⅡ軟件對本次設(shè)計(jì)(模數(shù)轉(zhuǎn)換采樣控制電路)進(jìn)行文本編輯輸入和仿真測試;給出仿真波形;最后進(jìn)行引腳鎖定并進(jìn)行測試,硬件驗(yàn)證編程電路對ADC0809的控制功能。

      中原工學(xué)院畢業(yè)設(shè)計(jì)報(bào)告紙

      目錄

      一、概述………………………………………………………(4)

      二、設(shè)計(jì)內(nèi)容…………………………………………………(5)

      ? ? ? ?

      ? ? ? ? ? 2.2

      設(shè)計(jì)流程

      2.2.1 建立工程文件夾和編輯設(shè)計(jì)文件 2.2.2 編譯前設(shè)置 2.2.3 全程編譯 2.2.4 時(shí)序仿真 2.1

      設(shè)計(jì)原理

      2.1.1 ADC0809引腳圖及功能介紹

      2.1.2 用狀態(tài)機(jī)對ADC0809的采樣控制電路的實(shí)現(xiàn) 2.1.3 對ADC0809的控制功能的電路描述的程序

      三、心得體會(huì)…………………………………………………(12)

      中原工學(xué)院畢業(yè)設(shè)計(jì)報(bào)告紙

      一.概述

      隨著現(xiàn)代芯片工藝的改進(jìn),F(xiàn)PGA的等效系統(tǒng)門達(dá)到到幾百萬門,而且工作頻率也隨之提高。FPGA也就大量的在電子產(chǎn)品中出現(xiàn),得到了廣泛的應(yīng)用。芯片設(shè)計(jì)的工藝的改進(jìn),45nm工藝的出現(xiàn),使得FPGA成為必不可少的流行的實(shí)惠的器件。FPGA 最大的特點(diǎn)就是靈活,實(shí)現(xiàn)你想實(shí)現(xiàn)的任何數(shù)字電路,可以定制各種電路。減少受制于專用芯片的束縛。真正為自己的產(chǎn)品量身定做。在設(shè)計(jì)的過程中可以靈活的更改設(shè)計(jì)。而且它強(qiáng)大的邏輯資源和寄存器資源可以讓你輕松的去發(fā)揮設(shè)計(jì)理念,其并行執(zhí)行,硬件實(shí)現(xiàn)的方式可以應(yīng)對設(shè)計(jì)中大量的高速電子線路設(shè)計(jì)需求。FPGA比DSP擁有更快的速度,可以實(shí)現(xiàn)非常復(fù)雜的高速邏輯,F(xiàn)PGA比ASIC(專用芯片)有更短的設(shè)計(jì)周期和靈活性,免去昂貴的開版費(fèi)用,而且可以隨時(shí)裁減,增加你想要的功能達(dá)到規(guī)避設(shè)計(jì)風(fēng)險(xiǎn),回避芯片廠商的限制。另外知識產(chǎn)權(quán)的概念不斷涌現(xiàn),仿制別人抄襲,F(xiàn)PGA完全讓設(shè)計(jì)的智慧得以保護(hù)。讓公司的利益在較長時(shí)間內(nèi)得到保證。隨FPGA芯片供應(yīng)商的重視和第三方公司的重視,現(xiàn)在有非?,F(xiàn)成的IP核被提供,進(jìn)一步縮短設(shè)計(jì)周期縮短,減小開發(fā)成本。

      FPGA具有可編程邏輯器件現(xiàn)場可編程的靈活性,又具有門陳列器件功能強(qiáng)、高集成度和高速度的優(yōu)點(diǎn),因此在要求功能越來越強(qiáng),體積越來越小,功耗越來越低的現(xiàn)代通信系統(tǒng)設(shè)計(jì)中被越來越廣泛的應(yīng)用。隨著超大規(guī)模集成電路的發(fā)展,尤其是微電子技術(shù)和計(jì)算機(jī)技術(shù)的迅猛發(fā)展和廣泛應(yīng)用,數(shù)字化成為目前通信技術(shù)發(fā)展的趨勢,它具有可靠性高,靈活性強(qiáng),易大規(guī)模集成等優(yōu)點(diǎn),日益受到重視。目前,數(shù)字化的手段主要有專用集成電路(ASIC)和通用數(shù)字信號處理器(DSP)。專用集成電路優(yōu)點(diǎn)是處理速度快,缺點(diǎn)是靈活性差。DSP能完成十分復(fù)雜的算法,使用靈活,易實(shí)現(xiàn)模塊化,缺點(diǎn)是受處理器速度的限制。FPGA提供了實(shí)現(xiàn)數(shù)字信號處理的第三種解決方案,它結(jié)合了ASIC和DSP兩種方式的優(yōu)勢,既具有很高的處理速度,又具有一定的靈活性。大規(guī)??删幊踢壿嬈骷﨔PGA因其成本低,靜態(tài)可重復(fù)編程和動(dòng)態(tài)在系統(tǒng)重構(gòu)等優(yōu)點(diǎn),已成為目前應(yīng)用最為廣泛的可編程專用集成電路。

      Quartus II 是Altera的綜合性PLD開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整PLD設(shè)計(jì)流程。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl腳本完成設(shè)計(jì)流程外,提供了完善的用戶圖形界面設(shè)計(jì)方式。具有運(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn)。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模塊庫,使用戶可以充分利用成熟的模塊,簡化了設(shè)計(jì)的復(fù)雜性、加快了設(shè)計(jì)速度。對第三方EDA工具的良好支持也使用戶可

      中原工學(xué)院畢業(yè)設(shè)計(jì)報(bào)告紙

      以在設(shè)計(jì)流程的各個(gè)階段使用熟悉的第三方EDA工具.此外,Quartus II 通過和DSP Builder工具與Matlab/Simulink相結(jié)合,可以方便地實(shí)現(xiàn)各種DSP應(yīng)用系統(tǒng);支持Altera的片上可編程系統(tǒng)(SOPC)開發(fā),集系統(tǒng)級設(shè)計(jì)、嵌入式軟件開發(fā)、可編程邏輯設(shè)計(jì)于一體,是一種綜合性的開發(fā)平臺(tái)。Maxplus II 作為Altera的上一代PLD設(shè)計(jì)軟件,由于其出色的易用性而得到了廣泛的應(yīng)用。目前Altera已經(jīng)停止了對Maxplus II 的更新支持,Quartus II 與之相比不僅僅是支持器件類型的豐富和圖形界面的改變。Altera在Quartus II 中包含了許多諸如SignalTap II、Chip Editor和RTL Viewer的設(shè)計(jì)輔助工具,集成了SOPC和HardCopy設(shè)計(jì)流程,并且繼承了Maxplus II 友好的圖形界面及簡便的使用方法。Altera Quartus II 作為一種可編程邏輯的設(shè)計(jì)環(huán)境, 由于其強(qiáng)大的設(shè)計(jì)能力和直觀易用的接口,越來越受到數(shù)字系統(tǒng)設(shè)計(jì)者的歡迎。

      本次設(shè)計(jì)以FPGA芯片ADC0809為核心利用VHDL語言設(shè)計(jì)來實(shí)現(xiàn)模數(shù)轉(zhuǎn)換采樣控制電路。其頂層采用原理圖設(shè)計(jì)方式,各模塊采用VHDL語言設(shè)計(jì),完成了對模數(shù)轉(zhuǎn)換采樣控制電路的軟件仿真和硬件電路設(shè)計(jì)。FPGA設(shè)計(jì)人體分為系統(tǒng)規(guī)范、設(shè)計(jì)輸入、綜合、功能仿真(前仿真)、實(shí)現(xiàn)、時(shí)序仿真(后仿真)、配置下載等六個(gè)步驟整個(gè)系統(tǒng)是在QuartusⅡ環(huán)境下,利用VHDL語言實(shí)現(xiàn)的,在Ⅱ環(huán)境下經(jīng)系統(tǒng)仿真實(shí)現(xiàn)模數(shù)轉(zhuǎn)換采樣控制系統(tǒng)。

      二.設(shè)計(jì)內(nèi)容

      2.1 設(shè)計(jì)原理

      2.1.1 ADC0809引腳圖及功能介紹

      ADC0809是CMOS的8位A/D轉(zhuǎn)換器,片內(nèi)有8路模擬開關(guān),可控制8個(gè)模擬量中的一個(gè)進(jìn)入轉(zhuǎn)換器中。轉(zhuǎn)換時(shí)間約100μs,含鎖存控制的8路多路開關(guān),輸出有三態(tài)緩沖器控制,單5V電源供電。

      中原工學(xué)院畢業(yè)設(shè)計(jì)報(bào)告紙

      圖1 ADC0809的引腳圖

      圖2 ADC0809工作時(shí)序圖

      上圖1和圖2分別是ADC0809的引腳圖、A/D轉(zhuǎn)換時(shí)序,下圖3為其采樣控制狀態(tài)圖。時(shí)序圖中,START為轉(zhuǎn)換啟動(dòng)控制信號,上升沿有效;一旦START有效后,狀態(tài)信號EOC即變?yōu)榈碗娖剑硎具M(jìn)入轉(zhuǎn)換狀態(tài),轉(zhuǎn)換時(shí)間約100微秒。轉(zhuǎn)換結(jié)束后,EOC將變?yōu)楦唠娖?。此后外部控制可以使OE由低電平變?yōu)楦唠娖剑ㄝ敵鲇行В?,此時(shí),0809的輸出數(shù)據(jù)總線D[7..0]從原來的高阻態(tài)變?yōu)檩敵鰯?shù)據(jù)有效。由狀態(tài)圖也可以看到,在狀態(tài)st2中需要對0809工作狀態(tài)信號EOC進(jìn)行測試,如果為低電平,表示轉(zhuǎn)換沒有結(jié)束,仍需要停留在st2狀態(tài)中等待,直到變成高電平后才說明轉(zhuǎn)換結(jié)束,在下一時(shí)鐘脈沖到來時(shí)轉(zhuǎn)向狀態(tài)st3.在狀態(tài)st3,由狀態(tài)機(jī)向0809發(fā)出轉(zhuǎn)換好的8位數(shù)據(jù)輸出允許命令,這一狀態(tài)周期同時(shí)可作為數(shù)據(jù)輸出穩(wěn)定周期,以便能在下一狀態(tài)中向鎖存器中鎖入可靠的數(shù)據(jù)。在狀態(tài)st4,由狀態(tài)機(jī)向FPGA中的鎖存器發(fā)出鎖存信號(LOCK的上升沿),將0809輸出的數(shù)據(jù)進(jìn)行鎖存。

      中原工學(xué)院畢業(yè)設(shè)計(jì)報(bào)告紙

      圖3 控制ADC0809采樣狀態(tài)圖

      2.1.2用狀態(tài)機(jī)對ADC0809的采樣控制電路的實(shí)現(xiàn)

      Quartus II 是Altera的綜合性PLD開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整PLD設(shè)計(jì)流程。利用QuartusⅡ?qū)﹄娐愤M(jìn)行文本編輯輸入和仿真測試;給出仿真波形。最后進(jìn)行引腳鎖定并進(jìn)行測試,硬件驗(yàn)證電路對ADC0809的控制功能。本次設(shè)計(jì)描述的狀態(tài)機(jī)屬于Moore機(jī),由二個(gè)主控進(jìn)程構(gòu)成,外加一個(gè)輔助進(jìn)程,即鎖存器進(jìn)程LATCH1,各進(jìn)程分工明確。狀態(tài)及結(jié)構(gòu)框圖1如下所示:

      中原工學(xué)院畢業(yè)設(shè)計(jì)報(bào)告紙

      圖4

      采樣狀態(tài)機(jī)結(jié)構(gòu)框圖

      在一個(gè)完整的采樣周期中,狀態(tài)機(jī)中最先被啟動(dòng)的是以CLK為敏感信號的時(shí)序進(jìn)程,接著組合進(jìn)程COM被啟動(dòng),因?yàn)樗麄円孕盘朿urrent_state為敏感信號。最后被啟動(dòng)的是鎖存器進(jìn)程,它是在狀態(tài)機(jī)進(jìn)入狀態(tài)st4后才被啟動(dòng)的,即此時(shí)LOCK產(chǎn)生了一個(gè)上升沿信號,從而啟動(dòng)進(jìn)程LATCH1,將0809在本采樣周期輸出的8位數(shù)據(jù)鎖存到寄存器中,以便外部電路能從Q端讀到穩(wěn)定正確的數(shù)據(jù)。

      2.1.3 對ADC0809的控制功能的電路描述程序如下:

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ADCINT IS PORT(D : IN STD_LOGIC_VECTOR(7 DOWNTO 0);CLK : IN STD_LOGIC;

      EOC : IN STD_LOGIC;

      ALE : OUT STD_LOGIC;

      START : OUT STD_LOGIC;

      OE : OUT STD_LOGIC;

      ADDA : OUT STD_LOGIC;

      中原工學(xué)院畢業(yè)設(shè)計(jì)報(bào)告紙

      LOCK0 : OUT STD_LOGIC;

      Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));

      END ADCINT;ARCHITECTURE behav OF ADCINT IS TYPE states IS(st0, st1, st2, st3,st4);

      SIGNAL current_state, next_state: states :=st0;

      SIGNAL REGL

      : STD_LOGIC_VECTOR(7 DOWNTO 0);

      SIGNAL LOCK

      : STD_LOGIC;

      BEGIN ADDA <= '1';

      Q <= REGL;LOCK0 <= LOCK;

      COM: PROCESS(current_state,EOC)BEGIN

      CASE current_state IS

      WHEN st0=>ALE<='0';START<='0';LOCK<='0';OE<='0';

      next_state <= st1;

      -WHEN st1=>ALE<='1';START<='1';LOCK<='0';OE<='0';next_state <= st2;--啟動(dòng)采樣

      WHEN st2=> ALE<='0';START<='0';LOCK<='0';OE<='0';

      IF(EOC='1')THEN next_state <= st3;

      ELSE next_state <= st2;END IF;

      WHEN st3=> ALE<='0';START<='0';LOCK<='0';OE<='1';next_state <= st4;

      WHEN st4=> ALE<='0';START<='0';LOCK<='1';OE<='1';next_state <= st0;

      WHEN OTHERS => next_state <= st0;

      END CASE;END PROCESS COM;

      REG: PROCESS(CLK)

      BEGIN

      IF(CLK'EVENT AND CLK='1')THEN current_state<=next_state;END IF;

      END PROCESS REG;

      LATCH1: PROCESS(LOCK)

      BEGIN

      IF LOCK='1' AND LOCK'EVENT THEN

      REGL <= D;END IF;

      END PROCESS LATCH1;

      END behav;

      中原工學(xué)院畢業(yè)設(shè)計(jì)報(bào)告紙

      2.2 設(shè)計(jì)流程

      2.2.1 建立工程文件夾和編輯設(shè)計(jì)文件

      (1)新建文件夾ADCINT(2)輸入源程序。打開QuartusⅡ,選擇File→New,在New窗口中的Device Design Files中選擇編譯文件的語言類型為VHDL File,輸入2.1.3中的程序。

      (3)文件存盤。File→Save As命令,注意存盤文件名應(yīng)與實(shí)體名一致。當(dāng)出現(xiàn)下圖5時(shí),就直接單擊“是”按鈕,則直接創(chuàng)建工程。

      2.2.2 2.2.3 編譯前設(shè)置 全程編譯

      選擇Processing菜單的Start Compilation項(xiàng),啟動(dòng)全程編譯。

      中原工學(xué)院畢業(yè)設(shè)計(jì)報(bào)告紙

      2.2.4 時(shí)序仿真

      (1)打開波形編譯器。

      中原工學(xué)院畢業(yè)設(shè)計(jì)報(bào)告紙

      (2)設(shè)計(jì)仿真時(shí)間區(qū)域。(3)波形文件存盤。

      (4)將工程ADCINT的端口名選入波形編輯器中。選擇View菜單中的Utility Windows項(xiàng)的Node Finder選項(xiàng)。

      中原工學(xué)院畢業(yè)設(shè)計(jì)報(bào)告紙

      (5)編輯輸入波形(輸入激勵(lì)信號)。(6)總線數(shù)據(jù)格式設(shè)計(jì),仿真參數(shù)設(shè)計(jì)。(7)啟動(dòng)仿真器,觀察仿真結(jié)果如下:

      中原工學(xué)院畢業(yè)設(shè)計(jì)報(bào)告紙

      三.心得體會(huì)

      第五篇:基于FPGA的彩燈控制器設(shè)計(jì)

      《EDA原理及應(yīng)用》 課程設(shè)計(jì)報(bào)告

      課題名稱: 基于數(shù)碼管顯示的彩燈控制器 院 系: 機(jī)電工程學(xué)院

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

      學(xué)生姓名: 陳納爽 學(xué)生學(xué)號: 201033285123

      彩燈及數(shù)碼管顯示控制

      摘 要

      隨著科技的發(fā)展 , 在現(xiàn)代生活中, 彩燈作為一種景觀應(yīng)用越來越多。而在電子電路設(shè)計(jì)領(lǐng)域中,電子設(shè)計(jì)自動(dòng)化(EDA)工具已成為主要的設(shè)計(jì)手段,VHDL語言則是EDA的關(guān)鍵技術(shù)之一,它采用自頂向下的設(shè)計(jì)方法,即從系統(tǒng)總體要求出發(fā),自上至下地將設(shè)計(jì)任務(wù)分解為不同的功能模塊,最后將各功能模塊連接形成頂層模塊,完成系統(tǒng)硬件的整體設(shè)計(jì)。本文介紹了基于EDA技的多路彩燈控制器的設(shè)計(jì)與分析。在MAX+PLUSII環(huán)境下采用VHDL語言實(shí)現(xiàn),論述了基于VHDL語言和FPGA芯片的數(shù)字系統(tǒng)設(shè)計(jì)思想和實(shí)現(xiàn)過程。電子設(shè)計(jì)自動(dòng)化技術(shù)EDA的發(fā)展給電子系統(tǒng)的設(shè)計(jì)帶來了革命性的變化,EDA軟件設(shè)計(jì)工具,硬件描述語言,可編程邏輯器件使得EDA技術(shù)的應(yīng)用走向普及。FPGA是新型的可編程邏輯器件,采用FPGA進(jìn)行產(chǎn)品開發(fā)可以靈活地進(jìn)行模塊配置,大大縮短了產(chǎn)品開發(fā)周期,也有利于產(chǎn)品向小型化,集成化的方向發(fā)展。

      關(guān)鍵詞: VHDL 彩燈 仿真

      1、概述

      1.1、設(shè)計(jì)目的:

      設(shè)計(jì)一個(gè)彩燈控制器,使彩燈(LED管)可以實(shí)現(xiàn)彩燈逐漸增多及兩種不同頻率的閃爍,有復(fù)位開關(guān)。整個(gè)系統(tǒng)有四個(gè)輸入信號clk,option,fan,clr,三個(gè)輸出信號控制倆個(gè)八路彩燈及數(shù)碼管顯示。option的高低電平控制彩燈閃爍的快慢,fan的高低電平控制彩燈的逐漸增多減少。

      1.2、設(shè)計(jì)要求:

      ? 掌握FPGA 的程序設(shè)計(jì)方法。? 掌握硬件描述語言語法。

      ? 程序設(shè)計(jì)完成后要求在軟件中實(shí)現(xiàn)功能仿真。

      2、系統(tǒng)設(shè)計(jì)

      2.1、設(shè)計(jì)原理:

      整個(gè)系統(tǒng)共有四個(gè)輸入信號:基準(zhǔn)時(shí)鐘信號clk,系統(tǒng)清零信號(復(fù)位信號)clr,彩燈節(jié)奏快慢選擇開關(guān)option;共有3個(gè)輸出信號ledout[7..0],shuguan[6..0],doubleled[7..0],分別用于控制彩燈及數(shù)碼管的顯示。據(jù)此,我們可將整個(gè)彩燈控制器CDKZQ分為四大部分:彩燈花樣控制部分、分頻部分、定時(shí)部分和計(jì)數(shù)部分。當(dāng)各個(gè)模塊均完成上述操作之后,形成最后的彩燈顯示系統(tǒng),并且進(jìn)行仿真。仿真通過,即可下載到指定的FPGA芯片里面,并進(jìn)行實(shí)際連線,進(jìn)行最后的硬件測試。把分頻部分的不同頻率的時(shí)鐘信號CP輸送到計(jì)數(shù)部分 ,從而控制彩燈閃爍速度的快慢 ,定時(shí)部分控制每種速度維持的時(shí)間長短。

      原理圖

      模塊原理圖

      管腳圖

      2.2、設(shè)計(jì)方案:

      在電路中以 1 代表燈亮,以 0 代表燈滅,由 0、1按不同的規(guī)律組合代表不同的燈光圖案,同時(shí)使其選擇不同的頻率,從而實(shí)現(xiàn)多種圖案多種頻率的花樣功能顯示。在該電路中只需簡單的修改程序就可以靈活地調(diào)整彩燈圖案和變化方式。下面就以一個(gè)彩燈控制系統(tǒng)的實(shí)現(xiàn)為例進(jìn)行簡單說明。此彩燈控制系統(tǒng)設(shè)定有兩種花樣變化。彩燈圖案狀態(tài)變換的速度有快、慢兩種。

      3、程序仿真圖

      start compilation先編譯

      generate functional simulation netlist然后生成功能仿真網(wǎng)絡(luò)表 assignments–setting—simulation setting設(shè)置成功能仿真 然后新建一個(gè)vector waveform file 通過view—utility windows--node finder 把輸入輸出管腳添加進(jìn)波形仿真圖里 點(diǎn)擊start simulation 得到仿真圖WAVEFORM1:

      4、實(shí)驗(yàn)結(jié)果分析

      實(shí)驗(yàn)表明 ,此設(shè)計(jì)方法能夠滿足多種不同花樣彩燈的變化要求 ,并且該方法便于擴(kuò)展不同變化模式的彩燈花樣,同時(shí)又實(shí)現(xiàn)了彩燈的兩種不同頻率的閃爍。如果不按任何按鍵時(shí)候,燈就按四種花樣順序循環(huán)跑,如果按下某個(gè)鍵再松開,比如按下C鍵然后松開,那么不管之前燈跑到哪個(gè)花樣,按鍵后燈就會(huì)從C代表的花樣處開始跑,然后是D花樣,然后是A花樣,依次循環(huán)。但是A,B,C,D認(rèn)為是按下會(huì)彈起的按鍵,因?yàn)檫@個(gè)程序里,如果一直按著按鍵不松手,會(huì)導(dǎo)致燈只是反復(fù)跑一個(gè)花樣。比如按著B鍵不松手,那么就會(huì)反復(fù)跑B花樣。還有不能允許同時(shí)按下兩個(gè)鍵,三個(gè)鍵,4個(gè)鍵,也就是說,同一時(shí)刻ABCD只能有一個(gè)是高電平,否則會(huì)出錯(cuò),因?yàn)檫@個(gè)程序并沒有防錯(cuò)機(jī)制。

      5、心得體會(huì)

      本次設(shè)計(jì)的課題是彩燈控制器的設(shè)計(jì),當(dāng)拿到這個(gè)課題的時(shí)候經(jīng)過分析就知道關(guān)鍵是計(jì)數(shù)器和分頻器的使用,分頻的方法有很多種,對于同一種功能的實(shí)現(xiàn),用VHDL可以采用多種方式進(jìn)行描述,每種方式之間各有優(yōu)劣,本次設(shè)計(jì)只采用了其中較簡單的一種,應(yīng)盡量用最簡潔的語言寫出所需功能的程序。

      通過這次課程設(shè)計(jì)對EDA技術(shù)有了更進(jìn)一步的熟悉,VHDL 語言和C語言等其他語言還是有很大的區(qū)別。VHDL是EDA技術(shù)的重要組成部分,其具有與具體硬件電路無關(guān)和與設(shè)計(jì)平臺(tái)無關(guān)的特性,并且具有良好的電路行為描述和系統(tǒng)描述的能力,并在語言易讀性和層次化、結(jié)構(gòu)化設(shè)計(jì)方面,表現(xiàn)了強(qiáng)大的生命力和應(yīng)用潛力。其主要的也是最大的優(yōu)點(diǎn)就在于設(shè)計(jì)者可以專心致力于其功能的實(shí)現(xiàn),而不需要對不影響功能的與工藝有關(guān)的因素花費(fèi)過多的時(shí)間和精力。在實(shí)際操作中發(fā)現(xiàn)設(shè)計(jì)和課本上的知識有很大聯(lián)系,但又高于課本,一個(gè)簡單的原理要把它應(yīng)用以及和其他功能綜合起來就有些困難。通過設(shè)計(jì)也鞏固了我們的書本知識以及通過借閱書籍和上網(wǎng)查找資料,也豐富了自己對EDA的了解。

      6、致謝

      7、參考文獻(xiàn)

      [1] 周潤景.基于QuartusⅡ的FPGA/CPLD數(shù)字系統(tǒng)設(shè)計(jì)實(shí)例[M].電子工業(yè)出版社.2007,8

      [2] 潘松 黃繼業(yè).EDA技術(shù)實(shí)用教程(第二版).北京:科學(xué)出版社,2006.9 [3] 林明權(quán) 馬維旻 VHDL數(shù)字控制系統(tǒng)設(shè)計(jì)范例.電子工業(yè)出版社2003,1 [4] 褚振勇.FPGA設(shè)計(jì)及應(yīng)用(第三版)[M].西安電子科技大學(xué)出版社.2012,4

      8、附錄

      彩燈顯示控制器的源程序

      library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;

      ----Uncomment the following library declaration if instantiating----any Xilinx primitives in this code.--library UNISIM;--use UNISIM.VComponents.all;

      entity colorled is

      Port(clk : in STD_LOGIC;

      clr : in STD_LOGIC;

      option : in STD_LOGIC;

      fan:in std_logic;

      ledout:out STD_LOGIC_VECTOR(7 downto 0);

      shuma:out std_logic_vector(6 downto 0);

      doubleled:out std_logic_vector(7 downto 0));end colorled;architecture rtl of colorled is component timer is port(clk : in std_logic;

      clr : in std_logic;

      option : in std_logic;fan:in std_logic;fanout:out std_logic;clkout : out std_logic);end component timer;component shower is port(clk : in std_logic;

      clr : in std_logic;

      fanin:in std_logic;ledout:out std_logic_vector(7 downto 0);shuma:out std_logic_vector(6 downto 0);

      doubleled:out std_logic_vector(7 downto 0));end component shower;signal clk_tmp:std_logic;signal fan_tmp:std_logic;begin U1:timer port map(clk,clr,option,fan,fan_tmp,clk_tmp);U2:shower port map(clk_tmp,clr,fan_tmp,ledout,shuma,doubleled);end rtl;以上為頂層文件代碼

      以下為分頻計(jì)數(shù)模塊及彩燈顯示控制模塊的代碼 library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;----Uncomment the following library declaration if instantiating----any Xilinx primitives in this code.--library UNISIM;--use UNISIM.VComponents.all;entity timer is

      Port(clk : in STD_LOGIC;--時(shí)鐘

      clr : in STD_LOGIC;--復(fù)位

      fan:in std_logic;

      fanout:out std_logic;

      option : in STD_LOGIC;--快慢分頻

      clkout : out STD_LOGIC);--輸出時(shí)鐘 end timer;architecture rtl of timer is signal clk_tmp:std_logic;signal fan_tmp:std_logic;--signal counter:std_logic_vector(1 downto 0);--計(jì)數(shù)器 signal counter:integer range 0 to 16000000;begin process(clk,clr,option)begin

      if clr='1' then

      clk_tmp<='0';

      counter<=0;elsif clk'event and clk='1' then

      if option='0' then--四分頻

      if counter=16000000 then

      counter<=0;clk_tmp<=not clk_tmp;else

      counter<=counter+1;

      end if;

      else--八分頻

      if counter=8000000 then

      counter<=0;clk_tmp<=not clk_tmp;else

      counter<=counter+1;end if;

      end if;end if;end process;--begin--

      if clr='1' then--

      clk_tmp<='0';--

      counter<=“00”;--elsif clk'event and clk='1' then--

      if option='0' then--四分頻----------

      if counter=“01” then

      counter<=“00”;clk_tmp<=not clk_tmp;else

      counter<=counter+'1';------------------

      end if;

      else--八分頻

      if counter=“11” then

      counter<=“00”;clk_tmp<=not clk_tmp;else

      counter<=counter+'1';end if;

      end if;--end if;--end process;clkout<=clk_tmp;--輸出分頻時(shí)鐘 fan_tmp<=fan;fanout<=fan_tmp;end rtl;

      library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;----Uncomment the following library declaration if instantiating----any Xilinx primitives in this code.--library UNISIM;--use UNISIM.VComponents.all;

      entity shower is

      Port(clk : in STD_LOGIC;

      clr : in STD_LOGIC;

      fanin:in std_logic;

      ledout:out STD_LOGIC_VECTOR(7 downto 0);出

      doubleled:out std_logic_vector(7 downto 0));

      shuma:out std_logic_vector(6 downto 0);--8位彩燈輸end shower;

      architecture rtl of shower is type states is

      (s0,s1,s2,s3,s4,s5,s6,s7);--Moore狀態(tài) signal state:states;begin process(clk,clr,fanin)begin

      if clr='1' then

      state<=s0;

      ledout<=“00000000”;

      doubleled<=“00000000”;

      shuma<=“0000000”;

      elsif clk'event and clk='1' then

      case state is

      when s0=>

      if fanin='1' then

      state<=s7;

      ledout<=“11111110”;

      doubleled<=“11111110”;

      shuma<=“1111001”;

      else

      state<=s1;

      ledout<=“00000000”;

      doubleled<=“00000000”;

      shuma<=“0000000”;end if;when s1=> if fanin='1' then

      state<=s0;

      ledout<=“00000000”;

      doubleled<=“00000000”;

      shuma<=“0000000”;else

      state<=s2;

      ledout<=“10000000”;

      doubleled<=“10000000”;

      shuma<=“1111000”;

      end if;

      when s2=> if fanin='1' then

      state<=s1;

      ledout<=“10000000”;

      doubleled<=“10000000”;

      shuma<=“1111000”;

      else

      state<=s3;

      ledout<=“11000000”;

      doubleled<=“11000000”;

      shuma<=“0000010”;

      end if;

      when s3=>

      if fanin='1' then

      state<=s2;

      ledout<=“11000000”;

      doubleled<=“11000000”;

      shuma<=“0000010”;

      else

      state<=s4;

      ledout<=“11100000”;

      doubleled<=“11100000”;

      shuma<=“0010010”;end if;when s4=> if fanin='1' then

      state<=s3;

      ledout<=“11100000”;

      doubleled<=“11100000”;

      shuma<=“0010010”;else

      state<=s5;

      ledout<=“11110000”;

      doubleled<=“11110000”;

      shuma<=“0011001”;

      end if;when s5=> if fanin='1' then

      state<=s4;

      ledout<=“11110000”;

      doubleled<=“11110000”;

      shuma<=“0011001”;else

      state<=s6;

      ledout<=“11111000”;

      doubleled<=“11111000”;

      shuma<=“0110000”;end if;when s6=> if fanin='1' then

      state<=s5;

      ledout<=“11111000”;

      doubleled<=“11111000”;

      shuma<=“0110000”;else

      state<=s7;

      ledout<=“11111100”;

      doubleled<=“11111100”;

      shuma<=“0100100”;end if;

      when s7=>

      if fanin='1' then

      state<=s6;

      ledout<=“11111100”;

      doubleled<=“11111100”;

      shuma<=“0100100”;

      else

      state<=s0;

      ledout<=“11111110”;

      doubleled<=“11111110”;

      shuma<=“1111001”;

      end if;

      end case;end if;end process;end rtl;

      下載基于FPGA的乒乓球游戲機(jī)控制器設(shè)計(jì)word格式文檔
      下載基于FPGA的乒乓球游戲機(jī)控制器設(shè)計(jì).doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        基于FPGA的交通紅綠燈控制器

        基于FPGA的交通紅綠燈控制器 姓名: 學(xué)號:專業(yè): 班級: 目錄 1.設(shè)計(jì)思路................................................... 3 1.1設(shè)計(jì)思想....................................

        基于FPGA的(帶有緊急情況處理的)交通燈控制器的設(shè)計(jì).

        學(xué)號成績 評語 《現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)》課程論文 題目基于FPGA的(帶有緊急情況處理的交通燈控制器的設(shè)計(jì) 作者班級 院別信息與通信工程專業(yè)電子信息工程完成時(shí)間 2011年5月12日......

        FPGA搶答器設(shè)計(jì)報(bào)告

        Vb開辦上海電力學(xué)院 課程設(shè)計(jì)報(bào)告 信息工程系 搶答器設(shè)計(jì)報(bào)告 一、 設(shè)計(jì)目的: 本課程的授課對象是電子科學(xué)與技術(shù)專業(yè)本科生,是電子類專業(yè)的一門重要的實(shí)踐課程,是理論與實(shí)踐相......

        基于傳遞函數(shù)的控制器設(shè)計(jì)

        【實(shí)驗(yàn)名稱】 基于傳遞函數(shù)的控制器設(shè)計(jì) 【實(shí)驗(yàn)?zāi)康摹?1.熟練掌握用MATLAB語句繪制頻域曲線。 2.掌握控制系統(tǒng)頻域范圍內(nèi)的分析校正方法。 3.掌握用頻率特性法進(jìn)行串聯(lián)校正設(shè)......

        數(shù)字PID控制器設(shè)計(jì)

        數(shù)字PID控制器設(shè)計(jì) 設(shè)計(jì)任務(wù): 設(shè)單位反饋系統(tǒng)的開環(huán)傳遞函數(shù)為: 設(shè)計(jì)數(shù)字PID控制器,使系統(tǒng)的穩(wěn)態(tài)誤差不大于0.1,超調(diào)量不大于20%,調(diào)節(jié)時(shí)間不大于0.5s。采用增量算法實(shí)現(xiàn)該P(yáng)ID控制......

        路燈控制器設(shè)計(jì)報(bào)告

        路燈控制器的設(shè)計(jì) 一.設(shè)計(jì)任務(wù)和要求 設(shè)計(jì)要求: 1、自制電路供電的穩(wěn)壓電源; 2、LED采用恒流供電。 3、該控制器具有環(huán)境亮度檢測和控制功能,當(dāng)處于暗(亮)環(huán)境下能夠自動(dòng)開(關(guān))燈,為......

        交通燈控制器設(shè)計(jì)實(shí)驗(yàn)報(bào)告

        設(shè)計(jì)性實(shí)驗(yàn)項(xiàng)目名稱交通燈控制器設(shè)計(jì) 實(shí)驗(yàn)項(xiàng)目學(xué)時(shí):3學(xué)時(shí) 實(shí)驗(yàn)要求:■ 必修□ 選修 一、實(shí)驗(yàn)?zāi)康?1、 學(xué)習(xí)與日常生活相關(guān)且較復(fù)雜數(shù)字系統(tǒng)設(shè)計(jì); 2、 進(jìn)一步熟悉EDA實(shí)驗(yàn)裝置......