作者andy433268 (andy)
看板Electronics
标题[问题] verilog waveform问题
时间Wed Dec 17 14:17:40 2014
有一些waveform问题想请教一下各位大大
module test (
input clk, reset,
output reg Zero, Max_1023, Even, Odd,
output reg [9:0] Out
);
always@(posedge clk or posedge reset)
begin
if(reset)
Out <= 0;
else
Out <= Out + 1;
Zero <= !(|Out);
Max_1023 <= &Out;
Even <= ^Out;
Odd <= !(Even);
end
endmodule
当我在测试上述程式时,发现Even跟Odd的波形在同一个时间点是刚好相反的,
我疑问的点是Odd的波形不是应该比Even的波形晚一个clk後才呈现
麻烦各位大大指导我一下
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.25.212.18
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Electronics/M.1418797062.A.30C.html
1F:推 tkhan: ??????? 12/17 14:21
2F:→ andy433268: 可能说的不太清楚,我想表达的是Odd波形跟Even的波形 12/17 14:56
3F:→ andy433268: 应该不会在同一个时间点上刚好只差not,而是Even取not 12/17 15:00
4F:→ andy433268: 後,比Even的波形晚一个clk才传给Odd 12/17 15:02
5F:推 tkhan: 观念问题,先搞懂吧.. 12/17 15:25
6F:→ tkhan: 先学会画波形,再来coding.. 12/17 15:25
7F:→ s940556: nonblocking assignment 和sequential logic先弄清楚吧 12/17 16:37
8F:→ s940556: ~ 12/17 16:37
9F:→ andy433268: 如果将讯号Odd改成Odd <= !(^Out),波形会一样吗? 12/17 16:54
10F:→ andy433268: 我的认知是Odd <= !(Even)比Odd <= !(^Out)慢一个clk 12/17 17:00
11F:推 tkhan: 认知错误,明明就是反向.. 12/17 17:12
12F:→ andy433268: 所以你认为Odd <= !(Even)跟Odd <= !(^Out)的波形不一 12/17 17:29
13F:→ andy433268: 样? 12/17 17:29
14F:推 bakerly: 我觉得你的认知是对的,奇怪的是模拟结果,我跑结果是反 12/17 18:05
15F:→ bakerly: 向慢1T。 12/17 18:05
16F:→ andy433268: 我跑出来的模拟结果是一模一样,思考不出来哪有问题 12/17 18:30
17F:推 bakerly: 你test bench怎麽写,我照你写的module key,加上我自己 12/17 18:52
18F:→ bakerly: 的bench跑出来是反向慢1t没错。 12/17 18:52
19F:→ andy433268: 请问你是用哪套软体? 我是用Quartus跑的 12/17 20:33
20F:推 dasala: 回原po,它不是一行做完再做下一行的…是同步进行,建议你 12/17 21:47
21F:→ dasala: 去读一些基本verilog的书,你的观念错很严重 12/17 21:47
22F:推 bakerly: ncverilog 12/17 22:23
23F:→ andy433268: 我当然知道同步进行...你哪一点看出我是觉得他是一行 12/17 22:57
24F:→ andy433268: 行做完再做一行 12/17 22:58
25F:推 Baneling: 理解应该没错 换个simulation tool试试看吧~ 12/18 01:13
26F:推 kameng: 用ModelSim跑是慢一个cycle的 12/18 03:33
27F:推 appendixisu: 我觉得是演算法你想错了!!如果上1T是EVEN 12/18 11:12
28F:→ appendixisu: 下1T必然是ODD 那就不应该写成 ODD <= !EVEN ; 12/18 11:12
29F:推 appendixisu: 阿~~我好像误解你的问题了 12/18 11:22
30F:→ appendixisu: 那我想要问一下 是用新版Quartus+modelsim去跑 12/18 11:24
31F:→ appendixisu: 还是用旧版的Quartus 12/18 11:24
32F:→ andy433268: 这程式不是我写的 我只觉得Odd波型毕然会晚Even 1T, 12/18 15:50
33F:→ andy433268: 我是用Quartus 9.0 12/18 15:50
34F:→ appendixisu: 以下是我的猜测啦!!因为你是用Quartus 9!! 12/18 17:59
35F:→ appendixisu: 所以你跑的simulation 应是Post-simulation!!! 12/18 18:02
36F:→ appendixisu: 所以有可能是timing issue 12/18 18:02
37F:推 dasala: 你在else後面在用begin end包起来试看看 12/18 19:41
38F:推 dasala: 你应该是用windows平台吧,用modelsim模拟就可以了,不要 12/18 19:45
39F:→ dasala: 用quartuz 12/18 19:45
40F:→ dasala: 也可以在所有non-blocking後加#1,或合进FPGA用示波器量 12/18 21:22