当前位置:首页 > 工业控制 > 电子设计自动化
[导读]随着集成电路技术的高速发展,VHDL已成为设计数字硬件时常用的一种重要手段。介绍EDA技术及VHDL语言特点,以串行加法器为例,分析串行加法器的工作原理,提出了一种基于VHDL语言的加法器设计思路,给出串行加法器VHDL源代码,并在MAX+PLUSII软件上进行仿真通过。

1、引言

电子产品随着技术的进步,更新换代速度可谓日新月异。EDAI'辉lectronicDesignAutomatic)技术的应用很好地适应了这一特点。通过设计和编程,由可编程逻辑器件CPLD/FPGAn-构成的数字电路,取代了常规的组合和时序逻辑电路,实现了单片化,使体积、重量、功耗减小,提高了可靠性。

目前EDA技术在一般的数字系统、数字信号处理系统等领域获得广泛应用,它将成为今后电子设计的主流。VHDL语言作为可编程逻辑器件的标准语言描述能力强,覆盖面广,抽象能力强,应用越来越广泛。VHDL语言具有多层次描述系统硬件功能的能力,可以从系统的数学模型直到门级电路,其高层次的行为描述可以与低层次的RTL描述和结构描述混合使用;设计者可以实现从文本编辑、功能仿真、逻辑综合、布局布线、时序仿真到编程下载整个开发过程,大大减轻了设计人员的工作强度,提高了设计质量,减少了出错的机会。下面介绍如何在美国ALTERA公司的MAX+PLUSH平台上应用VHDL实现串行加法器。

2、串行加法器设计原理

多位串行加法器的工作原理阎是从最低位开始逐位相加并向高位进位,基于这个原理,采用移位加法实现串行加法器。设两个无符号数A=a-tart...ao和B=b.-,b,^...bo,两者相加产生的和SUM=S-lS-:...So,其工作原理如图1所示,由三个移位寄存器和一个加法器有限状态机组成,其中三个寄存器用来存放A,B和Sum数据。其工作原理是,假定输人移位寄存器有并行加载功能,首先把A,B的值加载到寄存器,然后在每一个时钟周期,通过加法器有限状态机将相应的一位相加,在时钟周期的结尾处将这一位相加结果移到Sum寄存器。三个寄存器都采用同步正边沿触发器,所有变化都在时钟正边沿之后很快发生,这时三个寄存器的内容都向右移,将已得到的和位移到Sum,并把两个加数寄存器的下一个位a与b:送给加法器有限状态机。

加法器有限状态机的工作原理:由两个状态M和N分别表示进位值0和10状态图如图2所示,采用有限状态机的Mealy模型。由于每一位相加,都是由全加器构成的,因此根据状态图可写出次态全加器的逻辑表达式:

Y=ab+ay+by

s=a+b+y

其中y为进位输人,a和b为两个输人数据,Y为进位输出,s为全加器的和。串行加法器可以实现任意位数据加法的简单电路。

3、基于VHDL串行加法器的实现

串行加法器的VHDL描述由移位寄存器和加法器有限状态机组成。可以把移位寄存器作为一个子电路,在主程序中可以多次调用。

3.1移位寄存器实现

下面是4位移位寄存器的VHDL代码,采用FOR LOOP结构来实现,源程序如下:

LIBRARYIEEE;

USEIEEE.STD-LOGIC-1164.ALL;

ENTITYshiftIS GENERIC(n:INTEGER:=4);

PORT(r:INSTD-LOGIC-VECTOR(n-1DOWNTO0);

1,e,w:INSTD-LOGIC;

clk:INSTD_LOGIC;

q:BUFFERSTD-LOGIC-VECTOR(n-1DOWNTO0));

ENDshift;

ARCHITECTUREbehaOFshiftIS

BEGIN

PROCESS

BEGIN

WATTUNTILclk'EVENTANDclk='1';

IFe='1'THEN

IF1='l'THEN

q<=r,

ELSE

gebit:FORiIN0TOn-2LOOP

q(i)<=q(i+l);

END LOOP;

q(n-1)<=w;

ENDIF;

ENDIF;

ENDPROCESS;

ENDbeha;

若要实现更多位移位寄存器,则只要修改n值即可。程序中r是输人信号,clk是时钟信号,e是使能端。当1='1’时对移位寄存器并行加载,卜'0’时,寄存器处于右移状态,串行数据从输人端w移人寄存器的最高位。仿真结果如图3所示。

3.2串行加法器的VHDL设计

八位串行加法器VHDL代码如下:

LIBRARYIEEE;

USEIEEE.STDLOGIC-1164.ALL;

ENTITY adderIS

GENERIC(length:INTEGER:=8);

PORT(erset:INSTDLOGIC;

clk:INSTD-LOGIC;

a,b:INSTD-LOGIC-VECTOR(length-1DOWNTO0);

co:outSTD-LOGIC;

sum:BUFFERSTD-LOGIC-VECTOR(length一1DOWNTO0));

ENDadder;

ARCHITECTUREbehaOFadderIS COMPONENTshift

GENERIC(n:INTEGER:=4);

PORT(r:INSTD-LOGIC-VECTOR(n-1DOWNTO1,e,w:INSTD-LOGIC;

elk:INSTD-LOGIC;

q:BUFFERSTD-LOGIC-VECTOR(n-1DOWNTO0));

ENDCOMPONENT;

SIGNALga,gb,null-in:STD_LOGIC-VECTOR(length-1DOWNTO0);

SIGNALs,low,high,run:STD-LOGIC;

SIGNALcount:INTEGERRANGE0TOlength;

TYPEstate-typeIS(M,N);

SIGNALy:state-type;

BEGIN

low<='0';

high<二,1';

shiftA:shiftGENERICMAP(n=>length)PORTMAP(a,erset,high,low,clk,ga);

shiftB:shiftGENERICMAP(n=>length)PORTMAP(b,reset,high,low,clk,gb);

adderFSM:PROCESS(erset,clk)BEGIN

IFerset='l'THEN

y<=M;

ELSIFelk'EVENTANDclk='1'THEN

CASEyIS

WHENM=>IF(qa(0),1'ANDqb(0)='1')THENy<=N;

ELSE

y<=M;

ENDIF;

WHENN=>

IF(ga(0)='0'ANDqb(0)='0')THENy<-M;

ELSE

y<=N;

ENDIF;

ENDCASE;

ENDIF;

ENDPROCESSadderFSM;

WITHySELECT

s<-ga(0)XORqb(0)WHENM,

NOT(ga(0)XORqb(0))WHENN;

Null_in<二(OTHERS=>'0');

shiftsum:shiftGENERICMAP(n=>length)

PORTMAP(nulin,erset,run,s,clk,sum);

stop:PROCESS

BEGIN

WAITUNTIL(elk'EVENTANDclk='1');

IFerset='1'THEN

count<=length;

E,ISIFrun='l'THEN

count<=count-1;

ENDIF;

ENDPROCESS;

run<='0'WHENcount-OELSE'1';

co一out:PROCESS

BEGIN

WAITUNTIL(clk-EVENTANDclk='1');

IFy=MTHEN

co<=,0';

EISE

co<=,1';

ENDIF;

ENDPROCESScoout;

ENDbeha;

程序中采用三个进程描述:adderFSM进程描述加法器有限状态机;stop进程描述减法计数器,用来决定加法器什么时候由于n位所要求的和出现在输出移位寄存器而停止;co-out描述进位co输出。

程序经Max+PlusII中的Compiler编译,再通过Simulator和Timinganalyzer工具分别进行功能仿真和时序仿真,仿真结果如图4所示,其中reset是输人控制端,clk是时钟信号,a和b是输人数据,sum是和数,co是进位,y表示有限状态机的状态。仿真正确后,可通过计算机并口上的Byteblaster下载电缆将生成的配置文件直接下载到芯片MAXEPM7128SLC84-15进行验证,测试结果与实际相符。

4、结束语

本文通过串行加法器VHDL设计表明,VHDL在逻辑电路的设计中具有以下优点:

(1)VHDL语言硬件描述能力强、设计方法灵活;(2)设计者只需掌握VHDL语言及相关EDA设计软件的使用,而不需考虑较多的硬件结构就可以设计所需要的数字系统;(3)随时可对设计内容进行仿真,查验系统功能;(4)程序可移植性强、易于修改;因此,随着集成电路技术的高速发展,作为当代电子设计人员,HDL已成为设计数字硬件时常用的一种重要手段。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

4月24日消息,华为今日举办了2024华为智能汽车解决方案发布会。

关键字: 华为 12nm EDA 半导体

4月10日消息,日前边缘计算社区正式发布了“2024中国边缘计算企业20强榜单”,华为位居第一。

关键字: 华为 12nm EDA 半导体

4月8日消息,钱多到没地方花,对于大部分人或公司而言都是一个梦想。

关键字: 华为 12nm EDA 半导体

4月2日消息,据上清所披露,华为投资控股有限公司发布关于分配股利的公告,拟向股东分配股利人民币770.95亿元。

关键字: 华为 12nm EDA 半导体

华为2023年年度报告显示,华为2023年实现全球销售收入7,042亿元人民币,同比增长9.64%,净利润为870亿元人民币,同比暴涨144.38%。

关键字: 华为 12nm EDA 半导体

3月29日消息,市场研究机构Counterpoint Research发布的报告显示,预计今年高端手机(600-799美元)出货量将同比增长17%,而这主要是靠苹果和华为的拉动。

关键字: 华为 12nm EDA 半导体

3月24日消息,今天数码博主“厂长是关同学”曝光了华为Mate 70系列手机的部分配置信息。

关键字: 华为 12nm EDA 半导体

新思科技全球总裁兼首席执行官Sassine Ghazi深入分享万物智能时代的全新机遇

关键字: EDA AI IP

3月20日消息,据国外媒体报道称,华为正在积极研发一种前沿的“磁电”存储技术,该技术有望彻底改变数据存储行业的格局。

关键字: 华为 12nm EDA 半导体
关闭
关闭