还有一个使电路复杂化的原因是逻辑电路的输入项太多以致需占用过多的面积。我们从图3和图4两个相同功能的逻辑电路和他们对应的VHDL描述来分析。
比较两图可知,图3是二级逻辑门,每个输入信号与不只一个逻辑门相连,图4是三级的逻辑门,每个输入信号只与一逻辑门相连。由于级数少,延时也较少,因此图3的速度要比图4快。然而,由于图3的输入项要比图4大的多(10:5),因此,占用的面积必然也比图3大。图4是图3通过提取公因数(例中是B和C)得来的,这是把附加的中间项加到结构描述中去的一种过程,它使输入到输出中的逻辑级数增加,牺牲速度换来电路占用面积的减少。对于对延时要求不高的情况下采用这种方法分解逻辑电路以达到减少电路复杂度的目的。
通过以上简单、初步的探讨,我们可以知道,用VHDL进行集成电路的设计,牵涉到对VHDL语言的使用方法和对设计的理解程度。本文讨论了以下几个简化和优化电路设计的3个值得注意的方面:
(1)在用VHDL进行设计中要注意避免不必要的寄存器描述。
(2)在编写程序前要先对整个设计进行较深入的了解�科学的划分设计,多设想几种方案�再进行比较�用多个较少位数的单元取代较多位数的单元。
(3)在延时要求不高的情况下,可提取逻辑电路公因子�把它分解成含有中间变量的多级电路。
数据流描述(dataflow description)以基本信号为基础,描述信号间的相互关系(函数关系),也称为“寄存器传输描述方式”,认为各信号随时存放于各寄存器中,信号的变化只是经过适当 *** 作后在寄存器之间的传递。数据流描述使用赋值类语句,它描述了数据流程的运动路径、运动方向和运动结果,与使用进程process的系统级描述是不同的。下面是数据流描述常用的几个句式:
数据流描述方式的结构体形式:
Architecture d of 实体名 is
类型说明;
常量说明;
信号说明;
函数定义;
begin
赋值类语句; (并行语句,为信号赋值,表达信号输入/输出关系)
end d;
1.直接赋值语句:
信号名<= 信号值(表达式);
注意的问题:
赋值式双方应为相同类型;
当采用一种类型时,表达式涉及的运算应与该类型相容;
实际数字电路中,信号的类型通常为“STD_LOGIC”,对应的运算通常为逻辑运算;
2.条件赋值语句:
信号名<=表达式1 when 布尔表达式1 else
……
表达式n when 布尔表达式n else
表达式(n+1);
注意的问题:
可以用于表达信号的控制传输;通常采用多个2选1数据选择器形成串接形式;
布尔表达式采用的运算只能是关系运算,结果为“true”时执行when之前的表达式,结果为“false”的时候执行else 之后的语句;
<= 既是赋值符号,又是小于等于符号,在使用时应注意场合和意义;
3.选择赋值语句:
with 选择表达式 select
信号名<=表达式 when 选择值;
……
表达式 when others;
注意的问题:
选择赋值语句根据选择表达式当前所取的不同选择值,对信号进行不同赋值;
语句应用与条件赋值语句类似,用于信号的控制传输;通常采用多路数据选择器方式实现;
4.时间延迟语句
数据在传输过程中必然出现时间延迟,为了表达信号的延时,可以在赋值语句中加上对于延迟时间的说明;
信号名<=表达式 after k ns;
各信号之间的传输时间可以表达门电路的延迟,也可以表达传输线的延迟,可以根据实验的结果来不断修改;
在基本门电路的设计时,可以为上升沿和下降沿分别设定不同的延迟时间;
after语句只是对电路物理性质的一种模拟描述,可以方便于仿真检查,但对于电路综合不会产生任何影响。
计算机组成原理是计算机科学与技术学科的支柱,也是计算机专业的最重要的基础教育之一。在计算机组成原理和数字电路实验中使用VHDL语言的最大优势在于其强大的描述能力,与其他描述语言相比具有诸多优势。
VHDL语言为学生提供了概念化和设计环境的能力,交替使用不同的算法来编译电路的运行,并根据编写的代码自行进行各种模拟和测试,以使编译达到最佳效果。
这样的实验过程更能激发学生的学习兴趣和实践兴趣,进一步提高学生的实践能力和创新能力。作为一名计算机专业的大三学生,下面和大家分享一些VHDL的知识。
——
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)