技術頻道

      可編程邏輯在數字信號處理系統中的應用

        1 引言

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

        2 系統構成

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


        3 加法器的實現

        加法器的設計需要考慮資源利用率和進位速度這兩個相互矛盾的問題,通常取兩個問題的折衷。多位加法器的構成有并行進位和串行進位兩方式,前者運算速度快,但需占用較多的硬件資源,而且隨著位數的增加,相同位數的并行加法器和串行加法器的硬件資源占用差距快速增大。實踐證明,4位二進制并行加法器和串行加法器占用的資源幾乎相同,因此,由4位二進制并行加法器級聯來構成多位加法器是較好的折衷選擇。以下為由兩個4位二進制并行加法器級聯構成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;
        在上面的VHDL描述中,ADDER4B是一個4位二進制加法器,其VHDL描述是:
        LIBRARY IEEE;
        USE IEEE.STD_LOGIC_1164.ALL;
        USE IEEE.STD_LOGIC_UNSIGNED.ALL;
        ENTITY ADDER4B IS
        PORT (CIN4 :IN STD_LOGIC;

        A4 :IN STD_LOGIC_VECTOR(3 DOWNTO 0);
        B4:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
        S4:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
        COUT4:OUT STD_LOGIC;
        EAND ADDER4B;
        ARCHITEC_TURE behav OF ADDER4B IS
        SIGNAL SINT :STD_LOGIC_VECTOR(4 DOWNTO 0);
        SIGNAL AA,BB:STD_LOGIC_VECTOR(4 DOWNTO 0);
        BEGIN
        AA<=‘0’&A4;
        BB<=‘0’&B4;
        SINT<=AA+BB+CIN4;
        S4<=SINT(3 DOWNTO 0);
        COUT4<=SINT(4);
        END behav;

        4 結束語

        本文采用基于EDA技術的自上而下的系統設計方法,其設計流程如圖2所示。該乘

      法器的最大優點是節省芯片資源,其運算速度取決于輸入的時鐘頻率。如若時鐘頻率為100MHz,則每個運算周期僅需80ns,因而具有一定的實用價值。

      文章版權歸西部工控xbgk所有,未經許可不得轉載。

      主站蜘蛛池模板: 国产在线精品一区二区夜色| 国产精品一区二区三区久久 | 午夜视频在线观看一区| 久久99精品波多结衣一区| 人妻少妇AV无码一区二区| 国产成人精品久久一区二区三区| 国产成人精品第一区二区| 一区二区三区视频在线播放| AV鲁丝一区鲁丝二区鲁丝三区| 中文字幕一区二区三区有限公司 | 久久精品一区二区三区资源网 | 秋霞午夜一区二区| 精品国产福利在线观看一区| 亚洲高清美女一区二区三区| 亚洲一区二区在线免费观看| 久久亚洲AV午夜福利精品一区| 在线观看国产一区| 中文字幕在线一区| 国产在线一区二区综合免费视频 | 日韩精品无码一区二区三区不卡 | 亚洲美女高清一区二区三区| 国产成人一区二区三区电影网站| 无码少妇一区二区浪潮免费| 亚洲AV香蕉一区区二区三区| 亚洲欧美日韩一区二区三区在线| 日韩毛片基地一区二区三区| 亚洲一区二区三区免费在线观看 | 精品欧洲av无码一区二区三区| 一区二区在线免费观看| 精品无人区一区二区三区| 日韩精品中文字幕无码一区| 精品福利一区二区三区免费视频| 日韩国产精品无码一区二区三区| 无码人妻精品一区二区| 日本免费一区二区三区四区五六区 | 国产激情一区二区三区小说| 国产SUV精品一区二区四| 日韩AV无码一区二区三区不卡 | 中文字幕乱码亚洲精品一区| 91一区二区视频| 激情无码亚洲一区二区三区 |