[工学]vhdl设计方法

[工学]vhdl设计方法

ID:27710472

大小:1.35 MB

页数:54页

时间:2018-12-04

[工学]vhdl设计方法_第1页
[工学]vhdl设计方法_第2页
[工学]vhdl设计方法_第3页
[工学]vhdl设计方法_第4页
[工学]vhdl设计方法_第5页
资源描述:

《[工学]vhdl设计方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、VHDL设计中的一些问题一、VHDL源代码的综合功能相同但是编写不同的代码会产生不同的综合效果;不可能依赖软件工具去综合一个编写很差的源代码;如果能很好理解所作设计的硬件结构,则会使设计有一个良好的开端。三个重要的方面1.考虑硬件结构编写能够描述硬件拓扑结构的代码;不要编写仿真模型;2.考虑同步逻辑同步逻辑在综合、测试、仿真和布线中都比较方便;异步逻辑需要人为操作及一些扩充的仿真功能才能进行验证。(将异步逻辑划分成独立的块单元来编译。)?3.考虑RTL级描述用RTL级的描述意味着描述:寄存器的结构;电路结构;寄存器之间的功能。由编译器优化寄存器之间的逻辑,但不优化寄存器的布局。IF

2、语句的综合IF-ELSE语句隐含了一个多路选择器的硬件结构。例:IF(Aflag=‘1’)THENOutData<=A+B;ELSEOutDate<=C+D;ENDIF;多路选择器的位置取决于IF-ELSE语句的结构IF(Aflag=‘1’)THENOp1<=A;Op2<=B;ELSEOp1<=C;Op2<=D;ENDIF;OutData<=Op1+Op2;若IF语句不带ELSE,可以表示锁存VHDL语言的定义要求信号在没有被赋予新值前保持原来的值。锁存功能在硬件上实现了以上要求。例:LS373:PROCESS(ALE,ADBUS)BEGINIF(ALE=‘1’)THENABUS<

3、=ADBUS;ENDIF;ENDPROCESSLS373;一个二输入与门的设计由于没有ELSE,综合时会被默认为其他情况时:c<=c;PROCESS(a,b)BEGINIF(a=‘1’andb=‘1’)THENc<=‘1’;ENDIF;ENDPROCESS;IF-THEN-ELSIF语句IF-THEN-ELSIF语句隐含了优先级的关系,因此在电路设计中如果有优先级的要求才使用该语句;如果在没有优先级设计要求的情况下使用该语句,那么综合后的逻辑电路会比较复杂,速度较慢;例:中断优先级控制器,int0优先级最高中断优先级控制器的实现IF(int0=‘1’)THENactive(0)<=

4、‘1’;ELSIF(int1=‘1’)THENactive(1)<=‘1’;ELSIF(int2=‘1’)THENactive(2)<=‘1’;ELSEactive(3)<=‘1’;ENDIF;FOR-LOOP语句的综合FOR-LOOP语句首先进行“翻译”,然后再进行综合。PROCESS(a,b)BEGINFORiIN0to3LOOPout(i)<=a(i)ANDb(3-i);ENDLOOP;ENDPROCESS;out(0)<=a(0)ANDb(3);out(1)<=a(1)ANDb(2);out(2)<=a(2)ANDb(1);out(3)<=a(3)ANDb(0);实现奇偶校

5、验的例子PROCESS(data)VARIABLEsum:INTEGER;BEGINsum:=0;FORIIN0to7LOOP--数1的个数sum:=data(i)+sum;ENDLOOP;odd_parity<=summod2;--校验奇偶性ENDPROCESS;综合后操作符对综合结果的影响VHDL编译器对表达式从左至右进行语法分析;圆括号可以改变编译的顺序;例1:ADD<=A+B+C+D;(1)ADD<=(A+B)+(C+D);(2)综合后结果:ADD<=A+B+C+D;综合后结果:ADD<=(A+B)+(C+D);例2:SUM<=A*B+C*D+E+F+G;综合后结果:改变顺

6、序或加括号来改变结构SUM<=E+F+G+C*D+A*B;SUM<=(A*B)+((C*D)+((E+F)+G));二、可综合代码的设计特点1.比较综合和仿真的结果VHDL语言是一种硬件描述和仿真语言;一些仿真结构在综合器中不被支持;2.避免使用WAITFORxxns语句;AFTERxxns语句;信号和变量的赋初值语句;3.使用CASE和IF_ELSE语句IF_ELSE描述一个优先级编码的逻辑;CASE语句描述一种对称平衡的行为;仿真结果一致;综合出来的设计速度会有不同。4.遵循一定的编代码规则选择使用大小写字母的规则;文件名与实体名匹配;给程序添加标号、注释;使用代码缩进、空行、

7、空格等;建议使用std_logic类型;5.例子设计实现一个2-4译码器bcd(1)bcd(0)Led(3)led(2)led(1)led(0)000001010010100100111000方法一:结构描述法基于元件例化和GENERATE语句;建立层次结构;可用简单的逻辑门和复杂的元件来描述系统;互连通过端口实现。调用两个元件:与门ANDGate(调用4次)非门Inverter(调用2次)方法二:数据流描述采用并发代入语句实现;通过输入信号值的改变来激活代入语句。采

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。