




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于基于 fpgafpga 的實用多功能信號發生器的實用多功能信號發生器 的設計與制作的設計與制作 基于基于 fpgafpga 的實用多功能信號發生器的設計與制作的實用多功能信號發生器的設計與制作 摘摘 要要 多功能信號發生器已成為現代測試領域應用最為廣泛的通用儀器之一,代 表了信號源的發展方向。直接數字頻率合成(dds)是二十世紀七十年代初提出 的一種全數字的頻率合成技術,其查表合成波形的方法可以滿足產生任意波形 的要求。由于現場可編程門陣列(fpga)具有高集成度、高速度、可實現大容量 存儲器功能的特性,能有效地實現 dds 技術,極大的提高函數發生器的性能, 降低生產成本。 本文首先介紹
2、了函數信號發生器的研究背景和 dds 的理論。然后詳盡地敘 述了利用 verilog hdl 描述 dds 模塊的設計過程,以及設計過程中應注意的問 題。文中詳細地介紹了多種信號的發生理論、實現方法、實現過程、部分 verilog hdl 代碼以及利用 modelsim 仿真的結果。 文中還介紹了 altera 公司的 de2 多媒體開發平臺的部分功能及使用,并最 終利用 de2 平臺完成了多功能信號發生器的大部分功能。包括由 lcd 顯示和 按鍵輸入構成的人機界面和多種信號的發生。數字模擬轉換器是 burr- brown 公司生產的 dac902。 該信號發生器能輸出 8 種不同的信號,并且
3、能對輸出信號的頻率、相位以 及調制信號的頻率進行修改設定。 關鍵詞關鍵詞:信號發生器;dds;fpga;de2 practical fpga-based multi function signal generator design and production abstract multi function signal generator has become the most widely used in modern testing field of general instrument, and has represented one of the development direct
4、ion of the source. direct digital frequency synthesis (dds) is a totaly digital frequency synthesis technology, which been put forward in the early 1970s. using a look-up table method to synthetic waveform, it can satisfy any requirement of waveform produce. due to the field programmable gates array
5、 (fpga) with high integrity, high speed, and large storage properties, it can realize the dds technology effectively, increase signal generators performance and reduce production costs. firstly, this article introduced the function signal generator of the research background and dds theory. then, it
6、 described how to design a dds module by verilog hdl, and introduced various signal occurs theory, method and the implementation process, verilog hdl code and simulation results. this paper also introduces the function of de2 multimedia development platform, and completed most of the functions of mu
7、lti-function signal generator on de2 platform finally. including the occurrence of multiple signal and the man- machine interface which composed by lcd display and key input. digital-to-analog converters is dac902, which produced by company burr-brown. this signal generator can output eight differen
8、t kinds of signals, and the frequency of the output signal, phase and modulation frequency signal also can be modifyed. key words: signal generator; dds; fpga; de2 目目 錄錄 論文總頁數:34 頁 1 引言.1 1.1 課題背景 .1 1.2 國內外波形發生器的發展現狀 .1 1.3 本文研究的主要內容 .2 2 信號發生器原理.2 2.1 直接數字頻率合成技術的基本原理 .2 2.2 相位偏移控制.3 2.3 多種信號的發生 .3
9、 2.3.1 方波的發生 .3 2.3.2 三角波發生 .4 2.2.3 鋸齒波發生 .4 2.3.4 pwm 信號發生 .4 2.3.5 spwm 信號發生 .5 2.3.6 am 信號發生 .5 2.3.7 fm 信號發生 .6 2.4 dds 的特點.7 2.4.1 dds 的優點.7 2.4.2 dds 系統的缺點.7 3 系統整體設計.8 3.1 硬件部分 .8 3.1.1 de2 實驗板 .8 3.1.2 lcd 模塊 .9 3.1.2 dac902.11 3.2 基于 verilog 的 fpga 設計 .12 3.3 軟件工具 .12 3.3.1 modelsim.12 3.3
10、.2 quartus.12 3.4 系統設計 .13 3.4.1 系統初始化模塊.13 3.4.2 按鍵模塊和 lcd 模塊 .13 3.4.3 ram 模塊 .14 3.4.4 數據轉換模塊 .15 3.4.5 dac 驅動模塊 .15 3.4.6 系統的運行 .15 4 verilog hdl 代碼實現與仿真 .15 4.1 信號發生器模塊 .15 4.1.1 頻率控制字和相位累加器 .15 4.1.2 相位偏移控制.16 4.1.3 正弦波發生模塊 .17 4.1.4 方波發生模塊.17 4.1.5 三角波發生模塊.18 4.1.6 鋸齒波發生模塊.18 4.1.7 pwm 信號發生模塊
11、 .19 4.1.8 spwm 信號發生模塊 .19 4.1.9 am 信號發生模塊 .20 4.1.10 fm 信號發生模塊 .21 4.2 按鍵輸入模塊.22 4.3 lcd 顯示模塊 .23 4.4 ram 模塊 .24 4.5 數據轉換模塊.25 5 系統測試.26 5.1 控制及顯示部分測試.27 5.2 輸出頻率測試.27 5.3 信號發生測試 .28 5.3.1 正弦波、方波、三角波、鋸齒波測試.28 5.3.2 pwm 信號測試 .29 5.3.3 spwm 信號測試 .29 5.3.4 am 信號測試 .29 5.3.5 fm 信號測試 .30 結 論.31 參考文獻.32
12、致 謝.33 聲 明.34 1 引言引言 1.1 課題背景課題背景 傳統的信號發生器主要有兩類:正弦波和脈沖波,而函數發生器介于兩類 之間。它能夠提供正弦波、余弦波、方波、三角波等幾種常用標準波形,產生 其它波形時,需要采用較復雜的電路和機電結合的方法。這個時期的波形發生 器多采用模擬電子技術,但是模擬器件構成的電路存在著尺寸大、價格貴、功 耗大等缺點。而且要產生的信號波形越復雜,則電路結構也會越復雜。同時還 有兩個突出問題,一是通過電位器的調節來實現輸出頻率的調節,因此很難將 頻率調到某一固定值;二是脈沖的占空比不可調節。 現代科學技術的飛速發展對信號源提出了越來越高的要求。這些要求主要 表
13、現在高分辨率、高輸出頻率、任意波形等方面。此時傳統的信號發生器已經 無法滿足要求。 直接數字頻率合成1(direct digital synthesizer 簡稱 dds)技術是一種新 的全數字的頻率合成原理,它從相位的角度出發直接合成所需波形。這種技術 由美國學者 jtiercy,mrader 和 bgold 于 1971 年首次提出,但限于當時 的技術和工藝水平,dds 技術僅僅在理論上進行了一些探討,而沒有應用到實 際中去。但是隨著電子技術的飛速發展,微處理器性能大幅提高,高速的 da 以及隨機存儲器大量涌現,dds 技術已經變得很容易實現。它已廣泛應用于通 訊、雷達、遙控測試、電子對抗
14、以及現代化的儀器儀表工業2等許多領域。將 其與簡單電路相結合就可以精確模擬仿真各種信號。 不論是在生產、實驗還是在科研與教學上,多功能信號發生器都是用于仿 真實驗的最佳工具。隨著我國經濟和科技的發展,對相應的測試儀器和測試手 段也提出了更高的要求,多功能信號生器己成為測試儀器中至關重要的一類, 因此開發多功能信號發生器具有重大意義。 1.2 國內外波形發生器的發展現狀國內外波形發生器的發展現狀 早在 1978 年,由美國 wavetek 公司和日本東亞電波工業公司公布了最高取 樣頻率為 5mhz,可以形成 256 點波形數據,垂直分辨率為 8bit,主要用于振 動、醫療、材料等領域的第一代高性
15、能信號源。經過將近 30 年的發展,伴隨著 電子元器件、電路、及生產設備的高速化、高集成化,信號發生器的性能有了 飛速的提高。信號發生器變得操作越來越簡單而輸出波形的能力越來越強。 90 年代末,出現幾種真正高性能、高價格的函數發生器,如 hp 公司推出 了型號為 hp770s 的信號模擬裝置系統。它由 hp9770a 任意波形數字化和 hpl776a 波形發生軟件組成。hp8770a 實際上也只能產生 8 種波形,而且價格 昂貴。不久以后,analogie 公司推出了型號為 data-2020 的多波形合成器, lecroy 公司生產的型號為 9100 的任意波形發生器等。 到了二十一世紀,
16、隨著集成電路技術的高速發展,出現了多種工作頻率可 達到 ghz 水平的 dds 芯片,同時也推動了函數波形發生器的發展。2003 年, agilent 公司的產品 33220a 能夠產生 17 種波形,最高頻率可達到 20m,2005 年的產品 n6030a 能夠產生高達 500mhz 的頻率,采樣的頻率可達 1.25ghz。 1.3 本文研究的主要內容本文研究的主要內容 (1) 熟悉 fpga 技術,學習 verilog 語言及仿真工具 modelsim 和綜合工具 quartus ii 的使用; (2) 熟悉 de2 平臺的使用,并學會利用 de2 平臺進行系統設計和開發; (3) 對 d
17、ds 理論進行研究和分析,選擇一種適合于 fpga 實現的方案; (4) 設計一個完整的實用的信號發生器系統,包括多種信號的發生、lcd 顯示及按鍵控制等; (5) 利用 de2 平臺實現信號發生器系統。 2 信號發生器原理信號發生器原理 2.1 直接數字頻率合成技術的基本原理直接數字頻率合成技術的基本原理 直接數字頻率合成技術是根據奈奎斯特取樣定理,從連續信號的相位 出 發將一個信號取樣、量化、編碼,最后形成一個信號函數表,并且事先存于 rom 中。在信號合成時,通過改變相位累加器的頻率控制字,來改變相位增 量,而相位增量的不同將導致一個周期內取樣點的不同,從而改變頻率。具體 的 dds 實
18、現時,是通過在采樣頻率不變的情況下,改變相位累加器的頻率控制 字,將這種變化的相位、幅值量化的數字信號通過 da 變換及濾波,最終得到 合成的模擬信號。 r o m d a 圖 2-1 dds 的基本結構圖 dds 主要由相位累加器、波形 rom、dac 以及低通濾波器等組成,如圖 2-1 所示。位相位累加器的位數為 n,每一個取樣時鐘相位累加器都會對頻率控 制字 k 進行累加。相位累加器的高位輸出作為波形 rom 的地址,從而實現了 波形相位到幅值的轉換。波形數據經 dac 轉換得到階梯狀的信號,通過濾波 器輸出相對平滑的波形。 如果相位累加器的長度為 n 位,時鐘脈沖頻率為,頻率控制字為
19、k, c f 這時可得 dds 的輸出頻率如公式 2-1 所示。 (2-1) c n o f k f 2 由公式 2-1 可以看出,相位累加器的長度 n 決定了累加器輸出的數字階梯 波的頻率精度。而且 n 越大,得到波形的頻率精度就越高。另 k=1,即可得到 dds 的頻率分辨率如公式 2-2 所示。 (2-2) c n l ff 2 1 由 dds 的結構可以看出 dds 輸出信號的頻率分辨率是由相位累加器的位 數 n 決定,相位分辨率由 rom 的尋址位數決定,而幅值分辨率是由 dac 的 數據位數所決定。 2.2 相位偏移控制相位偏移控制 由相位累加器送出的相位(地址)經過查表進行從相位
20、到幅度的轉換就可 以得到需要的正弦波。若在相位累加器的輸出相位上加上一個小的數值,那么 查表后得到的數據也會相應的超前,也就是說此時的輸出波形的相位會相對于 原來的波形超前。而且這個超前的相位值應該是和在相位加器輸出相位上加的 數值成正比的。 設相位累加器輸出的相位是 n 位,當在當前相位累加器輸出的相位上疊加 一個大小為 p 的數值后,現在輸出波形的相位相對于先前的相位就超前,如p 公式 2-3 所示。 (2-3)pp n 2 360 2.3 多種信號的發生多種信號的發生 對于正弦波的發生,通常都采用上述查表的方法。當然這種方法也實用于 其它的波形的發生。但是考慮到各種不同的波形的特點,也可
21、以采用更為簡便 的方法得到。 2.3.1 方波的發生方波的發生 同樣取相位累加器的最高幾位作為方波發生器的地址。根據相位累加器的 原理可知,該地址是隨時間線性變化的, 如圖 2-2 所示。假設 ob 正好為輸出波 形的一個周期,那么在 b 點時地址應該 剛好計滿,即地址的每一個二進制位都 是 1。那么可知在 ob 的中點 a 處以前地 址的最高位都為 0,而在 a 點以后的地 址最高位都為 1。 利用這一特點,可以隨時檢查地址 的最高位的電平。當最高位為低電平時 o ab a b o 0 xxxxxx1xxxxxx 2-2 圖 2-2 方波的發生 (為 0 時) ,則說明此時處于方波前半個周期
22、,這時輸出全部置 1,輸出波形為 高電平。反之,當地址的最高位為高電平(為 1)時,輸出全部置 0,輸出波形 為低電平。這樣便可得到占空比為 50%的標準方波,而且該方波的頻率正好等 于相位累加器的溢出率。 2.3.2 三角波發生三角波發生 同樣取相位累加器的最高幾位作為三角波發生器的地址。設 ob 正好為一個 周期。 在前半個周期輸出波形與地址的波 形是一致的。利用這一點可以直接將地 址信號作為輸出信號送出。在后半周期 地址信號波形與輸出波形不相同,但是 可以明顯的看出二者的斜率正好相反。 此時若將地址信號全部按位取反,就可 以得到輸出波形,如圖 2-3 所示。 檢查地址信號的最高位的電平變
23、化情況。當最高位為低電平時,直接將地 址信號作為輸出信號送出;當最高位為高電平時,將地址信號全部按位取反再 輸出。這樣就可以得到一個頻率正好等于相位累加器的溢出率的標準三角波。 2.2.3 鋸齒波發生鋸齒波發生 鋸齒波的波形與三角波的前半個周期相同,因此可以采用同樣的發生方式。 取相位累加器的最高幾位作為地址,并將地址信號直接輸出就可以得到鋸齒波。 同理,產生的鋸齒波的頻率也正好等于相位累加器的溢出率。 2.3.4 pwm 信號發生信號發生 脈沖寬度調制(pwm),是英文 pulse width modulation 的縮寫,簡稱脈寬調 制,是利用微處理器的數字輸出來對模擬電路進行控制的一種非
24、常有效的技術, 廣泛應用在從測量、通信到功率控制與變換的許多領域中。實際應用中通常是 使用一個高精度的計數器來實現的。 這里直接取相位累加器的最高幾位作 為計數器。同時還需要一個寄存器用于存 放脈寬值。將計數器的值與寄存器的值作 比較。當計數器值小于寄存器值的時候, 輸出為高電平;當計數器的值大于寄存器 的值的時候,輸出翻轉為低電平。這樣就 能得到一個 pwm 信號,而且該信號的脈 寬取決于寄存器中數值的大小。當寄存器 o ab 2-3 a o 2-4 pw m 圖 2-3 三角波的發生 圖 2-4 pwm 信號的發生 值增加,則輸出波形脈寬增大;當寄存器值減小,則輸出波形的脈寬減小,如 圖
25、2-4 所示。 2.3.5 spwm 信號發生信號發生 所謂 spwm,就是在 pwm 的基礎上改變了調制脈沖方式,脈沖寬度時間 占空比按正弦規率排列,這樣輸出波形經過適當的濾波可以做到正弦波輸出。 它廣泛地用于直流交流逆變器等,比如高級一些的 ups 就是一個例子。三相 spwm 是使用 spwm 模擬市電的三相輸出,在變頻器領域被廣泛的采用。 spwm 信號可以通過一個頻率較低的正弦信號與另一個頻率較高的三角波 信號做比較得到。把正弦波看作調制信號, 三角波看作載波,將二者經過比較器調制 得到 spwm 信號。但是這種方法比較麻煩, 所以這里借鑒了前面所用過的 pwm 的發 生方式。產生
26、pwm 波形的時候需要一個 寄存器用于存放脈寬值,通過修改該寄存 器的值就可以修改輸出波形的脈寬。那么, 如果當該寄存器的值按正弦規律變化的話, 輸出波形的脈寬值也會按正弦規律變化, 如圖 2-5 所示。 同樣取相位累加器的最高幾位作為計數器,而該相位累加器的溢出率就相 當于是載波的頻率。調制信號的發生可以采用前面的正弦波的發生方式。但是 這里需要另外一個獨立的相位累加器專門為正弦波發生器提供地址信號,該相 位累加器的溢出率就是調制信號的頻率。再將正弦波值送到控制脈寬的寄存器, 經過與計數器的比較就可以得到一個 spwm 信號。 2.3.6 am 信號發生信號發生 在線性調制系列中,最先應用的
27、一種幅度調制是全調幅或常規調幅,簡稱 為調幅(am) 。不但在頻域中已調波頻譜是基帶調制信號頻譜的線性位移,而 且在時域中,已調波包絡與調制信號波形呈線性關系。 設調制信號為 (2-4))cos()(tutu m 載波信號為 (2-5))cos()(tutu ccmc 根據調幅波的振幅與調制信號成正比,所以可得調幅波的表達式為 4 (2-6))cos()()(ttukutu cacmam a o 2-5 spw m 圖 2-5 spwm 信號的發生 調幅系數為 (2- cm ma a u uk m 7) 在這里的正弦波的變化范圍都是從 到,如圖 2-6(a)所示。但是實際制 m u m u 作
28、時的正弦波需要由前面講過的正弦波發 生器來產生,它的變化范圍是 0 到(n n 2 為 rom 中存儲的數據的位數) ,如圖 2-6(b)所 示。 令,則可得到 1 2 n cm u (2- 1 2)()( n trtu 8) 于是調幅波的表達式可以表示為 (2-9) 1 1 11 2 2)( )2)(2)( n n n a n am tr trktu 由于輸出信號不能小于零,所以還要在上疊加一個大小為的一)(tuam 1 2 n 個直流分量。同時令=1,則可得 a k (2-10))(2 2 )()( 2)()( 1 1 1 tr trtr tutu n n n amout 其中,是調制信號
29、, 是載波信號,兩路信號都必須由兩個完全)(tr)(tr 獨立的電路產生。 2.3.7 fm 信號發生信號發生 fm 信號即頻率調制信號,它的特點是載波的頻率會隨調制信號的幅度變 化而發生相應的偏移。 設調制信號為 (2-11))cos()(tutu m 載波信號為 (2-12))cos()( 0 tutu ccmc 則調頻信號可以表示為 (2-13) t fcmfm dttukutu 0 )(cos)( 但是實際上這樣做起來會十分地復雜。根據前面的正弦波發生原理,輸出 n 2 1 2 n 0 0 (a) (b) (a) (b)rom m u m u u(t ) r(t ) 2-6 圖 2-6
30、 兩種正弦波 正弦波的頻率是由頻率控制字來決定,而且輸出頻率是隨頻率控制字的變化做 線性變化。所以將調制信號直接作用于頻率控制字就可以輸出調頻信號。 設在沒有調制信號的時候頻率控制字為,當輸入調制信號后就可得 0 kk 到 (2-14))( 0 tkukk 在實際的正弦波發生器中產生的正弦波的變化范圍是 0 到(n 為)(tr n 2 rom 中存儲的數據的位數),所以可得到 (2-15)2)( 1 0 n trkkk 其中調制信號必須由另外的獨立的電路來產生。)(tr 2.4 dds 的特點的特點 2.4.1 dds 的優點的優點 由于 dds 自身的數字化結構,它具有下列優點: (1)頻率
31、分辨率高。從公式 2-2 可知,相位累加大的位數越多,輸出的信 號的精度就會越高。 (2)頻率轉換時相位保持連續。在進行頻率轉換時只需要修改頻率控制字, 而相位累加器中的值不會發生跳變。因此輸出的信號的相位也不會發生跳變。 (3)頻率切換時間短。通常頻率控制字的傳輸時間及以低通濾波為主的器 件響應時間很短,因此高速 dds 系統的頻率切換時間可以達到 ns 級。 (4)輸出的頻率范圍寬。dds 輸出的頻率最低一般可達到幾 hz,有的甚 至可以達到 1hz 以下。而輸出的最高頻率可達到系統時鐘的一半。 (5)可以用于產生任意波形。通過事先在 ram 中存儲波形,或通過一些 數字合成的方式,dds
32、 可以產生任意波形。 2.4.2 dds 系統的缺點系統的缺點 從理論上說,dds 的最高輸出頻率只能達到系統時鐘頻率的一半,而且在 實際應用中還要小于此值。要想獲得較高的輸出頻率,就必須提高系統的時鐘 頻率,那么 dds 系統的相位累加器、波形存儲器、d/a 轉換器等都必須同時 工作在較高的時鐘頻率下。這樣的話,它的實現就依賴于高速數字電路和高速 d/a 轉換器。這也是 dds 系統在早期沒有得到重視,直到最近幾年才迅速發 展的原因。同時,dds 系統先采用數字技術構成離散信號,再將該離散信號變 換成模擬信號輸出。在此過程中必然會產生一定的誤差,尤其是要產生相位截 斷誤差,因而噪聲和雜散是不
33、可避免的。 3 系統整體設計系統整體設計 3.1 硬件部分硬件部分 3.1.1 de2 實驗板實驗板 de2 開發板是 altera 公司針對大學教學及研究機構推出的 fpga 多媒體開 發平臺。de2 為用戶提供了豐富的外設及多媒體特性,并具有靈活而可靠的外 圍接口設計。de2 能幫助使用者迅速理解和掌握實時多媒體工業產品設計的技 巧,并提供系統設計的驗證。de2 平臺的設計和制造完全按照工業產品標準進 行,可靠性很高3。 圖 3-1 de2 實驗板 de2 平臺上提供的資源如下: (1) altera cyclone ii 系列的 ep2c35f672c6 fpga,內含 35 000 個
34、邏輯單元 (le); (2) 主動串行配置器件 epcs16u30; (3) 板上內置用于編程調試和用戶 api 設計的 usb blaster,支持 jtag 模 式和 as 模式; (4) 512k 字節 sram; (5) 8m 字節 sdram; (6) 1m 字節閃存(可升級至 4m 字節); (7) sd 卡接口; (8) 4 個按鍵 key0key3; (9) 18 個撥動開關 sw0sw17; (10) 9 個綠色 led 燈 ledg0ledg8; (11) 18 個紅色 led 燈 ledr0ledr17; (12) 兩個板上時鐘源(50mhz 晶振和 27mhz 晶振),
35、也可以使用外部時鐘; (13) 24 位 cd 品質音頻的編/解碼器 wm8371,帶有麥克風的輸入插座、線 路輸入插座和線路輸出插座; (14) vga dac adv7123 (含有 3 個 10 位高速 dac)及 vga 輸出接口; (15) 支持 mtsc 和 pal 制式的 tv 解碼器 adv7181 及 tv 接口; (16) 10m/100m 以太網控制器 dm9000ae 及網絡接口; (17) usb 主從控制器 isp1362 及接口; (18) rs232 收發器 max232 及接口; (19) ps2 鼠標/鍵盤連接器; (20) irda 收發器; (21) 帶
36、二極管保護的兩個 40 腳擴展端口 gpio; (22) 216 字符的 lcd 模塊; (23) 平臺通過插座接入直流 9v 供電,并有電源總開關; 圖 3-2 de2 板上的資源 3.1.2 lcd 模塊模塊 數據顯示采用 de2 板上自帶的 lcd。該 lcd 模塊能顯示各種 ascii 字符, 每一行能顯示 16 個字符,共顯示兩行,一共能顯示 32 個字符。模塊內部帶有 ascii 碼字庫,不需要外部提供。模塊提供了 8 位并行和串行兩種通信方式, 使用靈活。 圖 3-3 lcd 結構 lcd 模塊內部有一個指令寄存器和一個數據寄存器,分別用于存入指令和 數據。當管腳 rs 為 0
37、時,對模塊內部的指令寄存器操;當管腳 rs 為 1 時,對 模塊內部的數據寄存器操作。管腳 r/w 為 0 明表示對模塊進行寫操作,管腳 r./w 為 1 時表示對模塊進行讀操作。這里只對模塊進行寫操作,具體的時序如 圖 3-4 所示。 圖 3-4 lcd 寫時序 表 3-1 lcd 寫時序中的各種時間的意義及值的大小 3.1.2 dac902 dac902 是高速的 12 位數字模擬轉換器,最高轉換速率可達 165msps。dac902 輸出電流信號,有較高的輸出阻抗(200k),輸出電流可達 20ma。 dac902 的輸出電流是兩路互補輸出的電流的總和。 (3-1) outoutoutf
38、s iii 具體的輸出電流決定于送入 dac 數據的大小, (3-2)4096/(codeii outfsout (3-3)4096/4096(codeii outfsout 其中,code 是 dac 的數據輸入字符的十進制表示形式。此外,是 outfs i 參考電流的 100000 倍,是由參考電壓和外部設置電阻,電流設置確定的。 (3-4) setrefoutfs rvi/32 在輸出時需要一個負載電阻將電流信號轉化面電壓信號。那么最終輸出為 公式 3-5 和公式 3-6。 (3-5) loadoutout riv (3-6) loadoutout riv dac902 的寫操作非常簡單
39、。將 12 位數據送到數據端口,通過控制時鐘信 號的變化就可以將數據寫入,如圖 3-5 所示。 3-5 d ac 圖 3-5 dac 寫時序 表 3-2 dac 寫時序中的各時間的意義 symboldescriptionmintypmaxunits t1clock pulse high time3.0ns t2clock pulse low time3.0ns tsdata setup time1.5ns thdata hold time2.5ns tpdpropagation delay time(t1+t2)+1ns tsetoutput setting time to 0.1%30.0n
40、s 3.2 基于基于 verilog 的的 fpga 設計設計 verilog hdl 是目前應用最為廣泛的硬件描述語言。verilog hdl 可以用來 進行各種層次的邏輯設計,也可以進行數字系統的邏輯綜合,仿真驗證和時序 分析等。 verilog hdl 適合算法級,寄存器級,邏輯級,門級和版圖級等各個層次 的設計和描述。verilog hdl 進行設計最大的優點是其工藝無關性。這使得工 程師在功能設計,邏輯驗證階段可以不必過多考慮門級及工藝實現的具體細節, 只需根據系統設計的要求施加不同的約束條件,即可設計出實際電路。 verilog hdl 是一種硬件描述語言(hardware des
41、cription language),為了制作 數字電路而用來描述 asics 和 fpga 的設計之用。verilog 的設計者想要以 c 編程語言為基礎設計一種語言,可以使工程師比較容易學習。 3.3 軟件工具軟件工具 3.3.1 modelsim mentor 公司的 modelsim 是業界最優秀的 hdl 語言仿真軟件,它能提供友 好的仿真環境,是業界唯一的單內核支持 vhdl 和 verilog 混合仿真的仿真器。 它采用直接優化的編譯技術、tcl/tk 技術、和單一內核仿真技術,編譯仿真速 度快,編譯的代碼與平臺無關,便于保護 ip 核,個性化的圖形界面和用戶接口, 為用戶加快調
42、錯提供強有力的手段,是 fpga/asic 設計的首選仿真軟件。 3.3.2 quartus altera 的 quartus ii 可編程邏輯軟件屬于第四代 pld 開發平臺。該平臺支 持一個工作組環境下的設計要求,其中包括支持基于 internet 的協作設計。 quartus 平臺與 cadence、exemplarlogic、 mentorgraphics、synopsys 和 synplicity 等 eda 供應商的開發工具相兼容。改進了軟件的 logiclock 模塊設 計功能,增添了 fastfit 編譯選項,推進了網絡編輯性能,而且提升了調試能力。 quartusii des
43、ign 提供完善的 timing closure 和 logiclock 基于塊的設計流 程。quartusii design 是唯一的一個包括以 timing closure 和基于塊的設計流為基 本特征的 programmable logic device (pld)的軟件。 quartus ii 設計軟件改進了 性能、提升了功能性、解決了潛在的設計延遲等,在工業領域率先提供 fpga 與 mask-programmed devices 開發的統一工作流程。 quartus ii 作為一種可編程邏輯的設計環境, 由于其強大的設計能力和直觀 易用的接口,越來越受到數字系統設計者的歡迎。 3.
44、4 系統設計系統設計 系統的設計主要是基于 de2 實驗平臺,具有友好的人機交互界面。具體包 括了按鍵輸入、lcd 顯示、系統初始化、ram、數據轉換處理、信號發生器、 dac 轉換幾個模塊,如圖 3-6 所示。系統時鐘選用 de2 上自帶的 50mhz 時鐘 信號。 lc d d ac r am 3-6 圖 3-6 系統總框圖 3.4.1 系統初始化模塊系統初始化模塊 當系統剛啟動時,ram 中并沒有任何數據。但是其它幾個模塊的運行卻必 須依賴于 ram 中的數據。為解決這個問題,這里專門設計了一個系統初始化 模塊。 模塊內部包括一塊 rom 和 ram 的寫時序控制電路。rom 包括 32
45、 個 8 位 的靜態存儲器,能存放 32 個 ascii 代碼,用于存放初始化數據。該初始化數 據主要用于 lcd 顯示,其中包括了頻率、相位和波形發生方式的默認值。 ram 的寫時序控制電路用于將 rom 中的數據寫入 ram。 3.4.2 按鍵模塊和按鍵模塊和 lcd 模塊模塊 de2 實驗板上共有四個按鍵,分別是 key0 到 key3,如圖 3-7 所示。在 普通模式下 key1 和 key2 用于波形發生模式的切換,并能過波形發生模式的 切換輸出不同的波形。在此模式下按下 key0 就可以進入編程模式。在該模式 下可以通過 key1 和 key2 對頻率或相位進行修改。key3 可以
46、使光標向左移 動。在此模式下專門增加了一個撥碼開關 sw0 用于光標在上下行之間的切換。 此時按下 key0 可以返回普通模式,同時還可以將設定好的波形輸出。 lcd 顯示模塊會不停的將 ram 中的 ascii 數據送到 lcd 顯示。圖 3-8 所 示為剛初始化完成時 lcd 顯示內容。第一行顯示的數值為輸出信號的頻率,在 spwm、am、fm 三種波形發生模式下表示載波頻率。第二行左邊的數值在不 圖 3-7 按鍵示意圖 key0key1key2key3 f : 0 , 0 0 1 , 0 0 0 h z p : 0 , 0 0 0s i n e 圖 3-8 初始化時的 lcd 顯示 同的
47、波形發生模式下表示不同的意義。在正弦波、方波、三角波、鋸齒波四種 波形發生模式下,該數據表示輸出波形的偏移相位(數據范圍是 0 到 360,單 位是度) ;在 pw 波形發生模式下該數據表示輸出波形的占空比(數據范圍是 0%到 100%) ;在 spwm、am、fm 發生模式下該數據表示調制信號的頻率(單位是 hz) 。各種波形發生方式的顯示內容如表 3-3 所示。 表 3-3 各種波形發生模式與 lcd 顯示的對照 編號01234567 波形發生模式正弦波方波三角波鋸齒波pwmspwmamfm 顯示內容sinesquatriasawtpwmspwmamfm 3.4.3 ram 模塊模塊 在系
48、統的 7 個模塊中,ram 處于中心位置。它是由 32 個 8 位存儲器構成, 能存儲 32 個 ascii 代碼。它在系統中起著數據存儲、各模塊間數據交流以及 協調各模塊間的有序運行的作用。ram 的數據交流功能包括: (1)在系統啟動時由初始化模塊將初始化數據寫入 ram; (2)lcd 顯示模塊從 ram 中讀出數據并顯示; (3)按鍵模塊從 ram 中讀出數據,修改后又寫回 ram; (4)數據處理模塊從 ram 中讀出數據并轉換。 ram 它的協調作用包括: (1)在系統初始化完成之前禁止其它所有模塊對它的所有讀寫操作; (2)當有按鍵操作時關閉 lcd 顯示模塊和數據轉換模塊; (
49、3)當數據處理模塊運行時關閉 lcd 顯示模塊; (4)協調各模塊間的地址和數據信號。例如:lcd 顯示時,需要將 lcd 顯示地址送入,同時將得到的數據送到 lcd 的數據端口;而在數據處理時則需 要將要處理數據的地址送入,同時將得到的數據送到數據處理模塊的相應端口。 3.4.4 數據轉換模塊數據轉換模塊 ram 中存儲的數據全部為 ascii 數據,數據轉換模塊會將 ram 中對應位 置的 ascii 數據轉換為二進制的頻率或相位數據。 3.4.5 dac 驅動模塊驅動模塊 要實現 da 轉換首先需要將數字信號送到 dac 的數字輸入端。這里利用 de2 實驗板上提供的普通 io 口(gp
50、io_1)作為與 dac 芯片的連接端口。其中 dac 時鐘采用系統時鐘。 bi t 1 cl k bi t 2 +vd bi t 3 d g n d bi t 4 n c bi t 5 +va bi t 6 byp bi t 7 i out bi t 8 ! i out bi t 9 ag n d bi t 10 bw bi t 11 fsa bi t 12 r ef n c i n t/ ext n c pd i o 0 i o 1 i o 2 i o 3 i o 4 i o 5 i o 6 i o 7 i o 8 i o 9 v c c 5 g n d i o 10 i o 11 i o
51、 12 i o 13 i o 14 i o 15 i o 16 i o 17 i o 18 i o 19 i o 20 i o 21 i o 22 i o 23 i o 24 i o 25 v c c 33 g n d i o 26 i o 27 i o 28 i o 29 i o 30 i o 31 i o 32 i o 33 i o 34 i o 35 圖 3-9 gpio 與 da 的連接 3.4.6 系統的運行系統的運行 系統的運行主要包括以下幾種情形: (1) 系統剛啟動時,系統初始化模塊將初始化數據寫入 ram; (2) lcd 顯示模塊實時將 ram 中的 ascii 字符直接顯
52、示出; (3) 在按鍵操作時直接修改 ram 中的相應數據; (4) 在按鍵操作完成后,數據轉換處理模塊要將 ram 中的 ascii 代碼轉換 成相應的頻率值或相位值,同時將該頻率值或相位值送到信號發生器; (5) 信號發生器根據得到的頻率或相位值產生相應的信號,該信號最后將 通過 dac 驅動模塊送到外部 dac 進行 da 轉換。 4 verilog hdl 代碼實現與仿真代碼實現與仿真 4.1 信號發生器模塊信號發生器模塊 4.1.1 頻率控制字和相位累加器頻率控制字和相位累加器 根據公式 2-1 可得 (4-1) c o n f f k 2 取相位累加器的位數 n=32,verilo
53、g hdl 代碼如下: module fre_ctrl(fre, fre_word); input 19:0fre; /頻率值 output 31:0fre_word; /頻率控制字 assign fre_word = 64h1_0000_0000 * fre / 32d50_000_000; endmodule 為相位累加器代碼如下: module phase_adder(clk, rest,fre_word, add_phase); input clk,rest; input 31:0fre_word; output 12:0add_phase; reg 31:0a; /累加器寄存器 as
54、sign add_phase = a31:19; / 輸出地址 always(posedge clk,negedge rest) begin if(!rest) a = 32h0; else a = a + fre_word; end endmodule 兩個模塊的 modelsim 仿真結果如圖 4-1 所示。 圖 4-1 相位累加器的仿真結果 4.1.2 相位偏移控制相位偏移控制 由式公式 2-3 可得公式 4-2。 (4-2)pp n 360 2 取相位累加器的輸出相位位寬為 n=13 得到 verilog hdl 代碼如下: module phase_ctrl(set_phase,ad
55、d_phase,phase); input 8:0set_phase; /設定的相位超前量 input 13:0add_phase; /相位累加器的輸出相位 output 8:0phase; /輸出相位 assign phase12:3 = add_phase12:3 + (18d512 * set_phase)/9d360; assign phase2:0 = add_phase2:0; endmodule 模塊的 modelsim 仿真結果如圖 4-2 所示。 4-2 圖 4-2 相位偏移控制的仿真結果 4.1.3 正弦波發生模塊正弦波發生模塊 正弦波的每個周期采樣 512 個點,數據位寬
56、為 12 位。rom 中存儲了一個 完整的周期。 正弦波發生器模塊的 verilog hdl 代碼如下: module sine_gene(phase,sine_out); input 8:0phase; output 11:0sine_out; sine_rom sinerom(phase,sine_out); endmodule 模塊的 modelsim 仿真結果如圖 4-3 所示。 圖 4-3 正弦波發生模塊仿真結果 4.1.4 方波發生模塊方波發生模塊 verilog hdl 代碼如下: module square_gene(phase,square_out); input 8:0ph
57、ase; output 11:0square_out; reg 11:0square_out; always (*) begin if(phase8) square_out = 12h000; else square_out = 12hfff; end endmodule 模塊的 modelsim 仿真結果如圖 4-4 所示。 圖 4-4 方波發生模塊仿真結果 4.1.5 三角波發生模塊三角波發生模塊 三角波發生模塊 verilog hdl 代碼如下: module triangle_gene(phase,triangle_out); input 12:0phase; output 11:0t
58、riangle_out; reg 11:0triangle_out; always (*) begin if(phase12) triangle_out = phase11:0; else triangle_out = phase11:0; end endmodule 模塊的 modelsim 仿真結果如圖 4-5 所示。 圖 4-5 三角波發生模塊的仿真結果 4.1.6 鋸齒波發生模塊鋸齒波發生模塊 鋸齒波發生模塊 verilog hdl 代碼如下: module sawtooth_gene(phase,sawtooth_out); input 11:0phase; output 11:0s
59、awtooth_out; reg 11:0sawtooth_out; always (*) begin sawtooth_out = phase; end endmodule 模塊的 modelsim 仿真結果如圖 4-6 所示。 圖 4-6 鋸齒波發生模塊仿真結果 4.1.7 pwm 信號發生模塊信號發生模塊 pwm 發生模塊 verilog hdl 代碼如下: module pwm_gene(dutycycle,phase,pwm_out); input 7:0dutycycle; input 8:0phase; output 11:0pwm_out; reg 11:0pwm_out; w
60、ire 8:0pw; assign pw = (dutycycle%100)*512/100; always * begin if(phase pw) pwm_out = 12hfff; else pwm_out = 12h000; end endmodule 當輸出頻率為 10khz、占空比為 30%時的 modelsim 仿真結果如圖 4-7 所示。 圖 4-7 pwm 信號發生模塊仿真結果 4.1.8 spwm 信號發生模塊信號發生模塊 spwm 發生模塊 verilog hdl 代碼如下: module spwm_gene(pw,phase,spwm_out); input 11:0p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年美容師(中級)美容師美容院行業社會責任感技能鑒定試卷
- 2025年征信考試題庫(征信產品創新與應用)征信產品創新與政策法規試題
- 鋼琴介紹圖文課件
- 中醫兒科乳蛾
- 金桔兒童畫課件
- 重陽節兒童美術課件圖片
- 采山說課課件
- 酒店消防知識課件
- 酒廠安全培訓課件
- 配送管理課件
- 2025-2030中國轉輪除濕機行業前景動態及投資規劃分析報告
- 八年級上冊語文必背課文資料合集
- 針灸醫學的歷史回顧之古代名醫的針灸先例
- 【艾瑞咨詢】2024年中國健康管理行業研究報告494mb
- 年產xxx千件自行車配件項目可行性研究報告
- DZ/T 0261-2014滑坡崩塌泥石流災害調查規范(1∶50 000)
- T/CQAP 3014-2024研究者發起的抗腫瘤體細胞臨床研究細胞制劑制備和質量控制規范
- 初中體育教學中德育教育的現狀、問題與突破路徑探究
- 基層供銷社管理制度
- 農業供應鏈管理考試試題及答案
- 人行雨棚施工方案
評論
0/150
提交評論