| | 网站首页 | 新闻 | SOPC | FPGA | DSP | ARM | 嵌入式操作系统 | 下载 | 所有产品 | 留言 | 论坛 | 网络协议 | 驱动设计 | 购买指南 | | |
![]() |
![]() |
| 您现在的位置: 嵌入式控制研究室 >> FPGA >> HDL专栏 >> VHDL >> 文章正文 |
|
|||||
| 可编程逻辑器件在数字系统中的应用 | |||||
| 作者:冯 祥 文章来源:国外电子元器件 点击数: 更新时间:2006-4-12 | |||||
|
关键词:数字信号处理 乘法器VHDL PLD 1 引言 随着半导体技术的发展,可编程逻辑器件在结构、工艺、集成度、功能、速度和灵活性等方面有了很大的改进和提高,从而为高效率、高质量、灵活地设计数字系统提供了可靠性。CPLD或FPGA技术的出现,为DSP系统的设计又提供了一种崭新的方法。利用CPLD或FPGA设计的DSP系统具有良好的灵活性和极强的实时性。同时,其价格又可以被大众接受。由于乘法器在数字信号处理系统中具有广泛的应用,所以本文以乘法器的处理系统中具有广泛的应用,所以本文以乘法器的设计为例,来说明采用可编程逻辑器件设计数字系统的方法。如果想使系统具有较快的工作速度,可以采用组合逻辑电路构成的乘法器,但是,这样的乘法器需占用大量的硬件资源,因而很难实现宽位乘法器功能。本文这种用于序逻辑电路构成的乘法器,既节省了芯片资源,又能满足工作速度及原理的要求,因而具有一定的实用价值。 2 系统构成 该乘法器通过逐项移位相加来实现乘法功能。 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,因而具有一定的实用价值。 |
|||||
| 文章录入:fengfeiyi 责任编辑:fengfeiyi | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 | | |
![]() |
站长:康草科技 |