当前位置:高校自动化网 >> fpga >> 浏览文章

VHDL综合设计经验

文章来源:ednchina 作者:zrtech


该文章讲述了VHDL综合设计经验.

 

 

VHDL作为一种硬件描述和仿真语言,

最终要实现的是实际硬件电路;为了得到可综合的有效设计,通常在编程时要注意以下几点:

 

1.命名约定


在大多数设计中,常常会忽视建立、采用一种良好的命名约定。拥有好的命名约定就意味着设计清爽而系统化,对于其他设计者也具有很好的可读性。拥有好的命名约定,设计者看到信号的名字就能够很容
易联想出其功能。


2.STD_LOGIC类型的使用


建议在设计用来综合的VHDL代码时只使用STD_LOGIC类型(对总线采用STD_LOGIC_VECTOR类型)。如果只使用这一种类型,那么在将各模块集成起来的时候就无须考虑类型转换。


3.谨慎使用BUFFER


对于打算在设计对象内部对输出端口进行反馈的设计,提倡将该输出端口定义成OUTPUT端口,并另外建立一个与此输出端口相关联的信号,然后用该信号在设计对象内部实现反馈。不提倡将输出端口定义为BUFFER并在内部反馈该端口。使用BUFFER声明会在将各个模块集成起来的时候引起问题,这是因为与声明成BUFFER的端口相连接的每一个端口都必须声明成BUFFER端口。


4.完整的敏感表


如果在时序进程的敏感表中未列全信号,那么其综合前和综合后的仿真结果可能会不同。Design compiler在读入敏感表不完整的VHDL源文件时将发出正在读人的文件具有不完整的敏感表的警告信息。

 


5.进程中不要混用组合逻辑和时序逻辑

 

总是提倡设计者将组合逻辑和时序逻辑分开来写,一个进程用于组合逻辑,另一个进程用于时序逻辑。这样做了之后,设计者就有两个更大的灵活性。使用不同的进程,也会让vHDL代码变得更有可读性。

 


6.保证IF语句与CASE语句的完整性


IF语句会综合出优先级编码器,而cAsE语句将综合出多路选择器。然而,无论采用哪一种语句,都建议列出全部条件而不遗漏任何未列出的条件。这样就能确保综合过程中不会产生一个意料之外的锁存器。

 


 

7.尽量不使用WAIT FOR XX ns语句和AFTER XXns语句

 

xx ns表明在执行下一操作之前需要等待的时间,但综合器不予支持,一般忽略该时间,而不会综合成某种元件,故对于包含此类语句的程序,仿真结果与综合结果往往不一致。

 

 

相关文章:
  • 分享modelsim下编译xilinx库的方法
  • FPGA播放声音和音乐
  • 项目日志7——板级调试
  • 上一篇:NIOSII的USB主机模式
    下一篇:Modelsim仿真设计
    最近更新