<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • 基于CPLD的三相多波形函數發生器設計

    時間:2024-06-05 15:04:33 理工畢業論文 我要投稿
    • 相關推薦

    基于CPLD的三相多波形函數發生器設計

    摘要:介紹了基于可編程邏輯器件CPLD和直接數字頻率合成技術(DDS)的三相多波形函數發生器的基本原理,并在此基礎上給出了基于CPLD的各模塊設計方法及其VHDL源程序。

    1 引言

    直接數字頻率合成 ?Direct Digital Synthesis ,DDS?是20世紀60年代末出現的第三代頻率合成技術。該技術從相位概念出發,以Nyquist時域采樣定理為基礎,在時域中進行頻率合成。DDS頻率轉換速度快,頻率分辨率高,并在頻率轉換時可保持相位的連續,因而易于實現多種調制功能。DDS是全數字化技術,其幅度、相位、頻率均可實現程控,并可通過更換波形數據靈活實現任意波形。此外,DDS易于單片集成,體積小,價格低,功耗小,因此DDS技術近年來得到了飛速發展,其應用也越來越廣泛。

    基于CPLD和DDS技術的函數發生器可以實現信號波形的多樣化,而且方便可靠,簡單經濟,系統易于擴展,同時可大大提高輸出信號的帶寬。

    2 系統原理

    2.1 CPLD內部設計

    CPLD的內部結構框圖如圖1所示,圖中,首先由控制寄存器將外部控制器(如單片機)送入的數據轉換為頻率和幅度控制字;然后再由分頻器根據頻率控制字進行分頻并將輸出作為尋址計數器的時鐘;尋址計數器的尋址空間為360字節,可對ROM中的查找表進行尋址;而通過模360加法器可以產生120°的相位差。

    2.2 CPLD的外圍電路

    圖2所示是CPLD的外圍電路連接圖。圖中,CPLD幅度控制字經D/A轉換輸出后,可作為查找表輸出DAC的參考電壓,該參考電壓可通過改變幅度控制字來進行改變,從而改變輸出信號的幅度。

    3 CPLD各模塊的設計

    3.1 控制寄存器的設計

    控制寄存器設計主要是將外部控制器輸入的數據轉換為頻率和幅度控制字。其程序代碼如下:

    --////////////調庫////////////--

    entity controller is

    port(clk:in std_logic;

    datain:in std_logic;

    ad:out std_logic_vector(16 down to 0);

    freq:out std_logic_ vector(16 down to 0));

    end;

    architecture dataflow of controller is

    signal out1:std_logic_vector(16 down to 0);

    begin

    s2p:process(clk,datain)

    variable temp:std_logic_vector(16 down to 0);?

    begin

    if clk'event and clk=‘1’ then

    temp:=temp(15 down to 0)&datain;

    end if;

    out1<=temp;

    end process s2p;

    mux:process(out1(16))

    begin

    if out1(16)=‘1’ then

    ad<=out1(15 down to 0); --1號寄存器為幅度控制字

    else

    freq<=out1(15 downto 0); --0號寄存器為頻率控制字

    end if;

    end process mux;

    end;

    圖3

    3.2 分頻比可變的分頻器模塊設計

    該設計主要是根據頻率控制字決定分頻倍數,從而輸出與頻率控制字相對應的頻率時鐘,此模塊的輸出可作為尋址計數器的時鐘。具體代碼如下:

    process?clk? --clk為外部時鐘(如晶振)

    variable temp,fen:std_logic_vector(15 down to 0);?

    constant temp1:std_logic_vector(15 down to 0):=“1111111111111111”;

    variable a:std_logic;

    begin

    fen:=temp1-fen_in; --使分頻后的頻率正比于頻率控制字

    if clk=‘1’ and clk'event then

    if temp=(‘0’&fen(15 down to 1)) then --相當于除2運算

    a:=not a;

    temp:=temp+1;

    elsif temp=fen then

    a:=not a;

    temp:=“0000000000000000”;

    else

    temp:=temp+1;

    end if;

    end if;

    fen out<=a; --fen out 為輸入時鐘的頻率fen倍分頻

    end process;

    3.3 尋址計數器設計

    尋址計數器主要用于產生對ROM尋址輸出波形數據的尋址信號,尋址空間為360字節,具體的程序代碼如下:

    process(clk)

    variable temp:integer rang

    【基于CPLD的三相多波形函數發生器設計】相關文章:

    基于FPGA的多功能波形信號發生器11-22

    基于單片機技術的波形發生器采用單片機設計(一)03-07

    基于FPGA的DDS信號發生器的設計03-03

    基于DDR SDRAM的信號發生器設計與實現03-30

    基于CPLD/FPGA的半整數分頻器的設計03-18

    基于CPLD的系統中I2C總線的設計03-18

    基于CPLD的高壓電力線FSK MODEM設計03-18

    一種基于CPLD的PWM控制電路設計03-19

    基于軟件無線電的GPP通信波形軟件設計方法03-11

    主站蜘蛛池模板: 国产福利电影一区二区三区,亚洲国模精品一区 | 中文字幕精品一区影音先锋| 国产一区二区精品久久| 国产亚洲精品国产| 国产成人精品在线观看| 久久久99精品成人片中文字幕| 无码8090精品久久一区| 久久99精品久久只有精品| 国产成人精品高清在线观看99| 69堂午夜精品视频在线| 久久久精品人妻无码专区不卡| 亚洲国产美女精品久久久久∴ | 精品国产免费一区二区三区| 中文字幕精品亚洲无线码一区| 国产精品涩涩涩视频网站| 国产精品v欧美精品v日本精| 青青久久精品国产免费看| 91久久婷婷国产综合精品青草| 国产综合成人色产三级高清在线精品发布 | 四虎4hu永久免费国产精品| 亚洲精品国产成人影院| 国产精品成人va| 亚洲成网777777国产精品| 99久久精品毛片免费播放| 色婷婷久久久SWAG精品| 欧洲精品视频在线观看| 亚洲AV成人精品网站在线播放| 91精品国产91久久久久久蜜臀 | 欧美精品亚洲精品日韩专区va| 青草青草久热精品视频在线观看| 精品国产福利第一区二区三区| 亚洲欧美日韩国产一区二区三区精品 | 青青青青久久精品国产h久久精品五福影院1421 | 日韩精品在线一区二区| 亚洲精品无码久久一线| 国产精品综合专区中文字幕免费播放| 无码人妻精品一区二区三区久久| 99久久国产综合精品五月天喷水| 99精品无人区乱码在线观看| 亚洲精品456播放| 日韩精品人妻av一区二区三区|