在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1453|回复: 3

[求助] 给x赋值1但输出wave的值是-1,不知道为什么

[复制链接]
发表于 2023-3-22 12:25:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
bsd.v
1                 module bsd
2                         (
3                                 rst_n,
4                                 x_n,x_p,
5                                 y_n,y_p,
6                                 sum
7                         );
8                         input         rst_n;
9                         input    x_n,x_p,y_n,y_p;   
10                  
11                        output   sum;   
12                        reg x,y;      
13                        reg inter_c_n,inter_c_p;
14                        reg inter_s_n,inter_s_p;
15                        reg sum_p,sum_n;  
16                        reg sum;        
17                       
18                        always @(x_n or x_p or y_n or y_p or negedge rst_n)
19                        begin
20                          
21                                                x=1;
22                                                y=(-2*y_n)+y_p;
23                                                inter_c_n=(x_n&y_n)|(((x_n&(~y_p))|(y_n&(~x_p)))&0);
24                                                inter_c_p=((~x_n)&x_p&(~y_n)&y_p)|((((~x_n)&x_p&(~y_p))|((~y_n)&y_p&(~x_p)))&1&1)|inter_c_n;
25                                                inter_s_n=1&1&(((~x_n)&x_p&(~y_p))|((~y_n)&y_p&(~x_p))|(x_n&(~y_p))|(y_n&(~x_p)));
26                                                inter_s_p=x_p^y_p;
27                                                sum_n=(inter_s_n&1)|((~inter_s_p)&0);
28                                                sum_p=~((~inter_s_p)&1)|(inter_s_n&1&0)|(0&(~inter_s_n)&inter_s_p);
29                                                sum=(-2*sum_n)+sum_p;
30                                       
31                   end
32                endmodule

bsd_tb.v
1                 `timescale 1ns/1ns            
2                 //`include "bsd.v"         
3                 module bsd_testbench;        
4                         reg    rst_n;
5                         reg     x_n,x_p,y_n,y_p;
6                         reg     inter_c_n,inter_c_p;
7                         reg     inter_s_n,inter_s_p;
8                         reg     sum_p,sum_n;            
9                         wire    sum;           
10
11
12                        bsd  bsd_testbench(
13                        .rst_n           ( rst_n ),
14                        .sum       ( sum   ),
15                        .x_n       ( x_n   ),
16                        .x_p       ( x_p   ),
17                        .y_n       ( y_n   ),
18                        .y_p       ( y_p   )
19                        );
20                       
21                        initial begin
22                                 rst_n = 1;
23                                 #2;
24                                 rst_n = 0;
25                                x_n=0;
26                                #500   x_n=~x_n;
27                        end
28
29                        initial begin
30                                 rst_n = 1;
31                                 #2;
32                                 rst_n = 0;
33                                x_p=0;
34                                #200   x_p=~x_p;
35                                #200   x_p=~x_p;
36                                #100   x_p=~x_p;
37
38                        end       
39
40                        initial begin
41                                 rst_n = 1;
42                                 #2;
43                                 rst_n = 0;
44                                y_n=0;
45                                #400   y_n=~y_n;
46                                #100   y_n=~y_n;
47                                #100   y_n=~y_n;
48                                #100   y_n=~y_n;
49                        end       
50
51                        initial begin
52                                 rst_n = 1;
53                                 #2;
54                                 rst_n = 0;
55                                y_p=0;
56                                #100   y_p=~y_p;
57                                #100   y_p=~y_p;
58                                #100   y_p=~y_p;
59                                #200   y_p=~y_p;
60                                #100   y_p=~y_p;
61                          
62                          
63                        end       
64
65                               
66
67                endmodule
68

我给x赋值1,为什么在波形中会显示出-1,找不出别的地方对x或是y有别的定义,而且y的值也不满足等式?

                               
登录/注册后可看大图


发表于 2023-4-18 08:57:46 | 显示全部楼层
位宽问题
发表于 2023-4-18 12:23:52 | 显示全部楼层
可能是位宽问题,不知道为什么你把这些变量都设成1bit的了
 楼主| 发表于 2023-4-26 09:50:02 | 显示全部楼层


lzhj21 发表于 2023-4-18 12:23
可能是位宽问题,不知道为什么你把这些变量都设成1bit的了


确实是这个问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-16 01:36 , Processed in 0.026183 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表