集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 4301|回复: 10

关于always语句

[复制链接]
wolfson 发表于 2011-5-9 20:26:08 | 显示全部楼层 |阅读模式
见如下例句:
always @(posedge clk or posedge clr) ;

问题: always语句敏感触发沿列表里面 是否可以有两个 Posedge 触发沿,即上述语句是否合法。
至芯兴洪 发表于 2011-5-9 20:38:46 | 显示全部楼层
如果你的clr是复位信号,如rst的话,就是合法的
如果是指其他时钟信号的话那样的写法应该是错的,我没见过那样的写法
 楼主| wolfson 发表于 2011-5-9 20:44:37 | 显示全部楼层
网上下了一些例子,很多都是这么写的。目前比较疑惑。
至芯兴洪 发表于 2011-5-9 21:02:07 | 显示全部楼层
那个信号一般都是复位信号了,如果是时钟信号的话不太肯能,我建议哈!你不必看网上的代码了,见看看夏老师书上怎么写的就行了;
在always模块里面,就只有一个时钟信号clk和一个复位信号reset。或者就只有一个时钟信号
 楼主| wolfson 发表于 2011-5-9 22:05:30 | 显示全部楼层
1、在以下语句:
always@( posedge clk)
    begin
       .....
      end
块语句 begin 和end 之间是否可以:描述一个组合逻辑或者一个时序逻辑,或者两者的皆有?
2、 以下语句:
always@(a or b)
    begin
         ...
      end
因为a,b是电平触发, 那么块语句begin和end之间,只能描述组合逻辑 ?
至芯兴洪 发表于 2011-5-9 22:22:56 | 显示全部楼层
第一个:只能描述时序逻辑。
带有posedge negedge关键字的时事件表达式表示沿触发的时序逻辑,没有posedge negedge关键字的表示组合逻辑或电平敏感的锁存器
第二个:只能是组合逻辑了
 楼主| wolfson 发表于 2011-5-9 22:25:21 | 显示全部楼层
那always语句什么时候可以在语句块begin 和end之间,同时描述组合逻辑和时序逻辑。
至芯兴洪 发表于 2011-5-9 22:32:48 | 显示全部楼层
那是不能同时的
组合逻辑可用always (a or b)的形式或使用assign语句
时序逻辑用沿触发,不能使用混乱
平时注意代码书写规范,阻塞非阻塞的正确使用
luckymiaojw 发表于 2011-5-9 22:35:00 | 显示全部楼层
具体看你要干什么了,这么写是没有问题的,verilog不会规定这么写就不行,但是一般情况下一个always模块里面最好不要有两个时钟信号来触发,这样逻辑很不好控制。一般情况下在FPGA代码里,做异步复位会这么写,但是做同步复位就会只有一个触发信号
zjj81515 发表于 2011-6-20 14:11:00 | 显示全部楼层
没见过这么写的
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-5-19 10:40 , Processed in 0.073411 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表