數(shù)控脈沖寬度調(diào)制信號發(fā)生器
《數(shù)控脈沖寬度調(diào)制信號發(fā)生器》由會員分享,可在線閱讀,更多相關(guān)《數(shù)控脈沖寬度調(diào)制信號發(fā)生器(25頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、西華大學(xué)課程設(shè)計說明書 數(shù)控脈沖寬度調(diào)制信號發(fā)生器 摘 要:脈沖寬度調(diào)制(PWM),簡稱脈寬調(diào)制,是利用微處理器等的數(shù)字輸出來對模擬電路進行控制的一種非常有效的技術(shù),廣泛應(yīng)用在從測量、通信到功率控制于變換的許多領(lǐng)域中。在本設(shè)計中設(shè)計了一種輸出頻率高、結(jié)構(gòu)簡單、控制方便的數(shù)控脈沖寬度調(diào)制信號發(fā)生器,脈沖的占空比及周期由兩個8位的預(yù)置輸入A、B確定。核心器件采用Altera公司的CPLD芯片,大大縮減了電路的體積,提高了電路的穩(wěn)定性,產(chǎn)生的PWM能達到較高的頻率。信號發(fā)生器輸出脈沖的占空比及周期可通過拔碼開關(guān)方便地改變。 關(guān)鍵詞:脈沖寬度調(diào)制,信號
2、發(fā)生器,CPLD Abstract: the pulse width modulation (PWM), hereinafter referred to as the pulse width modulation is the use of microprocessors etc to the digital output to the analog circuit to control a very effective technology, widely used in measuring, from communication to power control to tran
3、sform in many areas. In this design design A kind of high frequency output, simple structure, convenient control numerical control pulse width modulation signal generator, the pulse of empty ratio and cycle by two of the eight preset input of A and B sure. The core device using Altera company CPLD c
4、hip, greatly curtailed the volume of the circuit, improve the stability of the circuit, and the resulting PWM can achieve higher frequency. The output pulse signal generator of empty ratio and cycle can be pulled through code switch convenient to change. Keywords: pulse width modulation, signal gen
5、erator, CPLD 目 錄 1、簡介 2 1.1 EDA簡介 2 1.2 Verilog HDL簡介 2 1.3 QuartusII簡介 2 2、總體方案設(shè)計 5 2.1設(shè)計內(nèi)容 5 2.2設(shè)計方案比較 5 2.3方案論證 6 2.4方案選擇 7 3、單元模塊設(shè)計 8 3.1有源晶振電路 8 3.2 供電電路 9 3.3 PS配置電路 10 3.4 八位計數(shù)器輸入電路 11 3.5 D觸發(fā)器電路 11 4、特殊器件的介紹 12 4.1 CPLD器件介紹 12 4.2 FPGA器件介紹 12 4.3 EP1K30TC144器件介紹 13
6、 5、最小系統(tǒng)原理圖 14 6、軟件實現(xiàn) 15 6.1軟件設(shè)計 15 6.2思考題擴展 17 7、系統(tǒng)仿真及調(diào)試 19 7.1仿真 19 7.2 調(diào)試 20 8、總結(jié) 22 8.1設(shè)計小結(jié) 22 8.2設(shè)計收獲 22 8.3設(shè)計改進 22 8.4 致謝 22 9 、參考文獻 23 1.1 EDA簡介 EDA是電子設(shè)計自動化(Electronic Design Automation)的縮寫,在20世紀(jì)90年代初從計算機輔助設(shè)計(CAD)、計算機輔助制造(CAM)、計算機輔助測試(CAT)和計算機輔助工程(CAE)的概念發(fā)展而來的
7、。EDA技術(shù)就是以計算機為工具,設(shè)計者在EDA軟件平臺上,用硬件描述語言HDL完成設(shè)計文件,然后由計算機自動地完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局、布線和仿真,直至對于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。 1.2Verilog HDL簡介 Verilog HDL是一種硬件描述語言(HDL:Hardware Discription Language),是一種以文本形式來描述數(shù)字系統(tǒng)硬件的結(jié)構(gòu)和行為的語言,用它可以表示邏輯電路圖、邏輯表達式,還可以表示數(shù)字邏輯系統(tǒng)所完成的邏輯功能。 Verilog HDL和VHDL是目前世界上最流行的兩種硬件描述語
8、言,都是在20世紀(jì)80年代中期開發(fā)出來的。前者由Gateway Design Automation公司(該公司于1989年被Cadence公司收購)開發(fā)。兩種HDL均為IEEE標(biāo)準(zhǔn)。 1、3QartusII 軟件簡介 QuartusII是Altera提供的FPGA/CPLD開發(fā)集成環(huán)境,Altera是世界上最大的可編程邏輯器件供應(yīng)商之一。QuartusII在21世紀(jì)初推出,是Altera前一代FPGA/CPLD集成開發(fā)環(huán)境MAX+PLUSII的更新?lián)Q代產(chǎn)品,其界面友好,使用便捷。它提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計環(huán)境,使設(shè)計者能方便地進行設(shè)計輸入、快速處理和器件編程。 Altera的Qua
9、rtusII提供了完整的多平臺設(shè)計環(huán)境,能滿足各種特定設(shè)計的需要,也是單芯片可編程系統(tǒng)(SOPC)設(shè)計的綜合性環(huán)境和SOPC開發(fā)的基本設(shè)計工具,并為Altera DSP開發(fā)包進行系統(tǒng)模型設(shè)計提供了集成組合環(huán)境。QuartusII設(shè)計工具完全支持VHDL、Verilog設(shè)計流程,其內(nèi)部嵌有VHDL、Verilog邏輯綜合器。QuartusII也可利用第三方的綜合工具。同樣,QuartusII具備仿真功能,同時也支持第三方的仿真工具,如ModelSim。此外,QuartusII與MATLAB和DSP Builder結(jié)合,可以進行基于FPGA的DSP系統(tǒng)開發(fā)和數(shù)字通信模塊的開發(fā)。 QuartusI
10、I包括模塊化的編譯器。編譯器包括的功能模塊有分析/綜合器(Analsis & Synthesis)、適配器(Fitter)、裝配器(Assembler)、時序分析器(Timing Analyzer)、設(shè)計輔助模塊(Design Assistant)、EDA網(wǎng)表文件生成器(EDA Netlist Writer)、編輯數(shù)據(jù)接口(Compiler Database Interface)等??梢酝ㄟ^選擇Start Compilation來運行所有的編譯器模塊,也可以通過選擇Start單獨運行各個模塊。還可以通過選擇Compiler Tool(Tools菜單),在Compiler Tool窗口中運行該
11、模塊來啟動編譯器模塊。在Compiler Tool窗口中,可以打開該模塊的設(shè)置文件或報告文件,或打開其他相關(guān)窗口。 此外,QuartusII還包含許多十分有用的LPM(Library of Parameterized Modules)模塊,它們是復(fù)雜或高級系統(tǒng)構(gòu)建的重要組成部分,在SOPC設(shè)計中被大量使用,也可以與QuartusII普通設(shè)計文件一起使用。Altera提供的LPM函數(shù)均基于Altera器件的結(jié)構(gòu)做了優(yōu)化設(shè)計。在許多實用情況中,必須使用宏功能模塊才可以使用一些Altera特定器件的硬件功能,如各類片上存儲器、DSP模塊、LVDS驅(qū)動器、PLL以及SERDES和DDIO電路模塊等。
12、 QuartusII編譯器支持的硬件描述語言有VHDL(支持VHDL’87及VHDL’97標(biāo)準(zhǔn))、Verilog HDL及AHDL(Altera HDL)。 QuartusII支持層次化設(shè)計,可以在一個新的編輯輸入環(huán)境中對使用不同輸入設(shè)計方式完成的模塊(元件)進行調(diào)用,從而解決了原理圖與HDL混合輸入設(shè)計的問題。在設(shè)計輸入之后QuartusII的編譯器將給出設(shè)計輸入的錯誤報告??梢允褂肣uartusII帶有的RTL Viewer觀察綜合后的RTL圖。 QuartusII作為目前CPLD/FPGA開發(fā)工具理想的綜合、仿真軟件,具有許多優(yōu)良的特性。 (1)繼承了MAX+PLUSII的優(yōu)點
13、 圖形輸入依然形象,圖形符號與MAX+PLUSII一樣符合數(shù)字電路的特點,大量74系列器件符號使能初學(xué)者在較短的時間里利用圖形編輯設(shè)計出需要的電路。文本輸入幾乎和MAX+PLUSII相同,而且在文本的每一行都有行號,使用語言編寫的電路清晰易讀。低層編輯仍然采用Chipview方式,引腳排列位置映射了實際器件引腳,只要簡單地鼠標(biāo)拖放即可完成低層編輯。 (2)支持的器件更多 除了支持MAX3000、MAX7000、FLEX6000、FLEX10KE、ACEX1K等MAX+PLUSII已經(jīng)支持的器件外,還支持PEX20K、APEX20KE、AREXII、EXCALIBUR-ARM、Mercur
14、y、Stratix等MAX+PLUSII下無法支持的大容量高性能的器件。 (3)增加了網(wǎng)絡(luò)編輯功能 QuartusII支持一個工作組環(huán)境下的設(shè)計要求,包括支持基于Internet的協(xié)作設(shè)計,與Cadence、ExempiarLogi、mentorgraphics、Synopsys和Synpicity等EDA供應(yīng)商的開發(fā)工具相兼容。 (4)提升了調(diào)試能力 QuartusII增加了一個新的快速適配編譯選項,可保留最佳性能的設(shè)置,加快了編譯過程,可縮短50%的編譯時間,對設(shè)計性能的影響小。 (5)不足之處 軟件結(jié)構(gòu)龐大,使用復(fù)雜,不如MAX+PLUSII簡單、易學(xué)易用。
15、 2、總體方案設(shè)計 2.1設(shè)計內(nèi)容 設(shè)計一個能夠均勻輸出給定占空比的脈沖寬調(diào)制信號,通過兩個可加載8位計數(shù)器lcnt8.v實現(xiàn)本設(shè)計。若初始時D觸發(fā)器輸出為高電平時, U1不能加載A,若已復(fù)位只能完成0到255的加計數(shù),在計到255時產(chǎn)生輸出cao1,經(jīng)反相后異步清除d觸發(fā)器,經(jīng)反相后,ld1變高,使u1完成加載A,但只能保持加載狀態(tài),直到u2計數(shù)完成,產(chǎn)生cao2使d觸發(fā)器輸出高電平,ld1變低,u1開始從A的加計數(shù),計到255后,產(chǎn)生輸出cao1,經(jīng)反相后異步清除d觸發(fā)器,如此循環(huán)。D觸發(fā)器輸出高電平使u2加載,但持續(xù)的高電平維持加載使u2計數(shù)狀態(tài)維持在B,只有當(dāng)d觸發(fā)器清除后,u2開
16、始從B的加計數(shù),計到255后產(chǎn)生輸出cao2,使D觸發(fā)器輸出為高電平,如此循環(huán)。 2.2設(shè)計方案比較 方案一:由單片機AT89S52來實現(xiàn)數(shù)控脈沖寬度調(diào)制信號發(fā)生器的設(shè)計,外圍電源采用+5V電源供電,時鐘由12MHZ的晶振產(chǎn)生,中央處理器由AT89S52單片機來完成,設(shè)計中高低電平持續(xù)時間由輸入A、B與255的差值控制。這種方案,結(jié)構(gòu)簡單容易掌握,各部分電路實現(xiàn)起來都非常容易,在傳統(tǒng)的設(shè)計中也應(yīng)用得較為廣泛,技術(shù)成熟。其原理框圖如下圖2-1所示: AT89S52單片機 電源供電電路 時鐘產(chǎn)生電路 輸入A、B控制電路路 PWM的輸出 圖2-1單片原理實現(xiàn)框圖 方案二:基
17、于現(xiàn)場可編程邏輯門陣列FPGA,通過EDA技術(shù),采用Verilog HDL硬件描述語言實現(xiàn)數(shù)控脈沖寬度調(diào)制信號發(fā)生器設(shè)計。程序設(shè)計思想為:對輸入信號A、B采用不同的八位二進制代碼表示高低電平持續(xù)時間,由時鐘上沿觸發(fā)加計數(shù)器進行加計數(shù)功能,至于計數(shù)器u1、u2誰工作取決于其后接的D觸發(fā)器輸出的高低電平狀態(tài),低電平使u1工作,高電平使u2工作。再通過組合邏輯電路輸出結(jié)果狀態(tài)。其原理框圖如下圖2-2所示: 圖2-2數(shù)控脈沖寬度調(diào)制信號發(fā)生器電路控制框圖 2.3方案論證 通過方案一二的比較,可以看出方案一的設(shè)計使用分立元件電路較為多,因此會增加電路調(diào)試難度,且電路的不穩(wěn)定性也會隨之增加
18、,而采用FPGA芯片實現(xiàn)的電路,由于在整體性上較好,在信號的處理和整個系統(tǒng)的控制中,FPGA的方案能大大縮減電路的體積,提高電路的穩(wěn)定性。此外其先進的開發(fā)工具使整個系統(tǒng)的設(shè)計調(diào)試周期大大縮短,一般來講,同樣的邏輯,基于FPGA要比基于單片機要快很多,因為它們工作的原理是完全不同的。單片機是基于指令工作的,同樣的激勵到達單片機后,單片機首先要判斷,然后讀取相應(yīng)的指令,最后作出響應(yīng),這每一步都是需要在單片機的時鐘驅(qū)動下一步步的進行。而基于FPGA則是把相應(yīng)的邏輯“暫時”固化為硬件電路了,它對激勵作出的響應(yīng)速度就是電信號從FPGA的一個管腳傳播另一個管腳的傳播速度,當(dāng)然這指的是異步邏輯,同時電信號也
19、要在芯片內(nèi)進行一些柵電容的充放電動作,但這些動作都是非常非??斓?。 2.4方案選擇 結(jié)合現(xiàn)代測量技術(shù)的要求和精確,對其各個部件的性能提出了更高的要求,精確度是高于一切的,也是衡量一個器件的標(biāo)準(zhǔn)。在器件的合理使用和再度利用的考慮下,可編程的邏輯器件是占優(yōu)勢的,而且更方便,低功耗,體積小,結(jié)合本設(shè)計的要求及綜合以上比較的情況,我們選擇了基于FPGA的數(shù)控脈沖寬度調(diào)制信號發(fā)生器的方案,即,選擇方案二。 3、單元模塊設(shè)計 本設(shè)計由現(xiàn)場可編程門陣列(FPGA)作為控制芯片,通過Vreilog HDL硬件描述語
20、言設(shè)計,運用自頂而下的設(shè)計思想,按功能逐層分割實現(xiàn)層次化的設(shè)計。下面介紹主要模塊的功能及作用。 3.1有源晶振電路 有源晶振電路如下圖3-1所示: 圖3-1有源晶振電路 采用有源晶振作為時鐘信號源,有源晶振常用的為4個引腳,1-NC 、2-GND 、3-OUT、 4-VCC,它是一個完整的振蕩器,其內(nèi)部除了石英晶體外還有阻容軟件和晶體管,有源晶振信號質(zhì)量好,比較穩(wěn)定,而且連接方式比較簡單。主要是作為電源濾波,通常使用的為一個電容和電感組成的PI型濾波網(wǎng)絡(luò),輸出端使用一個小阻值電阻過濾信號。串電阻可減小反射波,避免反射波疊加引起過沖,減少諧波以及阻抗匹配,減小回波干擾及導(dǎo)致的信號過
21、沖。 由于本設(shè)計所用的為20MHZ的晶振,而20MHz以下的晶體晶振基本上都是基頻的器件,穩(wěn)定度好,20MHz以上的大多是諧波的(如3次諧波、5次諧波等等),穩(wěn)定度差,因此我們選用基頻的器件,畢竟倍頻用的PLL電路需要的周邊配置主要是電容、電阻、電感,其穩(wěn)定度和價格方面遠(yuǎn)遠(yuǎn)好于晶體晶振器件。 3.2 供電電路 供電電路原理圖如下圖3-2所示: 圖3-2供電電路原理圖 本設(shè)計中使用到了三個電源,第一是+5V的電源,用于為上拉電阻提供電壓,該設(shè)計中用集成三端穩(wěn)壓器CW7805來得到,輸入電壓經(jīng)降壓,整流,濾波,穩(wěn)壓后得到+5V的電壓供本設(shè)計使用;第二是+3.3V電源,
22、用于為FPGA芯片提供工作電壓,本設(shè)計中電源芯MIC29302來得到3.3 V輸入輸出引腳工作電壓;第三是+2.5V電源,用于為FPGA芯片內(nèi)核工作提供電壓,本設(shè)計中電源芯片SPX1117M來得到+2.5V芯片工作的內(nèi)核電壓。在FPGA芯片管腳上,+2.5V電源必須接在內(nèi)核電源輸入端(VCCINT)上,而VCCIO是芯片輸入輸出引腳工作電源,根據(jù)輸入輸出的設(shè)備不同,可以接2.5 V、3.3 V或5.0 V。 特別注意的是EPC1PC8的工作電壓必須為3.3V,且該配置芯片屬于Flash Memory閃存)器件,具有可擦寫的功能。 3.3 PS配置電路 配置電路如下圖3-3所示:
23、 圖3-3 配置電路原理圖 配置電路采用被動串行(PS)模式,為了利用ByteBlasterMV下載電纜配置EP1K30TC144器件,3.3V的電源應(yīng)該接上拉電阻,電纜的VCC腳連到3.3V電源,而器件的VCCINT的引腳連接到相應(yīng)的2.5V,對于PS配置電路,器件的VCCIO引腳必須連接到2.5V。 上拉電阻接到配置器件的電源端,這里接到了+5V電源端。nCE接到CONF_DONE端,OE接到nSTATUS端,Nint_CONF接到nCONFIG端,DCLK與DCLK相連接,DATA與DATA0相連接。nCEO引腳端懸空。 3.4 八位計數(shù)器輸入電路 8位計數(shù)
24、器的原理圖如下圖5-4所示: 圖3-4 8位計數(shù)器件原理圖 此試驗選用的是8位的計數(shù)器進行加計數(shù)功能,從0加到255。計數(shù)器是數(shù)字系統(tǒng)中用的較多的基本邏輯器件,它的基本功能是統(tǒng)計時鐘脈沖的個數(shù),即實現(xiàn)計數(shù)操作,它也可用與分頻、定時、產(chǎn)生節(jié)拍脈沖和脈沖序列等。例如,計算機中的時序發(fā)生器、分頻器、指令計數(shù)器等都要使用計數(shù)器。 計數(shù)器的種類很多。按構(gòu)成計數(shù)器中的各觸發(fā)器是否使用一個時鐘脈沖源來分,可分為同步計數(shù)器和異步計數(shù)器;按進位體制的不同,可分為二進制計數(shù)器、十進制計數(shù)器和任意進制計數(shù)器;按計數(shù)過程中數(shù)字增減趨勢的不同,可分為加法計數(shù)器、減法計數(shù)器和可逆計數(shù)器;還有可預(yù)制數(shù)和可編計數(shù)器
25、等等。 3.5 D觸發(fā)器電路 D觸發(fā)器的原理圖如下圖3-5所示: 圖3-5 D觸發(fā)器件原理圖 D觸發(fā)器的輸入端由時鐘信號端clk、數(shù)據(jù)信號端、反相復(fù)位端CLRN和反相置位端PRN組成,CLRN、PRN控制信號分別從方框小圓圈處輸入,表示低電平控制信號有效。D觸發(fā)器輸出端由兩個互為反相的Q端和~Q端組成。 D觸發(fā)器的D代表延遲或數(shù)據(jù),它的輸出是發(fā)生在早于一個時鐘脈沖之前的D輸入的函數(shù)。在時鐘脈沖期間,在D輸入提供“1”會導(dǎo)致輸出變?yōu)?,否則輸出變?yōu)?。 4、特殊器件的介紹 4.1 CPLD器件介紹 CPLD是Complex Programmable Logic Devi
26、ce的縮寫,它是有最早的PLD器件發(fā)展形成的高密度可編程邏輯器件,它具有編程靈活、集成度高、設(shè)計開發(fā)周期短、適用范圍寬、開發(fā)工具先進、設(shè)計制造成本低、對設(shè)計者的硬件經(jīng)驗要求低、標(biāo)準(zhǔn)產(chǎn)品無需測試、保密性強、價格大眾化等特點。 CPLD是一種用戶根據(jù)各自需要而自行構(gòu)造邏輯功能的數(shù)字集成電路。其基本設(shè)計方法是借助集成開發(fā)軟件平臺,用原理圖、硬件描述語言等方法,生成相應(yīng)的目標(biāo)文件,通過下載電纜(“在系統(tǒng)”編程)將代碼傳送到目標(biāo)芯片中,實現(xiàn)設(shè)計的數(shù)字系統(tǒng)。 許多公司都開發(fā)出了CPLD可編程邏輯器件。比較典型的就是Altera、Lattice、Xilinx世界三大權(quán)威公司的產(chǎn)品。如 Altera公司的
27、MAXII器件,就是其極具代表性的一類CPLD器件,是有史以來功耗最低、成本最低的CPLD。MAX II CPLD基于突破性的體系結(jié)構(gòu),在所有CPLD系列中,其單位I/O引腳的功耗和成本都是最低的。 Altera公司的MAX7000A系列器件是高密度、高性能的EPLD,它是基于第二代MAX結(jié)構(gòu),采用CMOS EPROM工藝制造的。該系列的器件具有一定得典型性,其他結(jié)構(gòu)都與此結(jié)構(gòu)非常的類似。它包括邏輯陣列塊、宏單元、擴展乘積項、可編程連線陣列和IO控制部分。由于大多數(shù)CPLD是基于乘積項的“與或”結(jié)構(gòu),故適合設(shè)計組合邏輯電路。 4.2 FPGA器件介紹 FPGA(Field-Progr
28、ammable Gate Array)可以達到比PLD更高的集成度,它是在PAL、GAL、EPLD等可編程器件的基礎(chǔ)上進一步發(fā)展起來的,具有更復(fù)雜的布線結(jié)構(gòu)和邏輯實現(xiàn)。PLD器件和FPGA的主要區(qū)別在于PLD是通過修改具有固定內(nèi)連電路得邏輯功能來進行編程,而FPGA是通過修改一根或多根分割宏單元的基本功能塊的內(nèi)連線的布線來進行編程。它一般由可嵌入式陣列塊(EAB)、邏輯陣列塊(LAB)、快速互聯(lián)通道(Fast Track)、IO單元(IOE)組成。 Altera Cyclone II 采用全銅層、低K值、1.2伏SRAM工藝設(shè)計,裸片尺寸被盡可能最小的優(yōu)化。采用300毫米晶圓,以TSMC成
29、功的90nm工藝技術(shù)為基礎(chǔ),Cyclone II 器件提供了4,608到68,416個邏輯單元(LE),并具有一整套最佳的功能,包括嵌入式18比特x18比特乘法器、專用外部存儲器接口電路、4kbit嵌入式存儲器塊、鎖相環(huán)(PLL)和高速差分I/O能力。Cyclone II 器件擴展了FPGA在成本敏感性、大批量應(yīng)用領(lǐng)域的影響力,延續(xù)了第一代Cyclone器件系列的成功。 由于FPGA是基于查找表(LUT)結(jié)構(gòu)的器件,且每個LAB由10個LE組成,一個LE由LUT和寄存器組成,適合于時序邏輯電路的設(shè)計。 4.3 EP1K30TC144器件介紹 ACEX1K器件是Altera公司在2000推
30、出的2.5V低價格SRAM工藝FPGA結(jié)構(gòu)與10KE類似,帶嵌入式存儲塊(EAB),部分型號帶PLL,主要有1K10、1K30、1K50、1K100等型號。EP1K30TC144器件中,EP1K表示器件類型,30表示器件內(nèi)有30K個邏輯門,T代表封裝類型,C表示用途為商用,144表示管腳數(shù)為144。其引腳圖如圖4-3所示 圖4-3 EP1K30TC原理圖 5、最小系統(tǒng)原理圖 整個設(shè)計用到的模塊組成的最小系統(tǒng)原理圖如下圖5-1所示: 圖5-1最小系統(tǒng)原理圖 本設(shè)計的電路實現(xiàn)是基于FPGA最小系統(tǒng)原理圖,再配以所需的外設(shè)。最小系統(tǒng)設(shè)計包含了時鐘產(chǎn)生電路模塊、P
31、S程序下載配置電路模塊、電源電路模塊,右邊的是FPGA芯片EP1K30TC143器件。通過連線將各個模塊進行連接成最小系統(tǒng)。由于本設(shè)計電路比較簡單,外設(shè)比較少。 將外設(shè)與最小系統(tǒng)進行合理正確連接,即可實現(xiàn)本設(shè)計的電路原理要求。圖中將各外設(shè)模塊和芯片電路各對應(yīng)管腳進行合理正確連接,即可實現(xiàn)本設(shè)計的電路原理要求,A,B的輸入由程序來實現(xiàn),在輸出端口,可以外接一個示波器,用來檢查電路是否輸出了脈沖寬度調(diào)制信號,以及占空比是否符合要求,用以驗證電路的功能。 6、軟件實現(xiàn) 通過至頂向下(TOP--DOWN)的設(shè)計方法,我們對電路的設(shè)計要求作了分析,從電路要實現(xiàn)的功能著手,逐層分析電路設(shè)計的步驟
32、,再具體到各個模塊的設(shè)計實現(xiàn)以及各模塊實現(xiàn)方案的選擇。從本設(shè)計的電路要求,通過兩個可加載8位計數(shù)器lcnt8.v實現(xiàn)本設(shè)計。 6.1軟件設(shè)計 設(shè)計程序如下: A、代碼頂層:模塊pwm_gn.v //PWM generator module pwm_gn(clk,rst_n,a,b,pwmout,ld1,ld2,cao1,cao2); input clk;//system clock input rst_n;//reset input [7:0] a;//pulse width control input input [7:0] b;//pulse width con
33、trol input output pwmout; output ld1,ld2,cao1,cao2;//only for observation, can be removed wire cao1; wire cao2; wire ld1; wire ld2; wire pwmout; reg pwmint; //intantiate two loadable 0~255 counter lcnt8 u1_lcnt8( .clk(clk), .rst_n(rst_n), .ld(ld1), .d(a),
34、 .cao(cao1)); lcnt8 u2_lcnt8( .clk(clk), .rst_n(rst_n), .ld(ld2), .d(b), .cao(cao2)); //two loadable counter control and reloading control always@(posedge cao2 or posedge cao1) begin if (cao1==1b1) begin pwmint<=1b0; end else if (cao2==1
35、) begin pwmint<=1b1; end end assign ld1=!pwmint; assign ld2=pwmint; assign pwmout=pwmint; endmodule B、8位可加載計數(shù)器:lcnt8 //8bit loadble increment counter module lcnt8(clk,rst_n,ld,d,cao); input clk; input ld; input [7:0] d; input rst_n; output cao; reg [7:0] coun
36、t; reg cao; always@(posedge clk ) begin if (!rst_n) begin count<=8b00000000; end else if (ld) begin count<=d; end else begin count<=count+1b1; end end always@(posedge clk) begin if (count==254) begin cao<=1b1
37、; end else begin cao<=1b0; end end endmodule 6.2思考題擴展 本設(shè)計電路中,脈沖調(diào)制信號的占空比由A,B與255的差值決定,擴展電路的實現(xiàn)占空比由A,B的值決定,即高低電平持續(xù)時間由A,B來決定,具體電路由兩個八位可加載減計數(shù)器,D觸發(fā)器和非門等組成,八位可加載減計數(shù)器的程序和仿真圖如下: 程序:module subb(clk,rst_n,ld,d,cao); input clk; input ld; input [7:0] d; input rst_n; outpu
38、t cao; reg [7:0] count; reg cao; always@(posedge clk ) begin if (!rst_n) begin count<=8b11111111; end else if (ld) begin count<=d; end else begin count<=count-1b1; end end always@(posedge clk) begin if (cou
39、nt==0) begin cao<=1b1; end else begin cao<=1b0; end end Endmodule 7、系統(tǒng)仿真及調(diào)試 7.1仿真 通過QuartusII軟件,我們進行了仿真,其仿真波形如下圖所示: 圖7-1 A=12,B=12的輸出波形 圖7-2 A=136,B=128的輸出波形 在圖7-1中,我們設(shè)置A=12,B=12。當(dāng)lcn
40、t8:u1完成從12到255計數(shù)時cao1發(fā)生一個脈沖,D觸發(fā)器清零,變?yōu)榈碗娖剑琹cnt8:u1又從12開始計數(shù);當(dāng)lcnt8:u2完成從12到255計數(shù)時cao2發(fā)生一個脈沖,D觸發(fā)器置數(shù)為高電平,lcnt8:u2又開始從12到255計數(shù);如此循環(huán)。圖7-2將A設(shè)置為136,B為128,因此計數(shù)器將從136和128開始計數(shù),從而調(diào)節(jié)了脈沖的寬度。 在Quartus I I 6.0軟件中利用硬件描述語言描述電路后,用Tools/Netlist Viewers/RTL Viewer生成的對應(yīng)的電路圖如下: 圖7-3 數(shù)控脈沖寬度調(diào)制信號發(fā)生器電路圖 7.2 調(diào)試 在QuartusI
41、I軟件中,通過對所設(shè)計的硬件描述語言代碼進行波形仿真后,達到了預(yù)期效果,于是,我們在該軟件上進行下載配置設(shè)置。在Assignments菜單下選中Devices,在Family欄選擇ACEX1K,選中EP1K30TC144-2器件。再在Assignments菜單下選中Pins按照相應(yīng)要求對管腳進行鎖定。最后在Tools菜單下,選中Programmer,對配置方式進行設(shè)置,這里選擇Passive Seril(PS)被動串行模式。選擇好要下載的硬件設(shè)備后點擊Start即可開始編程下載了。 調(diào)試過程為在線調(diào)試。在通過調(diào)試中,我們需要注意很多問題,現(xiàn)歸納如下: (1)在軟件上能實現(xiàn)仿真的程序不一定在
42、硬件電路上就能運行,原因有很多,這里是由于電路中的時鐘頻率不一定準(zhǔn)確,使輸出的代碼無法在示波器上正確的顯示出來,或者不能夠清晰的讀數(shù)等等問題。 (2)調(diào)試中的實際問題需要考慮,要在不加電檢查電路板有無短路,元件焊接錯誤。如果不認(rèn)真檢查在加電后就會導(dǎo)致器件因短路而被燒壞或者是輸出錯誤、沒有任何輸出等等一些問題的出現(xiàn)。在QuartusⅡ軟件中則不能進行正確的仿真,可以直接將程序下載到電路板上去調(diào)試。 (3)加電后測試時鐘,供電、輸入信號等是否正確。對FPGA處理后的輸出信號測試,對整個板測驗證所有功能。檢查計數(shù)器的計數(shù)時間和延遲時間是否和所要求的相同,輸出結(jié)果是否和在QuartusⅡ里軟件仿
43、真結(jié)果相同,如果不同就要進行調(diào)試和檢查,找到真的問題并解決。 8、總結(jié) 8.1設(shè)計小結(jié) 在本次設(shè)計中,我們完成本系統(tǒng)設(shè)計的要求及功能。在設(shè)計開始前我們對各個模塊進行了詳細(xì)的分析和設(shè)計準(zhǔn)備工作,設(shè)計過程中,我們相互協(xié)調(diào),積極參與完成各個技術(shù)實現(xiàn)的難點。 8.2設(shè)計收獲 通過本次設(shè)計,我們在對EDA這門技術(shù)上有了更深刻的認(rèn)識,也從實踐的例子中去感受到了EDA設(shè)計給我們設(shè)計帶來的改變與進步。我們不僅掌握QuartusII軟件的使用,與此同時,我們還對電子設(shè)計的思路有了更多的認(rèn)識。通過對EDA設(shè)計中的TOP-DOWN設(shè)計方式的運用,體會到了對于一個大型系統(tǒng)的設(shè)計方案選取應(yīng)從頂向下的設(shè)計思路
44、,這與傳統(tǒng)的至底向上的設(shè)計方式有很大改進,且設(shè)計效率得到大大提高。 8.3設(shè)計改進 由于時間倉促和我們自身水平有限,本設(shè)計在功能上也只是完成了一些基本功能,對于電路的可靠性,穩(wěn)定性等參數(shù)還未做過詳細(xì)的測試。實驗采用FPGA來實現(xiàn)數(shù)控脈沖調(diào)制信號發(fā)生器的設(shè)計,對于FPGA器件和計數(shù)器的相關(guān)功能參數(shù)沒有準(zhǔn)確的測試。對于輸入控制高低電平的持續(xù)時間由輸入A、B與255的差值控制的改進,在A、B信號后接入555定時器來實現(xiàn)差值。 8.4 致謝 通過黃老師的悉心指導(dǎo),和同學(xué)的幫助下,我順利的完成了本次EDA課程設(shè)計。在此我要感謝電氣信息學(xué)院給了我們做EDA課程設(shè)計的機會,感謝我院老師們的幫助
45、,使我們的知識得到了加深。在此要特別感謝黃勇老師,他能在繁重的工作下依然對我們傾心的指導(dǎo),才使得我們的課程設(shè)計圓滿完成。 9 、參考文獻 [1] 謝自美 主編.電子線路設(shè)計.實驗.測試(第二版)[M].華中理工大學(xué)出版社,2003.10 [2] 姜宇柏,黃志強等,通信收發(fā)信機的verilog實現(xiàn)與仿真,機械工業(yè)出版社,2007 [3] 盧毅編著.VHDL與數(shù)字電路設(shè)計[M].北京.科技大學(xué)出版,2001 [4] 張延偉等編.verilogHDL程序設(shè)計師李祥解[M].人民郵電出版社,2008 [5] 潘軍、王國棟編.VHDL使用教程.電子科技大學(xué)出版社,2000 [6] 王金明 主編.?dāng)?shù)字系統(tǒng)設(shè)計與Verilog HDL(第三版)[M].電子工業(yè)出版社,2009.7 [7] 侯佰亨,顧新編著.VHDL硬件描述語言與實際應(yīng)用[M].西安.西安電子社,2000 [8] 陳賾 主編.《CPLD/FPGA與ASIC設(shè)計實踐教程》科學(xué)出版社,2005.8 24
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。