EETOP 创芯网论坛 (原名:电子顶级开发网)

标题: 请问,always里最多可以@几个边沿敏感条件? [打印本页]

作者: whhit    时间: 2019-5-8 16:30
标题: 请问,always里最多可以@几个边沿敏感条件?
有人说,里面不超过2个边沿,有这个限制吗?

我仿真的时候,可以加多于2个边沿。

QUARTUS ii 可以加多于2个边沿不报变压错误,但是结果不对。
如果边沿少于2个,结果正确。

没查到这方面的资料?论坛里哪位有经验,帮我解答解答,多谢?

或者always还有一些别的限制?

作者: SuperJourney    时间: 2019-5-8 16:46
把代码贴上来看看。是不是写的不对
作者: asic_service    时间: 2019-5-8 17:09
不是几个的问题,是要能map到实际的基本cell。
1:写1个edge, 基本就是clock,用同步复位寄存器;
2:写2个edge,一个clk,一个复位(0)或置位(1)。用异步复位寄存器;
3:写3个edge,一个clk,一个复位,一个置位。用同时带有异步置位/复位的寄存器(这个用的很少,ASIC可以有对应的基本cell);

回答完,推荐一个数字IC/fpga设计深度入门课:http://bbs.eetop.cn/thread-854132-1-2.html
作者: woai2020    时间: 2019-5-8 23:22
标准写法推荐设计中最多两个沿触发,语法本身是支持的,仿真没有问题,但考虑底层的单元(FPGA/ASIC)均不建议这样写,这样会导致综合映射出问题!

作者: whhit    时间: 2019-5-9 09:21
整理一下我的代码和测试结果:测试条件如下:quartus ii 12.0. CPLD/5M570系列,clk时钟40MHz。 count_r为 9位宽。


作者: whhit    时间: 2019-5-9 09:36


   
asic_service 发表于 2019-5-8 17:09
不是几个的问题,是要能map到实际的基本cell。
1:写1个edge, 基本就是clock,用同步复位寄存器;
2:写2个 ...


感谢回答

作者: gaurson    时间: 2019-5-9 15:29
语言本身的限制是没有的,但是作为一门描述性语言,必须要依托于硬件cell本身,所以还是有限制的。除非什么时候能够设计出这样的cell。
作者: zfgu    时间: 2019-5-10 15:23

语言本身的限制是没有的




欢迎光临 EETOP 创芯网论坛 (原名:电子顶级开发网) (https://bbs.eetop.cn/) Powered by Discuz! X3.5