freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

多功能波形發(fā)生器的設(shè)計畢業(yè)論文(參考版)

2025-06-24 23:02本頁面
  

【正文】 同時感謝我的室友們,從遙遠的家來到這個陌生的城市里,是你們和我共同維系著彼此之間姐妹般的感情,維系著寢室那份家的融洽。從課題的選擇到項目的最終完成她都始終給予我細心的指導(dǎo)和不懈的支持。36致 謝 本論文是在我的導(dǎo)師薛延霞教授的親切關(guān)懷和悉心指導(dǎo)下完成的。舉個例子來說,可以產(chǎn)生將一階斜波與二階斜波疊加起來的波形。因為目前市場上的各個廠家的函數(shù)發(fā)生器其波形的發(fā)生頻率很高,比如說學(xué)校最常見的RIGOL 函數(shù)發(fā)生器發(fā)生頻率可以達到正弦波信號可以達到 20MHz,根據(jù)該系統(tǒng)正弦設(shè)計,一個周期有 128 個點,也就是說每運行 128 下才能產(chǎn)生一個周期的正弦波,要達到 20M 頻率就得讓 FPGA 的時鐘頻率為 20M*128 = 2,560MHz也就是 ,這是不可能達到的,對于目前低成本的 FPGA 來說,時鐘頻率高一點是 100M,低一點的是 50M,就算在 FPGA 內(nèi)部倍頻上去也不可能達到1G,而且 的模數(shù)轉(zhuǎn)化器也是不會有的。但是在靈活性,多樣35性方面有著明顯的優(yōu)勢。該系統(tǒng)在仿真上可以達到各種波形發(fā)生的效果,但是沒有使用具體的硬件資源進行調(diào)試,造成了本設(shè)計的遺憾,可以推薦使用 8 位的D/A 數(shù)模轉(zhuǎn)化器接在輸出端,利用示波器觀察各波形。雖然該系統(tǒng)可以產(chǎn)生不同頻率的多種波形,但是不能控制波形相位,而且在速度上面還不太理想,需要進一步改進。兩者均能產(chǎn)生想要的波形,但是也是有差別的。在軟件選型上面,還是破費周折。利用業(yè)界最好的仿真軟件 Modelsim,進行仿真,可以明顯看到可靠結(jié)論,每種波形輸出準確,精度高。本系統(tǒng)是利用 FPGA 產(chǎn)生多種波形,方波、增斜波,減斜波,三角波,階梯波,正弦波。Verilog 語言語法學(xué)習(xí),其雖然在語法表達上有點像 C 語言但是作為一種硬件描述語言還是跟 C 語言有很大差別的,比如 C 語言有乘法和除法,但是 Verilog 語言卻沒有,因此在很多時候,雖然邏輯和波形都是對的,但是綜合起來多出現(xiàn)錯誤,布線啥的都不成功。34結(jié)論 利用 FPGA 產(chǎn)生波形,其原理簡單,但是實現(xiàn)起來也并非看起來那么容易,里面牽扯到很多知識。軟件編譯通過,利用 Quartus II 軟件或者 ISE 對其進行綜合,綜合成功之后就要做波形仿真,觀察波形。其結(jié)構(gòu)圖如圖 42 所示。圖 41 系統(tǒng)整體結(jié)構(gòu)圖2) 波形產(chǎn)生模塊包含了 6 個部分:增斜波模塊,減斜波模塊,方波模塊,三角波模塊,正弦波模塊,階梯波模塊。其中時鐘調(diào)制模塊是用來將輸入時鐘進行分頻配置,輸出系統(tǒng)需要的時鐘信號,波形產(chǎn)生模塊用來產(chǎn)生多種波形信號。以下介紹多波形發(fā)生系統(tǒng)的聯(lián)合調(diào)試結(jié)構(gòu)以及調(diào)試結(jié)果。4 系統(tǒng)軟硬件聯(lián)合調(diào)試經(jīng)過前兩章的介紹,將系統(tǒng)軟硬件的總體結(jié)構(gòu)原理圖以及各個子模塊的原理圖都詳細介紹了一下。為了進一步驗證階梯波形仿真圖,使用 Quartus II 軟件進行軟件仿真,得到波形仿真結(jié)果如圖 327 所示。 設(shè)計測試文件,將 div 設(shè)置為 1 即為 2 分頻, sysclk 設(shè)置周期為 20ns。endendcasetmp_lad = tmp_lad + 1。d255:beginQout_lad = 255。d240: Qout_lad = 240。d224: Qout_lad = 224。d208: Qout_lad = 208。d192: Qout_lad = 192。d176: Qout_lad = 176。d160: Qout_lad = d144: Qout_lad = 144。d128: Qout_lad = 128。d112: Qout_lad = 112。d96: Qout_lad = 96。d80: Qout_lad = 80。d64: Qout_lad = 64。d48: Qout_lad = 48。d32: Qout_lad = 32。d16: Qout_lad = 16。d0: Qout_lad = 0。Qout_lad = 0。根據(jù)該原理圖以及上述各部分說明,用 verilog 語言設(shè)計出階梯波核心程序:reg [7:0] tmp_lad。圖 325 階梯波形原理圖 從圖 325 中來分析該模塊的輸入輸出模塊以及引腳定義:? 模塊的輸入變量是:外部基準時鐘 sysclk,模塊復(fù)位輸入 reset,分頻系數(shù)輸入 div。 階梯波設(shè)計所謂的階梯波形就是指像臺階那樣,一級又一級,逐漸增大直到到達最大臺階,然后轉(zhuǎn)變?yōu)樽畹团_階,再重復(fù)循環(huán)出現(xiàn)的波形。圖 323 正弦波波形仿真圖 322 和圖 323 所示波形顯示出該正弦波模塊能夠產(chǎn)生正弦波,其中專業(yè)的波形仿真軟件 Modelsim 中顯示的正弦波平滑得多,也沒有個別毛刺。通過 Modelsim 仿真得到圖 322 波形:29圖 322 正弦波波形仿真從上圖可以看出,通過該模塊設(shè)計能夠產(chǎn)生正弦數(shù)字信號,二分頻時其周期是輸入時鐘的 256 倍,是輸出時鐘的 128。Qout_sin = 128。 endelse begincase(tmp_sin) ……….. //128 點,賦值endcase tmp_sin = tmp_sin + 1。always (posedge clk_out or negedge rest) beginif(!rest) begintmp_sin = 0。輸出時鐘波形時鐘輸出 Qout_sin;? 復(fù)位輸入 reset 低電平時,時鐘模塊復(fù)位,系統(tǒng)不運作;? 分頻系數(shù) div 決定波形時鐘,其分頻計算公式是:,比如說 div 值為 1,則輸出時鐘是系1div??系 統(tǒng) 時 鐘 頻 率輸 出 時 鐘 頻 率統(tǒng)時鐘的二分之一;? Qout_sin 是正弦波模塊的波形輸出。圖 320 正弦波軟件流程圖根據(jù)圖 320 所示軟件流程圖設(shè)計出正弦波模塊的模塊框圖,如圖 321 所示。0:pi*2/127:2*pi 是指從0 到 范圍內(nèi)依次取 127 個點,步進值是 。根據(jù)上述查找的思想,可以設(shè)計出軟件,但是正弦函數(shù)的幅度數(shù)據(jù)需要自己去設(shè)定,設(shè)定方法是通過 MATLAB 軟件,進行編程得到 128 位深度的值。該波形設(shè)計相比其他波形比較復(fù)雜,其實現(xiàn)方法:首先設(shè)計一個 ROM 用來存放正弦函數(shù)的幅度數(shù)據(jù);用一個計數(shù)器來指定 ROM 地址(相位)的增加,輸出相應(yīng)的幅度值。圖 319 三角波形仿真圖從圖 318 和圖 319 中可以看出,利用 Quarts II 和 Modelsim 軟件仿真均能產(chǎn)生三角波形,但是從結(jié)果直觀地觀察,在 Modelsim 中三角波形比較光滑、平整,而在 Quartus II 中卻有一些很小的毛刺,這經(jīng)過分析只能將原因歸結(jié)于沒有完全會使用 Quartus II,或是 Quartus II 波形仿真跟 Modelsim 本身就存在差距。通過 Modelsim 仿真得到圖 318 波形:圖 318 三角波形仿真圖從圖 318 可以看出輸出的波形是標準的三角波,波形從開始的最小值到最大值再從最大值到最小值。 endendendmodule簡單分析下代碼:tmp_tri 用來記錄時間脈沖的次數(shù),以上升沿方式觸發(fā)計數(shù);在未達到 8’b0000_1111 時,輸出上升波形,到達 8’b0000_1111 時,輸出下降波形。if(tmp_tri == 0)tri_flag = 0。b0000_1111) tri_flag = 1。endelse beginif(!tri_flag) begintmp_tri = tmp_tri + 1。tmp_tri = 0。reg tri_flag = 0。clk_div clk_out(.sysclk(SysClk) ,.reset(rest) ,.div(div),.clk_out(clk_out))。output [7:0] Qout_tri。input rest。根據(jù)軟件流程圖以及模塊框圖中輸入輸出引腳定義,使用 Verilog 語言設(shè)計了以25下代碼:module tri2( SysClk , //系統(tǒng)時鐘rest , //復(fù)位開關(guān),低電平復(fù)位div , //分頻Qout_tri )。圖 317 三角波模塊原理圖從圖 317 中來分析該模塊的輸入輸出模塊以及引腳定義:? 模塊的輸入變量是:外部基準時鐘 sysclk,模塊復(fù)位輸入 reset,分頻系數(shù)輸入 div。根據(jù)模塊需求設(shè)計出模塊流程圖如圖 316 所示。圖 315 方波波形仿真圖從圖 314 中也可以看到和圖 315 同樣的現(xiàn)象每經(jīng)過 16 個周期電平翻轉(zhuǎn)一次,也就是說每 32 個周期產(chǎn)生一個方波波形,完全符合標準,另外,其頻率取24決于分頻系數(shù) div 和系統(tǒng)輸入時鐘。通過Modelsim 仿真得到圖 314 波形:圖 314 方波波形仿真圖從圖 314 中可以看出當 div=1 和 reset=1 的情況下 clk_out_tmp 是輸入時鐘的一辦,每來 16 個周期 Qout_squ 輸出電平翻轉(zhuǎn)一遍,以產(chǎn)生標準的方波。endend簡單分析下以上代碼:tmp_squ 是用來計內(nèi)部時鐘 clk_out 的脈沖次數(shù),當達到 8’b0000_1111 時,重新計 0,這個時候,將輸出變量翻轉(zhuǎn),產(chǎn)生方波。b1111_1111。squ_flag = ~squ_flag。if(tmp_squ = 839。squ_flag=0。always (posedge clk_out or negedge rest) beginif(!rest) beginQout_squ = 0。根據(jù)軟件流程圖以及模塊框圖中輸入輸出引腳定義,使用 Verilog 語言設(shè)計了以下核心代碼://產(chǎn)生方波reg [7:0] tmp_squ=0。圖 313 方波模塊原理圖從圖 313 中來分析該模塊的輸入輸出模塊以及引腳定義:? 模塊的輸入變量是:外部基準時鐘 sysclk,模塊復(fù)位輸入 reset,分頻系數(shù)輸入 div。根據(jù)模塊需求設(shè)計出模塊流程圖如圖 312 所示。圖 311 減斜波波形輸出 從圖 311 中可以發(fā)現(xiàn)跟圖 310 中發(fā)現(xiàn)的一樣的周期性減斜波,進一步驗證了模塊的正確性。通過 Modelsim 仿真得到圖 310 波形:圖 310 減斜波波形輸出圖 310 可以清楚看出遞減斜波的波形圖,即從最大值開始依次往小減,直到最小值 0,又重新恢復(fù)到最大,這樣循環(huán)往復(fù)。endendend21endmodule從上述代碼可以分析出輸出 Qout_min 從最大的 255 開始遞減,每來一次分頻過的時鐘減 1,一直到 0,然后又恢復(fù)到 255,這樣循環(huán)往復(fù)。b1111_1111。endelse begintmp_min = tmp_min 1 。tmp_min = 839。b1111_1111。clk_div clk(.sysclk(SysClk) ,.reset(rest) ,.div(div),.clk_out(clk_out))。output [7:0] Qout_min。input rest。input [7:0] div。input SysClk。輸出時鐘波形時鐘輸出 Qout_min;? 復(fù)位輸入 reset 低電平時,時鐘模塊復(fù)位,系統(tǒng)不運作;? 分頻系數(shù) div 決定波形時鐘,其分頻計算公式是:,比如說 div 值為 1,則輸出時鐘是系1div??系 統(tǒng) 時 鐘 頻 率輸 出 時 鐘 頻 率統(tǒng)時鐘的二分之一;? Qout_min 是減斜波模塊的波形輸出。19圖 38 減斜波軟件流程圖根據(jù)圖 38 所示軟件流程圖設(shè)計出減斜波模塊的模塊框圖,如圖 39 所示。 減斜波設(shè)計減斜波是指波形按照一定的步幅遞減,達到最高點后又回到最大值的狀態(tài),這樣循環(huán)進行。為了進一步驗證該遞增波形的正確性,我們采用 Quartus II 進行波形仿真,得到的仿真波形圖如圖 37 所示。設(shè)計測試文件,將 div 設(shè)置為 1 即為 2 分頻,sysclk 設(shè)置周期為 20ns。endelse beginQout_add = tmp_add。if(tmp_add = 839。tmp_add = 0。//產(chǎn)生遞增斜波reg [7:0] tmp_add=0。wire clk_out。input [7:0] div。input SysClk。input rest。根據(jù)軟件流程圖以及模塊框圖中輸入輸出引腳定義,使用 Verilog 語言設(shè)計了以下代碼:module add(開始r e s t ,s y s c l k ,d i v 輸入輸出遞增波形結(jié)束分頻初始化變量r e s t = 1N OY E S17SysClk , //系統(tǒng)時鐘rest , //復(fù)位開關(guān),低電平復(fù)位div , //分頻Qout_add //遞增斜波 )。圖 35 增斜波模塊框圖 從圖 35 中來分析該模塊的輸入輸出模塊以及引腳定義:? 模塊的輸入變量是:外部基準時鐘 sysclk_in,模塊復(fù)位輸入reset_in,分頻系數(shù)輸入 div。按照這種思想設(shè)計出來軟件流程圖如圖 34 所示。綜上所述,該時鐘分頻模塊能夠?qū)⑤斎霑r鐘頻率按照自己系統(tǒng)需求分配出不同頻率。再用 Quartus
點擊復(fù)制文檔內(nèi)容
化學(xué)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1