基于verilog hdl的时序电路设计.docx

上传人:b****9 文档编号:29166393 上传时间:2023-07-21 格式:DOCX 页数:18 大小:277.05KB
下载 相关 举报
基于verilog hdl的时序电路设计.docx_第1页
第1页 / 共18页
基于verilog hdl的时序电路设计.docx_第2页
第2页 / 共18页
基于verilog hdl的时序电路设计.docx_第3页
第3页 / 共18页
基于verilog hdl的时序电路设计.docx_第4页
第4页 / 共18页
基于verilog hdl的时序电路设计.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

基于verilog hdl的时序电路设计.docx

《基于verilog hdl的时序电路设计.docx》由会员分享,可在线阅读,更多相关《基于verilog hdl的时序电路设计.docx(18页珍藏版)》请在冰豆网上搜索。

基于verilog hdl的时序电路设计.docx

基于veriloghdl的时序电路设计

摘要······················································································1

关键词··················································································1

1引言····················································································2

2时序逻辑电路······································································3

2.1时序逻辑电路概述······························································3

2.2同步时序逻辑电路的一般设计方法·········································4

3设计····················································································5

3.1二进制计数器原理······························································53.1.1同步二进制加法计数器的原理·········································5

3.2二进制计数器设计······························································6

3.2.1四位二进制计数器的设计················································6

4硬件描述语言VHDL设计及仿真···········································8

4.1:

用VHDL设计四位二进制加法计数器········································8

4.2:

仿真·················································································9

4.2.1仿真波形·········································································9

4.2.2时序分析·········································································10

5体会与展望·········································································11

6参考文献·············································································12

7附件····················································································13

 

同步二进制加法计数器的设计与仿真

摘要:

本文首先介绍了同步时序逻辑电路一般设计步骤,然后在理解和掌握同步二进制计数器原理的基础上,采用传统的设计方法设计出了一个同步四位二进制加法计数器,并且运用软件对四位二进制计数器进行了仿真,根据仿真结果,对时序和波形进行了分析。

最后采用VHDL语言设计了一个复杂的四位二进制加法计数器。

 

关键词:

时序逻辑电路,同步二进制加法计数器,VHDL语言,仿真

Designandsimulationofsynchronousbinarycarrycounter

Abstract:

thispaperintroducestheordinarydesignmethodofsequentiallogiccircuitatfirst.Thenonthebasisoftheprincipleandthestructureofsynchronousbinarycounters,Idesignsupafourbinarycarrycounter.Thecircuitisdesignedandthesimulationofthiscircuitiscarriedoutby.Accordingtotheresultsofthesimulation,itswaveformandtimingdelayareanalyzed.Atlast,withthehelpofVHDLlanguage,Idesignsupacomplexsynchronousbinarycarrycounter.

 

Keywords:

sequentiallogiccircuit,synchronousbinarycounters,VHDLlanguage,,simulation

 

1引言

计数器是数字电子技术中应用的最多的时序逻辑电路。

计数器不仅能用于对时钟脉冲计数,还可以用于分频、定时、产生节拍脉冲和脉冲序列以及进行数字运算等。

但是并无法显示计算结果,一般都是要通过外接LCD或LED屏才能显示。

20世纪70年代开始,用数字电路处理模拟信号的所谓“数字化”浪潮已经席卷了电子技术几乎所有的应用领域.时序电路的运用随处可见。

计数器是数字电路中使用最多的一种时序逻辑电路。

计数器是大规模集成电路中运用最广泛的结构之一。

计数器在现在电子电路中有着广泛的应用,它已经成为了数字设备常用的基本部件之一。

一个系统性能的好坏,常常与计数器的性能关系很大。

计数器的种类繁多。

按照计数器中的触发器是否同时翻转分类,可把计数器分为同步计数器和异步计数器,常用的同步计数器有74160系列、74LS190系列,常用的异步计数器有74LS290系列。

计数器是一种基础测量仪器,到目前为止已有30多年的发展史,早期设计师们追求的目标主要是扩展测量范围再加上提高测量精度和稳定度等,这些也是人们衡量电子计算器的技术水平,也决定电子计数器价格高低的主要依据,随着科学技术的发展,用户对电子计数器也提出了新的要求,对于低档产品要求使用操作方面,量程(足够)宽,可靠性高,价格低。

而对于中高档产品,则要求高分辨率,高精度,高稳定度,高测量速率。

目前主要采用两种设计方法来进行计数器的设计,第一种为采用传统的硬件电路设计方法来设计硬件,第二种为采用HDL语言来设计系统硬件。

电子设计自动化的普及与CPLD/FPGA器件的广泛应用,使得计数器的设计变得非常容易。

其中可编程计数器使用方便,灵活,能满足工程上的多种应用。

为了提高工业控制器中高速计数器的计数频率,利用FPGA设计,采用层次化的VHDL语言程序设计,可以有效地提高效率和增加灵活性。

高速计数器

累计比PLC扫描频率高得多的脉冲输入,利用中断事件完成既定的操作。

本文先对时序逻辑电路的分析方法进行一下简单的介绍,继而分析同步二进制加法计数器,最后对同步二进制加法计数器进行设计,对其性能进行分析,最后讨论了一下VHDL语言设计二进制加法计数器的优点及步骤。

 

2同步时序逻辑电路的设计方法

2.1时序逻辑电路概述

在时序逻辑电路中,任意时刻的输出信号不仅取决于当时的输入信号,而且还取决于电路原来的状态,或者说,还与以前的输入有关。

具备这种逻辑功能特点的电路为时序逻辑电路(sequentiallogiccircuit,简称时序电路)。

时序逻辑电路在结构上有两个显著的特点,如图1所示。

第一,时序电路通常包含组合电路和存储电路两个组成部分,而存储电路是必不可少的。

第二,存储电路的输出状态必须反馈到组合电路的输入端,与输入信号一起,共同决定组合逻辑电路的输出。

由于存储电路中触发器的动作特点不同,在时序电路中又有同步时序电路和异步时序电路之分。

在同步时序电路中,所有触发器状态的变化都是在同一时钟信号操作下同时发生的。

而在异步时序电路中,触发器状态的变化不是同时发生的。

此课程设计的研究就是主要针对同步时序电路中的计数器。

 

图1时序逻辑电路的逻辑框图

时序电路的框图可以画成图1所示的普通形式,图中的

代表输入信号,

代表输出信号,

代表存储电路的输入信号,

代表存储电路的输出。

这些信号的逻辑关系可以用三个向量函数来描述:

2.2同步时序逻辑电路的一般设计方法

在设计时序逻辑电路时,要求设计者根据给出的具体逻辑问题,求出实现这一逻辑功能的逻辑电路。

所得到的设计结果应力求简单。

当选用小规模集成电路做设计时,电路最简的标准是所用的触发器和门电路的数目最少,而且触发器和门电路的输入端输入数目也最少。

而当使用中、大规模集成电路时,电路最简的标准是使用的集成电路数目最少,种类最少,而且互相间的连线也最少。

一般按如下步骤进行:

一、逻辑抽象,得出电路的状态转换图或状态转换表

二、状态化简

三、状态分配

四、选定触发器的类型,求出电路的状态方程、驱动方程和输出方程

五、根据得到的方程式画出逻辑图

六、检查设计的电路能否自启动

至此,逻辑设计工作已经完成。

上述设计工作的大致过程如图2所示。

图2同步时序逻辑电路的设计过程

 

3设计

目前生产的同步计数器芯片基本上分为二进制和十进制两种,而十进制同步计数器的设计原理是以二进制同步计数器为基础的。

下面首先简单介绍二进制同步计数器构成所用到的T触发器的逻辑功能和特性,继而对同步二进制加法计数器的逻辑电路、驱动方程、状态方程、输出方程等等进行分析,再根据同步时序逻辑电路的设计步骤设计同步二进制加法计数器。

3.1二进制计数器原理

3.1.1同步二进制计数器的原理

根据二进制加法运算法则可知,在一个多位二进制数的末位加1时,若其第I位(即任何一位)以下各位皆为1时,则第I位应改变状态(由0变成1,由1变成0)。

而最低位的状态在每次加1时都要改变。

例如

1011011+1=1011100

按照上如原则,最低的三位改变了状态,而高四位状态未变。

由T触发器构成同步计数器,其结构形式有两种。

一种是控制输入端T的状态。

当每次CLK信号(也就是计数脉冲)到达时,是该翻转的那些触发器输入控制端

,不该翻转的

另一种形式是控制时钟信号,每次计数脉冲到达时,只能加到该翻转的那些触发器的CLK输入端上,而不能加给那些不该翻转的触发器。

同时,将所有的触发器接成

的状态。

由此可知,当通过T端的状态控制时,第i位触发器输入端的逻辑式应为

(1)

只有最低位例外,按照计数规则,每次输入计数脉冲时它都要翻转,故

3.2二进制计数器设计

自下向上的硬件电路设计方法的主要步骤是:

根据系统对硬件的要求,详细编制技术规格书,并画出系统控制流图,对系统的功能进行细化,合理地划分功能模块,并画出系统的功能框图;接着进行各功能模块的细化和电路设计;各功能模块的电路设计、调试完成后,将各功能模块的硬件电路连接起来再进行调试;最后完成整个系统的硬件设计。

自下至上的设计方法充分体现在各功能模块的电路设计中。

下面以四位二进制计数器为例加以说明。

3.2.1四位二进制计数器设计

逻辑抽象,得到电路的状态转换图或状态转换表。

取进位信号为输出逻辑变量C,同时规定有进位输出时C=1,无进位输出时C=0。

十进制计数器应该有十六个有效状态若分别用S0、S1、···

表示

假如对状态分配无特殊要求,可以取自然二进制数0000~1111作为S0~S15的编码,状态编码如表1所示。

计数脉冲

电路状态

等效十进制数

进位输出C

Q3

Q2

Q1

Q0

0

0

0

0

0

0

0

1

0

0

0

1

1

0

2

0

0

1

0

2

0

3

0

0

1

1

3

0

4

0

1

0

0

4

0

5

0

1

0

1

5

0

6

0

1

1

0

6

0

7

0

1

1

1

7

0

8

1

0

0

0

8

0

9

1

0

0

1

9

0

10

1

0

1

0

10

0

11

1

0

1

1

11

0

12

1

1

0

0

12

0

13

1

1

0

1

13

0

14

1

1

1

0

14

0

15

1

1

1

1

15

1

16

0

0

0

0

0

0

 

表1:

二进制电路的状态转换表

由于电路的次态Q3*Q2*Q1*Q0*和进位输出C唯一地取决于电路的现态Q3Q2Q1Q0的取值,故可根据表1画出表示次态逻辑函数和进位输出函数的卡诺图,

从卡诺图可以得到电路的状态方程为:

(2)

电路的输出方程为

(3)

各触发器的驱动方程为

(4)

Q1Q0

Q3Q2

00

01

11

10

00

0001/0

0010/0

0100/0

0011/0

01

0101/0

0110/0

1000/0

0111/0

11

1101/0

1110/0

0000/1

1111/0

10

1001/0

1010/0

1100/0

1011/0

 

表2电路次态输出

根据状态方程和输出方程求出电路的状态转换表。

利用第16个计数脉冲到达时C端电位的下降可作为向高位计数器电路进位的输出信号。

若计数输入脉冲的频率为

,则Q0、Q1、Q2和Q3端输出脉冲的频率将依次为

针对计数器的这种分频功能,也将它称为分频器。

此外,每输入16个计数脉冲计数器工作一个循环,并在输出端Q3产生一个进位输出信号,所以又将这个电路称为16进制计数器。

计数器中能计到的最大数称为计数器的容量,它等于计数器所有各位全为1时数值。

位二进制计数器的容量等于

-1。

在实际生产的计数器芯片中,往往还会附加一些控制电路,以增加电路的功能和使用的灵活性。

例如增加预置数、保持和异步置零等附加功能。

4硬件描述语言VHDL设计及仿真

4.1用VHDL设计四位二进制加法计数器

采用VHDL语言设计一个4位二进制计数器74163,它具有同步清零、同步置数、计数控制和进位输出控制功能。

如图3所示。

图34位二进制计数器74163

各端口功能:

CLK:

时钟信号,上升沿计数;

CLRL:

同步清零端,低电平有效;

LDL:

同步置位控制端,低电平有效;

ENP:

与ENT同时为‘1’时,计数使能;

ENT:

为‘1’时,可进行进位;

D[3..0]:

计数器置数输入;

Q[3..0]:

计数器状态输出;

RCO:

计数器进位输出。

4.2仿真

4.2.1仿真波形

 

图4仿真波形

从仿真波形看,非常好的实现了既定的功能,从理论上来讲,这是一个比较合理的设计,功能比较复杂,但是实现过程还是比较的简单。

但是在实际的应用过程之中还要考虑延时,抖动等诸多因素。

4.2.2时序分析

1:

建立和保持时间分析:

图5建立和保持时间分析

建立和保持时间分析用来计算从输入引脚到触发器,锁存器和异步RAM的信号输入所需的最少建立时间和保持时间。

图显示clrl到触发器count_40.Q所需的最小建立/保持时间为3.3ns/0.0ns,而其他的输入到各个触发器的时间各有差异。

2:

时序逻辑电路性能分析:

图6性能分析图

图6显示被分析的时钟名称为clk,制约性能的源节点为cout_43.Q.时钟信号的最高频率为113.63MHz,所需的最小时钟周期为8.8ns.

3:

传输延迟分析:

图7传输延迟图

通过图,可以看到输入节点clk到所有目标之间的延迟为2.8ns,因为clk为全局时钟,它到所有逻辑单元的延迟相同。

单击ListPaths按钮,弹出的时间分析结果提示对话框提示设计者已完成了最长延迟路径的分析。

5体会与展望

通过做课程设计,我基本掌握了同步二进制加法计数器的设计与仿真方法,自己的动手能力有了进一步的提高。

采用传统的时序逻辑电路的设计方法,做出来的四位二进制计数器能够满足基本的设计要求,但是不易实现复杂的控制功能。

在仿真的时候,存在波形延时和时序误差,给它的应用带来的不利的影响。

在实际设计过程中要根据实际情况来选择器件和电路,以求达到最佳的效果。

在设计过程中我根据要求,只设计要计数器的核心部分,与实际在市场上流通的计数器相比,还有许多的不足之处,需要加以改进。

由于本人能力有限,目前只能够做到这样的水平,我会在以后加以提高。

6参考文献

[1]曾专武黄卫立.任意模值的计数器设计比较[J].湖南城市学院学报.2003,6期:

119-121页

[2]李锋卢佩刘成臣.应用VHDL语言在PLD器件上设计实现可编程计数器[J].现代电子技术.2002年,5期:

51-53页

[3]何永泰肖丽仙.基于FPGA的高速计数器设计[J].电气应用.2006年,4期:

140-142页.

[4]阎石.数字电子技术基础(第五版)[M].北京:

高等教育出版社,2006.

[5]王辉殷颖陈婷.MAX+plus2和Quartus2应用与开发技巧[M].机械工业出版社,2007

[6]侯伯亨,刘凯,顾新.VHDL硬件描述语言与数字逻辑电路设计(第三版)[M].西安:

电子科技大学出版社,2009.

[7]东方人华.MAX+plus2入门与提高[M].北京:

清华大学出版社.2004

[8]郑燕.基于VHDL语言与QuartusⅡ软件的可编程逻辑器件应用与开发.2007.

[9]杨晓慧.基于FPGA的EDA/SOPC技术与VHDL.2007.

[10]张霞.VHDL在现代EDA中的应用.2001.

[11]潘松、黄继业.EDA技术实用教程2002.

[12]李志方.EDA技术简介.2001.

[13]TOnomi.high-speedsingleflux-quantumup/downcounterforneural

computationusingstochasticlogic[J].Journalofphysics,Issue1,2008

[14]Krishnaswamy,S.;Plaza,S.M.;Markov,I.L.;Hayes,J.P. Signature-BasedSERAnalysisandDesignofLogicCircuits.Computer-AidedDesignofIntegratedCircuitsandSystems,IEEETransactionson,2009,Vol.28 ,No.1:

3-8

[15]T.Grzes;V.SalauyouandI.Bulatova.Powerestimationmethodsindigitalcircuitdesign.Optoelectronics,InstrumentationandDataProcessing,2009,Vol.45,No.6:

4-7.

 

7附件

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityk74163is

port(clk,clrl,ldl,enp,ent:

instd_logic;

d:

instd_logic_vector(3downto0);

q:

outstd_logic_vector(3downto0);

rco:

outstd_logic);

endentityk74163;

architecturertlofk74163is

signalcount_4:

std_logic_vector(3downto0);

begin

q<=count_4;

process(clk,clrl,ldl,enp,ent)is

begin

if(clk'eventandclk='1')then

if(clrl='0')then

count_4<="0000";

elsif(ldl='0')then

count_4<=d;

elsif(ent='1')then

if(count_4="1111")

thenrco<='1';count_4<="0000";

elsif(enp='1')

thencount_4<=count_4+'1';

endif;

endif;

endif;

endprocess;

endarchitecturert

 

赣南师范学院2011—2012学年第_二_学期课程设计

行政班级09级电子科学与技术学号0908030姓名

选课班级09级电子科学与技术任课教师陈建萍成绩

课程设计题目:

基于VerilogHDL的时序电路设计

设计要求:

1、基于Veriloghdl进行设计

2、必须采用原理图输入法

3、电路各个组成部分须有设计说明

 

设计型报告评分标准:

1、有合理的方案设计和论证、电路参数的计算、总原理图和清单。

(0-40分)

2、电路仿真符合设计要求,并能正确显示电路仿真结果。

(0-40分)

3、对课程设计进行了总结,有体会,并能提出设计的改进、建设性意见,并且课程设计书写正确,格式规范。

(0-20分)

设计报告成绩:

教师签字:

年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1