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

正文內(nèi)容

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

2024-08-31 14:18本頁面
  

【正文】 以下介紹多波形發(fā)生系統(tǒng)的聯(lián)合調(diào)試結(jié)構(gòu)以及調(diào)試結(jié)果。 31 4 系統(tǒng)軟硬件聯(lián)合調(diào)試 經(jīng)過前兩章的介紹,將系統(tǒng)軟硬件的總體結(jié)構(gòu)原理圖以及各個子模塊的原理圖都詳細(xì)介紹了一下。 為了進一步驗證階梯波形仿真圖,使用Quartus II 軟件進行軟件仿真,得到波形仿真結(jié)果如圖 327 所示。 設(shè)計測試文件,將 div 設(shè)置為 1 即為 2 分頻, sysclk 設(shè)置周期為 20ns。 end endcase tmp_lad = tmp_lad + 1。d255: 30 begin Qout_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 中來 分析該模塊的輸入輸出模塊以及引腳定義: ? 模塊的輸入變量是:外部基準(zhǔn)時鐘 sysclk,模塊復(fù)位輸入 reset,分頻系數(shù)輸入 div。 階梯波設(shè)計 所謂的階梯波形就是指 像臺階那樣,一級又一級,逐漸增大直到到達(dá)最大臺階,然后轉(zhuǎn)變?yōu)樽畹团_階,再重復(fù)循環(huán)出現(xiàn)的波形。 圖 323 正弦波波形仿真 圖 322 和圖 323 所示波形顯示出該正弦波模塊能夠產(chǎn)生正弦波,其中專業(yè)的波形仿真軟件 Modelsim中顯示的正弦波平滑得多,也沒有個別毛刺。通過Modelsim 仿真得到圖 322 波形: 圖 322 正弦波波形 仿真 從上圖可以看出,通過該模塊設(shè)計能夠產(chǎn)生正弦數(shù)字信號,二分頻時其周期 28 是輸入時鐘的 256 倍,是輸出時鐘的 128。 Qout_sin = 128。 end else begin case(tmp_sin) ……… .. //128 點,賦值 endcase tmp_sin = tmp_sin + 1。 always (posedge clk_out or negedge rest) begin if(!rest) begin tmp_sin = 0。輸出時鐘波形時鐘輸出 Qout_sin; ? 復(fù)位輸入 reset 低電平時,時鐘模塊復(fù)位,系統(tǒng)不運作; ? 分頻系數(shù) div 決定波形時鐘,其分頻計算公式是: 1d iv ?? 系統(tǒng)時鐘頻率輸出時鐘頻率 ,比如說 div 值為 1,則輸出時鐘是系統(tǒng)時鐘的二分之一; ? Qout_sin 是正弦波模塊的波形輸出。 圖 320 正弦波軟件流程圖 根據(jù)圖 320 所示軟件流程圖設(shè)計出 正弦波 模塊 的模塊框圖,如圖 321 所示。 。 0:pi*2/127:2*pi 是指從 0 到 錯誤 !未找到引用源。 根據(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 可以看出輸出的波形是標(biāo)準(zhǔn)的三角波,波形從開始的最小值到最大值再從最大值到最小值。 end end endmodule 簡單分析下代碼: tmp_tri 用來記錄時間脈沖的次數(shù),以上升沿方式觸發(fā)計數(shù);在未達(dá)到 8‘b0000_1111 時,輸出上升波形,到達(dá) 8‘b0000_1111 時,輸出下降波形。 25 if(tmp_tri == 0) tri_flag = 0。b0000_1111) tri_flag = 1。 end else begin if(!tri_flag) begin tmp_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è)計了以下代碼: 24 module tri2( SysClk , //系統(tǒng)時鐘 rest , //復(fù)位開關(guān),低電平復(fù)位 div , //分頻 Qout_tri )。 圖 317 三角波模塊原理圖 從圖 317 中來 分析該模塊的輸入輸出模塊以及引腳定義: ? 模塊的輸入變量是:外部基準(zhǔn)時鐘 sysclk,模塊復(fù)位輸入 reset,分頻系數(shù)輸入 div。根據(jù)模塊需求設(shè)計出模塊流程圖如圖316 所示。 圖 315 方波波形仿真圖 從圖 314 中也可以看到和圖 315 同樣的現(xiàn)象每經(jīng)過 16 個周期電平翻轉(zhuǎn)一次,也就是說每 32 個周期產(chǎn)生一個方波波形,完全符合標(biāo)準(zhǔn),另外,其頻率取 23 決于分頻系數(shù) div 和系統(tǒng)輸入時鐘。通過 Modelsim仿真得到圖 314 波形: 圖 314 方波波形仿真圖 從圖 314 中可以看出當(dāng) div=1 和 reset=1 的情況下 clk_out_tmp 是輸入時鐘的一辦,每來 16 個周期 Qout_squ 輸出電平翻轉(zhuǎn)一遍,以產(chǎn)生標(biāo)準(zhǔn) 的方波。 end end 簡單分析下以上代碼: tmp_squ 是用來計內(nèi)部時鐘 clk_out 的脈沖次數(shù),當(dāng)達(dá)到 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) begin if(!rest) begin Qout_squ = 0。 根據(jù)軟件流程圖以及模塊框圖中輸入輸出引腳定義,使用 Verilog 語言設(shè)計了以下核心代碼: //產(chǎn)生方波 reg [7:0] tmp_squ=0。 圖 313 方波模塊原理圖 從圖 313 中來 分析該模塊的輸入輸出模塊以及引腳定義: ? 模塊的輸入變量是:外部基準(zhǔn)時鐘 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ù)。 end end end endmodule 20 從上述代碼可以分析出輸出 Qout_min 從最大的 255 開始遞減,每來一次分頻過的時鐘減 1,一直到 0,然后又恢復(fù)到 255,這樣循環(huán)往復(fù)。b1111_1111。 end else begin tmp_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 決定波形時鐘,其分頻計算公式是: 1d iv ?? 系統(tǒng)時鐘頻率輸出時鐘頻率 ,比如說 div 值為 1,則輸出時鐘是系統(tǒng)時鐘的二分之一 ; ? Qout_min 是減斜波模塊的波形輸出。 18 圖 38 減斜波軟件流程圖 根據(jù)圖 38 所示軟件流程圖設(shè)計出 減斜 波模塊的模塊框圖,如圖 39 所示。 減斜波設(shè)計 減斜波是指波形按照一定的步幅遞減,達(dá)到最高點后又回到最大值的狀態(tài),這樣循環(huán)進行。為了進一步驗證該遞增波形的正確性,我們采用 Quartus II 進行波形仿真,得到的仿真波形圖如圖 37 所示。 設(shè)計測試文件,將 div 設(shè)置為 1 即為 2 分頻, sysclk 設(shè)置周期為 20ns。 17 end else begin Qout_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( SysClk , //系統(tǒng)時鐘 rest , //復(fù)位開關(guān),低電平復(fù)位 div , //分頻 Qout_add //遞增斜波 )。 圖 35 增斜波模塊框圖 從圖 35 中來 分析該模塊的輸入輸出 模塊以及引腳定義: ? 模塊的輸入變量是:外部基準(zhǔn)時鐘 sysclk_in,模塊復(fù)位輸入 reset_in,分頻系數(shù)輸入 div。按照這種思想設(shè)計出來軟件流程圖如圖 34 所示。 綜上所述,該時鐘分頻模塊能夠?qū)⑤斎霑r鐘頻率按照自己系統(tǒng)需求分配出不 15 同頻率。 再用 Quartus II 軟件進行綜合仿真,結(jié)果如圖 33 所示。 end endmodule 從上述激勵中看出, div=1,也就是 2 分頻,系統(tǒng)的運行周期是 20ns。 200。 reset = 1。 div = 0。 initial begin // Initialize Inputs sysclk = 0。 // Instantiate the Unit Under Test (UUT) clk_div uut ( .sysclk(sysclk), .reset(reset), .div(div), .clk_out(clk_out) )。 reg [7:0] div。 // Inputs reg sysclk。 end else count = count + 1。 end else begin if(count=div_2) begin clk_out = ~clk_out。 count = 0。 reg [7:0] div_2。 //reg clk_out_tmp=0。 output clk_out。 input sysclk,reset。根據(jù)這個功能,利用 Verilog 編寫了分頻時鐘模塊。通過 Verilog 語言進行編程來產(chǎn)生各種波形,輸出到D\A 數(shù)模轉(zhuǎn)換模塊,產(chǎn)生模擬波形信號。數(shù)字輸出模塊,將各種波形用數(shù)字進行輸出。 時鐘分頻模塊是
點擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1