您好、欢迎来到现金彩票网!
当前位置:彩之网 > 状态机 >

verilogVHDL 状态机到底可否只写在一个process当中

发布时间:2019-07-03 23:55 来源:未知 编辑:admin

  verilogVHDL 状态机到底可否只写在一个process当中

  verilogVHDL 状态机到底可否只写在一个process当中

  从道理上讲因为没有process间的延迟所以无法保证信号的保持时间,但从modelsim模拟来看好像问题不大?是不是编译器自动优化成2个process了?请大神讲解?...

  从道理上讲因为没有process间的延迟所以无法保证信号的保持时间,但从modelsim模拟来看好像问题不大?是不是编译器自动优化成2个process了?请大神讲解?

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部没有规定描述状态机一定要写成两个进程,完全可以在一个进程中实现状态机。只不过从教学的方便出发,将状态机中的时序逻辑和组合逻辑分开分析,概念上比较明确,容易学懂而已。因此出现教材上总是将时序逻辑描述放在一个进程,组合逻辑描述放到另一个进程中的现象。因为进程之间是并行的,所以在一个进程中既描述时序逻辑也描述组合逻辑是没有问题的,当然也可以一个进程描述时序逻辑、另一个进程描述组合逻辑,其效果是一样的。编译器不会把一个进程再分成多个进程,反而是无论几个进程,综合器都会将其综合成并行的电路模块,进程反而被综合器综合掉了(因为进程是行为描述,而综合器在综合时会将行为描述转换成RTL描述和结构描述)。更多追问追答追问但是写在一个进程中的话,时序逻辑部分(状态跳转)和组合逻辑部分(根据状态的输出)都是用时钟上下沿在触发,无法理解在一个时钟上下沿处既改变状态又根据状态输出变量。不过听了你的讲解貌似有所理解了,不知可不可以这样理解:这个单进程被综合器用了2级级联的时序逻辑实现,从而保证了状态量的保持时间,使得可以正确读取状态量确定输出量。追答组合逻辑电路是与时钟边沿无关的电路,它的输出只取决于它的输入信号(也就是状态输出)。所以实际上,只有状态机中的时序逻辑电路部分才是根据时钟边沿来触发的。

  如果你写成两个进程就会发现,第一个进程的敏感信号是时钟信号,而第二个进程的敏感信号与时钟信号无关,只与当前状态和除时钟信号之外的输入信号有关。第一个进程是时序逻辑电路,第二个进程是组合逻辑电路。

http://pepdeco.com/zhuangtaiji/186.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有