如何進(jìn)行芯片設(shè)計(jì)?手把手教你DDS芯片設(shè)計(jì)
芯片設(shè)計(jì)在芯片行業(yè)具有重要地位,對(duì)于芯片設(shè)計(jì),大家或多或少有所耳聞。為增進(jìn)大家對(duì)芯片設(shè)計(jì)的了解,本文將介紹基于模型的DDS芯片設(shè)計(jì)以及它的實(shí)現(xiàn)。如果你對(duì)芯片設(shè)計(jì)過(guò)程存在興趣,不妨繼續(xù)往下閱讀哦。
一、引言
1971 年,美國(guó)學(xué)者J.TIerncy.C.M.Rader 和B. Gold 應(yīng)用全數(shù)字技術(shù),從相位概念出發(fā)給出了直接合成波形的一種新的頻率合成原理, 這就是DDS ( Direct DIGITAL Synthesizer),直接數(shù)字合成技術(shù)。近幾年超高速數(shù)字電路的發(fā)展尤其是大規(guī)模超高速FPGA 技術(shù)日漸成熟,以及對(duì)DDS 的深入研究,使得DDS 的最高工作頻率以及噪聲性能已接近并達(dá) 到與鎖相頻率合成器相當(dāng)?shù)乃健Ec其它頻率合成方法相比,DDS 具有頻率轉(zhuǎn)換時(shí)間短、 頻率分辨率高、輸出相位連續(xù)、可編程、全數(shù)字化、易于集成等突出優(yōu)點(diǎn)。本文提出的方法 基于Xilinx 公司和它的合作者聯(lián)合提出的XtremeDSP 解決方案,從系統(tǒng)結(jié)構(gòu)設(shè)計(jì)直接映射到基于FPGA 的DSP 系統(tǒng)硬件實(shí)現(xiàn)。在這種基于模型的設(shè)計(jì)技術(shù)中,利用Simulink 的圖形化界面由系統(tǒng)的技術(shù)條件建立系統(tǒng)的數(shù)學(xué)模型,通過(guò)算法對(duì)模型進(jìn)行仿真優(yōu)化,再轉(zhuǎn)化成IP 核實(shí)現(xiàn)。System generator 同Simulink 模型工具結(jié)合,可以將算法參數(shù)化、最優(yōu)化,并可 自動(dòng)從行為級(jí)的系統(tǒng)模型轉(zhuǎn)換到FPGA 實(shí)現(xiàn),不需手工重設(shè),從而避免了繁瑣的編程工作,大大節(jié)省了開發(fā)時(shí)間并降低了出錯(cuò)的概率。
二、DDS 的基本原理
三、在MATLAB 中建立的DDS 模型并在ISE 中實(shí)現(xiàn)
3.1 建立DDS 模型
Simulink 是一個(gè)可用于多領(lǐng)域動(dòng)態(tài)系統(tǒng)仿真的平臺(tái),為動(dòng)態(tài)系統(tǒng)提供建模和分析的方法,提供交互的圖形化方框圖環(huán)境帶有為信號(hào)處理、通信和控制等可定制的模塊集。System Generator 就是Xilinx 公司的一個(gè)專有模塊集(Blockset),它是Simulink 的一個(gè)插件, 包括基本DSP 函數(shù)和邏輯算符,其中包含的預(yù)先定義好的模塊可以保證FPGA 實(shí)現(xiàn)時(shí)位和周期的正確。用它可以自動(dòng)生成VHDL 語(yǔ)言、測(cè)試向量等文件,還可以自動(dòng)將特定的設(shè)計(jì)模塊 映射成高度優(yōu)化的IP 核模型。在本文介紹的設(shè)計(jì)中,最后生成的工程文件中就自動(dòng)映射出一個(gè)累加器核和一個(gè)單口塊ROM 核。
根據(jù)DDS 控制原理在MATLAB 環(huán)境中建立如下的模型(圖1):其中在存儲(chǔ)正弦數(shù)據(jù)的RO中設(shè)定Depth 為:4096,IniTIal Value Vector 為:2047*sin(pi*(0:4095)/2048)+2047,即讓System Generator 在編譯過(guò)程中自動(dòng)產(chǎn)生一個(gè)存儲(chǔ)4096 個(gè)正弦數(shù)據(jù)的ROM。為了配合 使用開發(fā)板上的D/A 模塊,ROM 中的每個(gè)值設(shè)置成12 位無(wú)符號(hào)數(shù)。Accumulator 模塊用來(lái)進(jìn) 行相位的累加,AddSub 模塊將相位偏移量與相位累加值相加,作為ROM2 的地址輸入。在仿真前,設(shè)置相位控制字為PWord=512,由公式算出移相后的波形應(yīng)該較基準(zhǔn)正弦波偏移 ;
設(shè)置頻率控制字FWord=4,將仿真時(shí)間設(shè)置為2048,這樣 從理論上我們應(yīng)該可以看到兩個(gè)周期的完整波形輸出。運(yùn)行仿真,可以在Scope 中觀察到如圖2.1 中波形。改變控制字的值,就可以得到不同頻率、不同相位的波形(圖2.2)。
3.2 在ISE 中實(shí)現(xiàn)并仿真
點(diǎn)擊System Generator 圖標(biāo)中的generate 按鈕,生成可綜合的VHDL 代碼,并在ISE 中打開。先對(duì)代碼使用Synthesize-XST 進(jìn)行綜合,通過(guò)之后可以觀察到系統(tǒng)RTL 級(jí)視圖。然后創(chuàng)建一個(gè).tbw 文件對(duì)綜合后的設(shè)計(jì)進(jìn)行仿真,能夠得到和MATLAB 環(huán)境下一樣的仿真結(jié)果(按照正弦規(guī)律變化的離散數(shù)值序列)。為了能夠在實(shí)驗(yàn)板上實(shí)現(xiàn)設(shè)計(jì),在ISE 環(huán)境中建立 頂層文件,將System Generator 產(chǎn)生的文件與PicoBlaze 的控制程序文件結(jié)合,再進(jìn)行對(duì) 應(yīng)的功能仿真,正確后加載約束文件,生成比特流文件。
四、設(shè)計(jì)的硬件實(shí)現(xiàn)
選擇在Xilinx 公司的Spartan-3E Starter Kit 開發(fā)板上實(shí)現(xiàn)整個(gè)設(shè)計(jì)。在該開發(fā)板 上,有一片LTC2* D/A 芯片,通過(guò)一個(gè)SPI 接口與FPGA 管腳相接,能夠提供4 路獨(dú)立的模擬量輸出。為了便于對(duì)D/A 芯片以及各種控制接口的控制,在實(shí)現(xiàn)過(guò)程中使用了一個(gè) PicoBlaze 軟核。
PicoBlaze 是一個(gè)緊湊型、資源占用極少、完全嵌入式的8 位精簡(jiǎn)指令集 微控制器軟核。我們可以在文本編輯環(huán)境下根據(jù)PicoBlaze 的指令系統(tǒng)編寫自己的控制代碼,然后保存為.psm 格式的文件,再用Xilinx 的KCPSM3 assembler 對(duì)文件進(jìn)行編譯,編譯通過(guò)后自動(dòng)生成一個(gè)儲(chǔ)存用戶程序的ROM(VHDL 文件)。將生成的ROM 文件和KCPSM3 軟核加載到工程中,并建立上層文件對(duì)各輸入、輸出口及中斷進(jìn)行配置,這樣,一個(gè)PicoBlaze 軟核就設(shè)計(jì)成功了。在PicoBlaze 的控制程序中采用軟件中斷方式控制D/A 芯片以20KHZ 的頻率對(duì)數(shù)字量采 樣。在每個(gè)采樣過(guò)程中,由PicoBlaze 軟核控制向D/A 芯片發(fā)送32 位控制字,其中有12 位待轉(zhuǎn)換的數(shù)字量、4 位通道選擇控制字、4 位模式控制字,其余各位為0。在ISE 中對(duì)主時(shí)鐘進(jìn)行軟件分頻,將開發(fā)板上原本50MHZ 的時(shí)鐘降低到100KHZ 之后再接到DDS 產(chǎn)生電路 的輸入時(shí)鐘端口。這樣, 在FWord = 4的情況下, DDS 的輸出頻率輸入時(shí)鐘可以直接接入50MHZ 的晶振,這樣,在同樣頻率控制字的情況下輸出頻率也會(huì)相應(yīng)提高。這里分頻只是為了配合相對(duì)低速的D/A 芯片,以使得輸出波形每個(gè)周期的采樣數(shù)相對(duì) 多一些,以便于用示波器進(jìn)行觀察。
將生成的比特流代碼下載到目標(biāo)板,板上的開關(guān)信號(hào)作為用戶接口控制FWord 的值,控制不同開關(guān)的關(guān)閉和開啟,模擬不同頻率控制字的情況,得到不同頻率的波形,用示波器觀察開發(fā)板上J5 連接器的A 通道,得到如圖3 的波形:觀察波形,與由公式計(jì)算出的理論值吻合,證明了本文所介紹的方法的有效性、可行性。在ISE 的設(shè)計(jì)使用摘要窗口中,我們可以清楚的看到該系統(tǒng)所占用的芯片資源極少,由此可見,如果我們加大ROM 的深度,并且 通過(guò)DCM 時(shí)鐘管理提高主時(shí)鐘頻率的話,能夠很容易的實(shí)現(xiàn)更高頻率、更高精度的DDS 芯片。
以上便是小編此次帶來(lái)的“芯片設(shè)計(jì)”相關(guān)內(nèi)容,通過(guò)本文,希望大家對(duì)DDS芯片的設(shè)計(jì)與實(shí)現(xiàn)具備一定的了解。如果你喜歡本文,不妨持續(xù)關(guān)注我們網(wǎng)站哦,小編將于后期帶來(lái)更多精彩內(nèi)容。最后,十分感謝大家的閱讀,have a nice day!