基于可編程邏輯在數(shù)字信號(hào)處理系統(tǒng)中的應(yīng)用
發(fā)布時(shí)間:2009/2/23 0:00:00 訪問次數(shù):446
1 引言
隨著半導(dǎo)體技術(shù)的發(fā)展,可編程邏輯器件在結(jié)構(gòu)、工藝、集成度、功能、速度和靈活性等方面有了很大的改進(jìn)和提高,從而為高效率、高質(zhì)量、靈活地設(shè)計(jì)數(shù)字系統(tǒng)提供了可靠性。cpld或fpga技術(shù)的出現(xiàn),為dsp系統(tǒng)的設(shè)計(jì)又提供了一種嶄新的方法。利用cpld或fpga設(shè)計(jì)的dsp系統(tǒng)具有良好的靈活性和極強(qiáng)的實(shí)時(shí)性。同時(shí),其價(jià)格又可以被大眾接受。由于乘法器在數(shù)字信號(hào)處理系統(tǒng)中具有廣泛的應(yīng)用,所以本文以乘法器的處理系統(tǒng)中具有廣泛的應(yīng)用,所以本文以乘法器的設(shè)計(jì)為例,來說明采用可編程邏輯器件設(shè)計(jì)數(shù)字系統(tǒng)的方法。如果想使系統(tǒng)具有較快的工作速度,可以采用組合邏輯電路構(gòu)成的乘法器,但是,這樣的乘法器需占用大量的硬件資源,因而很難實(shí)現(xiàn)寬位乘法器功能。本文這種用于序邏輯電路構(gòu)成的乘法器,既節(jié)省了芯片資源,又能滿足工作速度及原理的要求,因而具有一定的實(shí)用價(jià)值。
2 系統(tǒng)構(gòu)成
該乘法器通過逐項(xiàng)移位相加來實(shí)現(xiàn)乘法功能。它從被乘數(shù)的最低開始,若為1,則乘數(shù)左移后再與上一次的和相加;若為0,左移后與0相加,直到移到被乘數(shù)的最高位。圖1是該乘法器的系統(tǒng)組成框圖。該控制模塊的star輸入有兩個(gè)功能:第一個(gè)功能是將16位移位寄存器清零和被乘數(shù)a[7…0]向8位移位寄存器加載;第二個(gè)功能為輸入乘法使能信號(hào)。乘法時(shí)鐘信號(hào)從clk輸入,當(dāng)被乘數(shù)加載于8位移位寄存器后,它由低位到高位逐位移出,當(dāng)qb=1時(shí),選通模塊打開,8位乘數(shù)b[8…0]被送入加法器,并與上一次鎖存在16位鎖存器中的高8位相加,其和在下一個(gè)時(shí)鐘上升沿被鎖存到鎖存器內(nèi);當(dāng)qb=0時(shí),選通模塊輸出為全0。如此循環(huán)8個(gè)時(shí)鐘脈沖后,由控制模塊控制的乘法運(yùn)算過程自動(dòng)中止。該乘法器的核心元件是8位加法器,其運(yùn)算速度取決于時(shí)鐘頻率。
圖1是該乘法器的系統(tǒng)組成框圖
3 加法器的實(shí)現(xiàn)
加法器的設(shè)計(jì)需要考慮資源利用率和進(jìn)位速度這兩個(gè)相互矛盾的問題,通常取兩個(gè)問題的折衷。多位加法器的構(gòu)成有并行進(jìn)位和串行進(jìn)位兩方式,前者運(yùn)算速度快,但需占用較多的硬件資源,而且隨著位數(shù)的增加,相同位數(shù)的并行加法器和串行加法器的硬件資源占用差距快速增大。實(shí)踐證明,4位二進(jìn)制并行加法器和串行加法器占用的資源幾乎相同,因此,由4位二進(jìn)制并行加法器級(jí)聯(lián)來構(gòu)成多位加法器是較好的折衷選擇。以下為由兩個(gè)4位二進(jìn)制并行加法器級(jí)聯(lián)構(gòu)成8位二進(jìn)制加法器的 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是一個(gè)4位二進(jìn)制加法器,其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);
cout
1 引言
隨著半導(dǎo)體技術(shù)的發(fā)展,可編程邏輯器件在結(jié)構(gòu)、工藝、集成度、功能、速度和靈活性等方面有了很大的改進(jìn)和提高,從而為高效率、高質(zhì)量、靈活地設(shè)計(jì)數(shù)字系統(tǒng)提供了可靠性。cpld或fpga技術(shù)的出現(xiàn),為dsp系統(tǒng)的設(shè)計(jì)又提供了一種嶄新的方法。利用cpld或fpga設(shè)計(jì)的dsp系統(tǒng)具有良好的靈活性和極強(qiáng)的實(shí)時(shí)性。同時(shí),其價(jià)格又可以被大眾接受。由于乘法器在數(shù)字信號(hào)處理系統(tǒng)中具有廣泛的應(yīng)用,所以本文以乘法器的處理系統(tǒng)中具有廣泛的應(yīng)用,所以本文以乘法器的設(shè)計(jì)為例,來說明采用可編程邏輯器件設(shè)計(jì)數(shù)字系統(tǒng)的方法。如果想使系統(tǒng)具有較快的工作速度,可以采用組合邏輯電路構(gòu)成的乘法器,但是,這樣的乘法器需占用大量的硬件資源,因而很難實(shí)現(xiàn)寬位乘法器功能。本文這種用于序邏輯電路構(gòu)成的乘法器,既節(jié)省了芯片資源,又能滿足工作速度及原理的要求,因而具有一定的實(shí)用價(jià)值。
2 系統(tǒng)構(gòu)成
該乘法器通過逐項(xiàng)移位相加來實(shí)現(xiàn)乘法功能。它從被乘數(shù)的最低開始,若為1,則乘數(shù)左移后再與上一次的和相加;若為0,左移后與0相加,直到移到被乘數(shù)的最高位。圖1是該乘法器的系統(tǒng)組成框圖。該控制模塊的star輸入有兩個(gè)功能:第一個(gè)功能是將16位移位寄存器清零和被乘數(shù)a[7…0]向8位移位寄存器加載;第二個(gè)功能為輸入乘法使能信號(hào)。乘法時(shí)鐘信號(hào)從clk輸入,當(dāng)被乘數(shù)加載于8位移位寄存器后,它由低位到高位逐位移出,當(dāng)qb=1時(shí),選通模塊打開,8位乘數(shù)b[8…0]被送入加法器,并與上一次鎖存在16位鎖存器中的高8位相加,其和在下一個(gè)時(shí)鐘上升沿被鎖存到鎖存器內(nèi);當(dāng)qb=0時(shí),選通模塊輸出為全0。如此循環(huán)8個(gè)時(shí)鐘脈沖后,由控制模塊控制的乘法運(yùn)算過程自動(dòng)中止。該乘法器的核心元件是8位加法器,其運(yùn)算速度取決于時(shí)鐘頻率。
圖1是該乘法器的系統(tǒng)組成框圖
3 加法器的實(shí)現(xiàn)
加法器的設(shè)計(jì)需要考慮資源利用率和進(jìn)位速度這兩個(gè)相互矛盾的問題,通常取兩個(gè)問題的折衷。多位加法器的構(gòu)成有并行進(jìn)位和串行進(jìn)位兩方式,前者運(yùn)算速度快,但需占用較多的硬件資源,而且隨著位數(shù)的增加,相同位數(shù)的并行加法器和串行加法器的硬件資源占用差距快速增大。實(shí)踐證明,4位二進(jìn)制并行加法器和串行加法器占用的資源幾乎相同,因此,由4位二進(jìn)制并行加法器級(jí)聯(lián)來構(gòu)成多位加法器是較好的折衷選擇。以下為由兩個(gè)4位二進(jìn)制并行加法器級(jí)聯(lián)構(gòu)成8位二進(jìn)制加法器的 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是一個(gè)4位二進(jìn)制加法器,其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);
cout
熱門點(diǎn)擊
- C/C++語言的編譯器接□
- 基于VHDL實(shí)現(xiàn)多路彩燈控制器設(shè)計(jì)應(yīng)用
- 匯編語言程序中的字符串表達(dá)式及運(yùn)算符
- 最常用的幾種EDA軟件
- ispMACH 4000系列CPLD優(yōu)化參數(shù)
- C/C++語言的編譯器操作概述
- 基可編程邏輯器的VGA顯示控制器的設(shè)計(jì)
- C/C++語言的主要特征
- C/C++編譯器工具的主要特點(diǎn)
- TMS320X28xx系列DSP內(nèi)核特點(diǎn)
推薦技術(shù)資料
- 聲道前級(jí)設(shè)計(jì)特點(diǎn)
- 與通常的Hi-Fi前級(jí)不同,EP9307-CRZ這臺(tái)分... [詳細(xì)]
- PWM輸入功率驅(qū)動(dòng)器工作原理
- 隔離式 DC/DC 變換器和模
- 解讀集成4 個(gè)高效降壓 DC/
- 數(shù)字隔離功能全集成 DC/DC
- 集成低噪聲電流輸入模數(shù)轉(zhuǎn)換器 (ADC)應(yīng)用
- 128 通道20 位電流數(shù)字轉(zhuǎn)換器應(yīng)用探究
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究