作者tkhan (脑残绿吱吱)
看板Electronics
标题Re: [请益] verilog如何在一个always判断触发源?
时间Fri Apr 18 00:27:29 2008
※ 引述《icetofux (豆腐)》之铭言:
: input in0,in1;
: reg a;
: always@(in0)
: begin
: a=0;
: end
: always@(in1)
: begin
: a=1;
: end
: 在软体模拟上,compile会通过,也能进行波形模拟,但是以donwload用的软体去进行
: compile,则会告诉不能让两个always叙述去变动同一个变数值。
: 如果我想改成:
: always@(in0 or in1)
: begin
: ...
: end
: 我要怎麽去判断到底是in0有动作还是in1有动作而进入always叙述呢?
always @(in0 or in1)
begin
if(in0)
a=0;
else if(in1)
a=1;
else
a=0;
end
上课要认真..
这是基础中的基础..
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.157.114.11
1F:→ icetofux:谢谢你 04/18 09:11
2F:→ icetofux:不好意思,如果用你这种判断方式,是不是只能针对 04/18 17:34
3F:→ icetofux:上升时触发有效?如果要下降时触发则改为if(~in0)? 04/18 17:38
4F:推 sepcher:楼上 you got it 04/18 19:22
5F:推 bighead319:楼上乱讲,这东西合成出来是一个组合逻辑,只要in0或 04/18 20:27
6F:→ bighead319:in1其中有一个有变化,就会进到判断式影响a的输出 04/18 20:28
7F:→ sepcher:我只是就他叙述来说明~当然这是level sensitive trigger 04/18 20:39
8F:→ sepcher:应该是我搞错他的意思(= = 我以为他只是单纯问if造成变化 04/18 20:47
9F:→ sasako:这种是level的触发 不是edge的触发... 04/19 02:12
10F:→ sasako:这是在控制讯号等於1时触发 并不是所谓的上升... 04/19 02:13
11F:→ ery001:如果synthesis tools至今仍没有太大的差异,这个写法请小心 04/20 17:24
12F:→ ery001:基本上这种写法simulation可能不会有问题,但是我的经验是 04/20 17:25
13F:→ ery001:曾经在design compiler合出来的东西和预期是不同的 04/20 17:26
14F:→ ery001:当然我不是专搞digital的人,所以并不敢说绝对会出问题 04/20 17:26
15F:→ ery001:不过当时请教过一些写了数年verilog先进,多数都会尽避开在 04/20 17:29
16F:→ ery001:oops...sorry,我搞错了...这个应该是没问题的,之前是拿clk 04/20 17:31
17F:→ ery001:一起来做类似的combinational logic所以出问题... :P 04/20 17:32