<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > FPGA/CPLD中常見(jiàn)模塊設計精華集錦(一)

FPGA/CPLD中常見(jiàn)模塊設計精華集錦(一)

作者: 時(shí)間:2012-06-14 來(lái)源:網(wǎng)絡(luò ) 收藏

 ?。础≤浖?shí)現

  在設計的總體構思和器件選擇完成后,必須進(jìn)行的工作是建立設計輸入文件,該文件主要用于描述所設計電路的邏輯功能。這里使用的是XILINX公司提供的開(kāi)發(fā)工具FOUNDATION 4.1。本設計采用硬件描述語(yǔ)言VHDL來(lái)設計,其部分程序如下:

 ?。澹睿簦椋簦?lvds is

 ?。穑铮颍?(

 ?。穑悖欤耄?in STD LOGIC;

 ?。穑悖欤隷62: out std_logic_vector(31 downto 0);?

 ?。穑悖欤隷4: out std_logic_vector(31 downto 0));

 ?。澹睿?lvds;

 ?。幔颍悖瑁椋簦澹悖簦酰颍?lvds_arch of lvds is

 ?。悖铮恚穑铮睿澹睿?clkdll

 ?。穑铮颍簦?clkin: in std_logic;

 ?。悖欤耄妫?: in std_logic;

 ?。颍螅簦?in std_logic;

 ?。悖欤耄埃?out std_logic;

 ?。悖欤耄梗?: out std_logic;

 ?。悖欤耄保福埃?out std_logic;

 ?。悖欤耄玻罚埃?out std_logic;

 ?。悖欤耄玻?: out std_logic;

 ?。悖欤耄洌觯?out std_logic;

 ?。欤铮悖耄澹洌?out std_logic);

 ?。澹睿?component;

 ?。猓澹纾椋?p> ?。颍澹螅澹?n<=‘0' ;

 ?。酰椋猓酰?: ibufg port map (

 ?。?=> pclk,

 ?。?=> clk);

 ?。酰洌欤欤?clkdll port map( clkin => clk,

 ?。颍螅?=> reset_n,

 ?。悖欤耄妫?=> clkfb,

 ?。悖欤耄?=> clk0,

 ?。悖欤耄梗?=> open,

 ?。悖欤耄保福?=> open,

 ?。悖欤耄玻罚?=> open,

 ?。悖欤耄玻?=> clk2x,

 ?。悖欤耄洌?=> clkdv,

 ?。欤铮悖耄澹?=> locked

 ?。?

 ?。猓酰妫鏮clk0: bufg port map ( i => clk0,

 ?。铮剑荆悖欤隷int2;

 ?。?

 ?。悖欤耄妫猓迹剑悖欤隷int2;

 ?。穑颍铮悖澹螅螅ǎ悖欤耄玻?

 ?。猓澹纾椋?p> ?。椋?clk2x′event and clk2x=′1′ then

 ?。悖欤隷int <=clk int2;

 ?。悖欤隷int3<= clkdv;

 ?。穑悖欤隷62(0)<=clk_int;

 ?。穑悖欤隷62(1)<=clk_int;

  …

  …

 ?。穑悖欤隷62(31)<=clk_int;

 ?。穑悖欤隷4(0)<=clk_int3;

 ?。穑悖欤隷4(1)<=clk_int3;

  …

  …

 ?。穑悖欤隷4(31)<=clk_int3;

 ?。澹睿?if;

 ?。澹睿?process;

 ?。澹睿?lvds_arch;
四、基于的多種形式分頻的設計與實(shí)現

  分頻器是數字系統設計中的基本電路,根據不同設計的需要,我們會(huì )遇到偶數分頻、奇數分頻、半整數分頻等,有時(shí)要求等占空比,有時(shí)要求非等占空比。在同一個(gè)設計中有時(shí)要求多種形式的分頻。通常由計數器或計數器的級聯(lián)構成各種形式的偶數分頻及非等占空比的奇數分頻,實(shí)現較為簡(jiǎn)單。但對半整數分頻及等占空比的奇數分頻實(shí)現較為困難。本文利用VHDL硬件描述語(yǔ)言,通過(guò)QuartusⅡ3.0開(kāi)發(fā)平臺,使用Altera公司的,設計了一種能夠滿(mǎn)足上述各種要求的較為通用的分頻器。

  一、電路設計

  采用實(shí)現半整數分頻器,可以采用以下方法:設計一個(gè)模N的計數器,再設計一個(gè)脈沖扣除電路,每來(lái)兩個(gè)脈沖扣除一個(gè)脈沖,即可實(shí)現分頻系數為N-0.5的分頻器。脈沖扣除電路由異或門(mén)和一個(gè)2分頻器構成。本設計在半整數分頻器原理的基礎上,對異或門(mén)加一個(gè)使能控制信號,通過(guò)對異或門(mén)和計數器計數狀態(tài)值的控制,實(shí)現同一個(gè)電路完成多種形式分頻,如圖1所示。

  

  二、VHDL語(yǔ)言的實(shí)現

  現通過(guò)設計一個(gè)可以實(shí)現8.5分頻,等占空比的17分頻,2、4、8、16、32分頻,及占空比為1∶8和4∶5的9分頻等多種形式分頻的分頻器,介紹該通用分頻器的FPGA實(shí)現。

  由圖1所示的電路原理圖可知,分頻器由帶使能端的異或門(mén)、模N計數器和一個(gè)2分頻器組成,本設計用D觸發(fā)器來(lái)完成2分頻的功能,實(shí)現方法是:將觸發(fā)器的Q反輸出端反饋回輸入端D,將計數器的一個(gè)計數輸出端作為D觸發(fā)器的時(shí)鐘輸入端。各功能模塊的VHDL語(yǔ)言實(shí)現如下。

  1.模N計數器的實(shí)現

  一般設計中用到計數器時(shí),我們可以調用lpm庫中的計數器模塊,也可以采用VHDL語(yǔ)言自己設計一個(gè)模N計數器。本設計采用VHDL語(yǔ)言設計一個(gè)最大模值為16的計數器。輸入端口為:使能信號en,復位信號clr和時(shí)鐘信號clk;輸出端口為:qa、qb、qc、qd。其VHDL語(yǔ)言描述略。

  2.帶使能控制的異或門(mén)的實(shí)現

  輸入端為:xor_en:異或使能,a和b:異或輸入;輸出端為:c:異或輸出。當xor_en為高電平時(shí),c輸出a和b的異或值。當xor_en為低電平時(shí),c輸出信號b。其VHDL語(yǔ)言略。

  3.2分頻(觸發(fā)器)的實(shí)現

  輸入端為:時(shí)鐘信號clk,輸入信號d;輸出端為:q:輸出信號a,q1:輸出信號a反。其VHDL語(yǔ)言略。

  4.分頻器的實(shí)現

  本設計采用層次化的設計方法,首先設計實(shí)現分頻器電路中各組成電路元件,然后通過(guò)元件例化的方法,調用各元件,實(shí)現整個(gè)分頻器。其VHDL語(yǔ)言略。

  三、仿真結果及硬件電路的測試

  本設計的目的是通用性和簡(jiǎn)易性,只要對上述程序稍加改動(dòng)即可實(shí)現多種形式的分頻。

  1.實(shí)現8.5分頻和等占空比的17分頻

  只要將上述程序中,調用計數器模塊時(shí)端口qa、qb、qc匹配為open狀態(tài),同時(shí)置xor_en為高電平即可。從編譯報告看出總共占用8個(gè)邏輯單元(logic elements),其仿真波形如圖2~4所示。

  

  圖二

  

  圖三

  

  圖四

  由圖中qxiao和clk的波形可以看出,每隔8.5個(gè)時(shí)鐘周期,qxiao信號產(chǎn)生一個(gè)上升沿,從而實(shí)現分頻系數是8.5的分頻,同時(shí)在qzheng端得到等占空比的17分頻。設clk為170MHz,則qxiao輸出為20MHz,qzheng輸出為10MHz。

  2.實(shí)現占空比為1∶8和4∶5的9分頻

  只要上述程序的xor_en置低電平即可在qxiao輸出占空比為1∶8的9分頻信號;在qzheng2輸出占空比為4∶5的9分頻信號。同樣僅占8個(gè)邏輯單元(logic elements)。仿真波形如下。

  3.實(shí)現等占空比的2、4、8、16和32分頻

  只要將上述程序中的xor_en置為低電平,同時(shí)將計數器模塊的計數最大值設為16即可。仿真波形如下。

  由此可見(jiàn),只要稍微改變計數器的計數狀態(tài)值,對異或門(mén)進(jìn)行選通控制,即可實(shí)現上述多種形式的分頻。本設計在A(yíng)ltera公司的EP1K50QC208-3構成的測試平臺上測試通過(guò),性能良好。

  結束語(yǔ)

  我們在設計模擬雷達脈沖信號和用FPGA開(kāi)發(fā)擴頻芯片時(shí)就用到了上述多種形式得分頻。本文旨在介紹一種進(jìn)行FPGA開(kāi)發(fā)時(shí),所需多種分頻的實(shí)現方法,如果設計中所需分頻形式較多,可以直接利用本設計,通過(guò)對程序的稍微改動(dòng)以滿(mǎn)足自己設計的要求。如果設計中需要分頻形式較少,可以利用本設計部分程序,以節省資源。

fpga相關(guān)文章:fpga是什么


塵埃粒子計數器相關(guān)文章:塵埃粒子計數器原理
鑒相器相關(guān)文章:鑒相器原理
脈沖點(diǎn)火器相關(guān)文章:脈沖點(diǎn)火器原理
雙絞線(xiàn)傳輸器相關(guān)文章:雙絞線(xiàn)傳輸器原理
三相異步電動(dòng)機相關(guān)文章:三相異步電動(dòng)機原理
鎖相環(huán)相關(guān)文章:鎖相環(huán)原理
三維掃描儀相關(guān)文章:三維掃描儀原理

上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: FPGA CPLD 模塊設計 集錦

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>