【正文】
將前面的數(shù)字信號轉(zhuǎn)換成模擬信號。因此, FPGA 的使用非常靈活。 可以說, FPGA 芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。 現(xiàn)場可編程門陣列( FPGA)是可編程器件。 本設(shè)計是采用 VHDL 來實現(xiàn)的 可調(diào)幅度簡易波形刺激發(fā)生器設(shè)計 。1 前言 可調(diào)幅度簡易波形刺激發(fā)生器 是信號發(fā)生器的一種,在生產(chǎn)實踐和科研領(lǐng)域中有著廣泛的應(yīng)用。它能產(chǎn)生正弦波 ,三角波和方波。與傳統(tǒng)邏輯電路和門陣列(如 PAL, GAL 及 CPLD 器件)相比, FPGA具有 不同的結(jié)構(gòu), FPGA 利用小型查找表( 16X1RAM)來實現(xiàn)組合邏輯,每個查找表連接到一個 D觸發(fā)器的輸入端,觸發(fā)器再來驅(qū)動其他邏輯電路或驅(qū)動 I/O,由此構(gòu)成了既可實現(xiàn)組合邏輯功能又可實現(xiàn)時序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接到 I/O 模塊。 FPGA 是由存放在片內(nèi) RAM 中的程序來設(shè)置其工作狀態(tài)的,因此,工作時需要對片內(nèi)的 RAM 進行編程。 3 設(shè)計方案 實驗要求及總體框圖 根據(jù)實驗 設(shè)計要求,可將設(shè)計分為以下幾個模塊(如圖 ): ( 1) 波形產(chǎn)生模塊。 ( 5) 輸出模塊。然后將波形向上移動 512,如 圖 。 這樣通過狀態(tài)的不斷轉(zhuǎn)換,就會輸出一系列值,通過 DA轉(zhuǎn)換就能產(chǎn)生一個三 角波, 元件模塊圖及時序 仿真波形 圖 如圖 : 圖 7 圖 波形選擇 單元 波形選擇采用撥碼開關(guān)控制,三路輸入(除去開關(guān)輸入),一路輸出,通過對兩個撥碼開關(guān)的組合狀態(tài)識別判斷來控制輸出為哪一路輸入。顯然,以上三個檔位呈 2倍關(guān)系,故可在原波形數(shù)據(jù)基礎(chǔ)上通過除 2和除 4 操作來實現(xiàn)檔位調(diào)節(jié)。 圖 9 圖 從仿真波形可以看出,當(dāng) Camp。 TLC5615 是一個串行 10位DAC芯片,性能比早期電流型輸出的nAC要好。 S3: CS為高, SCLK 為低,跳轉(zhuǎn)到 S0。 當(dāng)引腳鎖定完畢后,將程序下載到試驗箱中,連好示波器,在輸入端輸入相應(yīng)的值即可得到相應(yīng)的輸出波形。 圖 15 當(dāng)圖 的原理圖中的 Aamp。 結(jié)果分析: 從實驗結(jié)果來看,設(shè)計成功完成了三種波形的設(shè)計。 在設(shè)計過程中遇到 不少 問題,如鍵盤控制。 USE 。139。 END FP。 BEGIN PROCESS(CLK) BEGIN IF CLK39。 END CASE。 outp:out std_logic_vector(9 downto 0) )。) then q=q+1。 when 07=dd4=836。 when 15=dd4=1021。 when 23=dd4=907。 when 31=dd4=562。 when 39=dd4=187。 when 47=dd4=2。 when 55=dd4=116。 when 63=dd4=461。 USE 。 BEGIN PROCESS(CLK) BEGIN IF CLK39。ELSE C=C33。 4. 波形選擇單元程序 LIBRARY IEEE。 BEGIN Q=A amp。 D_IN: IN INTEGER RANGE 0 TO 1023 )。 END IF。 Q:IN STD_LOGIC_VECTOR(9 DOWNTO 0) )。EVENT AND CLK1=39。 WHEN S1=ST=S2。 WHEN S3=CT=39。SCLK=39。 PROCESS(SCLK) BEGIN IF CT=39。 TMP(11 DOWNTO 1)=TMP(10 DOWNTO 0)。 END IF。 THEN TMP(11 DOWNTO 2)=Q(9 DOWNTO 0)。ST=S0。SCLK=39。039。) THEN CASE ST IS WHEN S0=CT=39。 22 ARCHITECTURE DAS OF DA IS TYPE STATE IS (S0,S1,S2,S3,S4)。 END 。 ARCHITECTURE BHV OF D_W IS SIGNAL NUM:STD_LOGIC_VECTOR (1 DOWNTO 0)。 WITH Q SELECT O=I1 WHEN 01, I2 WHEN 10, I3 WHEN 11, ZZZZZZZZZZ WHEN OTHERS。 USE 。END IF。139。 ENTITY SJB IS PORT( CLK:IN STD_LOGIC。 end case。 when 57=dd4=187。 when 49=dd4=2。 when 41=dd4=116。 when 33=dd4=461。 when 25=dd4=836。 when 17=dd4=1021。 when 09=dd4=907。 when 01=dd4=562。 architecture dac of sin is signal q: integer range 63 downto 0。 END。139。 USE 。 IF A=24 THEN Z=(NOT