關(guān) 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 可編程邏輯技術(shù)在數(shù)字信號處理系統(tǒng)中的應(yīng)用

        可編程邏輯技術(shù)在數(shù)字信號處理系統(tǒng)中的應(yīng)用

        作者: 時間:2012-04-09 來源:網(wǎng)絡(luò) 收藏

        1 引言

        本文引用地址:http://www.104case.com/article/160825.htm

          隨著半導(dǎo)體的發(fā)展,器件在結(jié)構(gòu)、工藝、集成度、功能、速度和靈活性等方面有了很大的改進和提高,從而為高效率、高質(zhì)量、靈活地設(shè)計系統(tǒng)提供了可靠性。CPLD或FPGA的出現(xiàn),為DSP系統(tǒng)的設(shè)計又提供了一種嶄新的方法。利用CPLD或FPGA設(shè)計的DSP系統(tǒng)具有良好的靈活性和極強的實時性。同時,其價格又可以被大眾接受。由于乘法器在系統(tǒng)中具有廣泛的,所以本文以乘法器的系統(tǒng)中具有廣泛的,所以本文以乘法器的設(shè)計為例,來說明采用器件設(shè)計系統(tǒng)的方法。如果想使系統(tǒng)具有較快的工作速度,可以采用組合電路構(gòu)成的乘法器,但是,這樣的乘法器需占用大量的硬件資源,因而很難實現(xiàn)寬位乘法器功能。本文這種用于序邏輯電路構(gòu)成的乘法器,既節(jié)省了芯片資源,又能滿足工作速度及原理的要求,因而具有一定的實用價值。

          2 系統(tǒng)構(gòu)成

          該乘法器通過逐項移位相加來實現(xiàn)乘法功能。它從被乘數(shù)的最低開始,若為1,則乘數(shù)左移后再與上一次的和相加;若為0,左移后與0相加,直到移到被乘數(shù)的最高位。圖1是該乘法器的系統(tǒng)組成框圖。該控制模塊的STAR輸入有兩個功能:第一個功能是將16位移位寄存器清零和被乘數(shù)A[7…0]向8位移位寄存器加載;第二個功能為輸入乘法使能。乘法時鐘從CLK輸入,當(dāng)被乘數(shù)加載于8位移位寄存器后,它由低位到高位逐位移出,當(dāng)QB=1時,選通模塊打開,8位乘數(shù)B[8…0]被送入加法器,并與上一次鎖存在16位鎖存器中的高8位相加,其和在下一個時鐘上升沿被鎖存到鎖存器內(nèi);當(dāng)QB=0時,選通模塊輸出為全0。如此循環(huán)8個時鐘脈沖后,由控制模塊控制的乘法運算過程自動中止。該乘法器的核心元件是8位加法器,其運算速度取決于時鐘頻率。

          3 加法器的實現(xiàn)

          加法器的設(shè)計需要考慮資源利用率和進位速度這兩個相互矛盾的問題,通常取兩個問題的折衷。多位加法器的構(gòu)成有并行進位和串行進位兩方式,前者運算速度快,但需占用較多的硬件資源,而且隨著位數(shù)的增加,相同位數(shù)的并行加法器和串行加法器的硬件資源占用差距快速增大。實踐證明,4位二進制并行加法器和串行加法器占用的資源幾乎相同,因此,由4位二進制并行加法器級聯(lián)來構(gòu)成多位加法器是較好的折衷選擇。以下為由兩個4位二進制并行加法器級聯(lián)構(gòu)成8位二進制加法器的 VHDL程序:

          LIBRARY IEEE;

          USE IEEE.STD_LOGIC_1164.ALL;

          USE IEEE.STD_LOGIC_UNSIGNED.ALL;

          ENTITY ADDER8B IS

          PORT (CIN:IN STD_LOGIC;

          A :IN STD_LOGIC_VECTOR(7 DOWNTO 0);

          B :IN STD_LOGIC_VECTOR(7 DOWNTO 0);

          S :OUT STD_LOGIC_VECTOR(7 DOWNTO 0);

          OUT :OUT STD_LOGIC);

          END ADDER8B;

          ARCHITECTURE struc OF ADDER8B IS

          COMPONENT ADDER4B

          PORT (CIN4: IN STD_LOGIC;

          A4 : IN STD_LOGIC_VECTOR(3 DOWNTO 0);

          B4 :IN STD_LOGIC_VECTOR(3 DOWNTO 0);

          S4 : OUT ST_D_LOGIC_VECTOR(3 DOWN-TO 0);

          COUT4 : OUT STD_LOGIC);

          END COMPONENT;

          SIGNAL CARRY_OUT : STD_LOGIC;

          BEGIN

          U1:ADDER4B

          PORT MAP(CIN4=>CIN,A4=>A(3 DOWNTO 0),B4=>B(3 DOWNTO 0),S4=>S(3 DOWNTO 0),COUT4=>CARRY_OUT);

          U2 :ADDER4B

          PORT MAP(CIN4=>CARRY_OUT,A4=>A(7 DOWNTO 4),B4=>B(7 DOWNTO 4),S4=>S(7 DOWNTO 4),COUT4=>COUT);

          END struc;


        上一頁 1 2 下一頁

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 法库县| 榕江县| 西乌珠穆沁旗| 稷山县| 石家庄市| 墨脱县| 高青县| 开江县| 浦江县| 沾化县| 屯昌县| 米易县| 乌兰县| 莫力| 黄石市| 庆云县| 垦利县| 太仆寺旗| 靖江市| 望都县| 出国| 措勤县| 通城县| 惠安县| 吉木萨尔县| 九江市| 娱乐| 祁阳县| 文安县| 罗山县| 富阳市| 大竹县| 尚志市| 鹤山市| 五家渠市| 闵行区| 芜湖市| 宾川县| 莫力| 革吉县| 迁西县|