求助,为什么我的信号必须写成output仿真才能看见波形

2020-01-27 12:38发布

  1. module fifo_ctrol(
  2.                                                 input                                                  user_clk,
  3.                                                 input                                                  ddr_clk,
  4.                                                 input                                                  rst,

  5.                                                                         );
  6.                                                                        
  7.                                 data_in<=0;
  8.                         end
  9.                 else if(!full_flag)
  10.                                         begin
  11.                                                 wr_en<=1;
  12.                                                 if(wr_ack)
  13.                                                         begin
  14.                                                                 data_in<=data_in+512'd10;
  15.                                                         end
  16.                                         end
  17.                                 else
  18.                                         begin
  19.                                                 wr_en<=0;
  20.                                         end
  21.         end

  22. fifo_ip wr_fifo (
  23.   .rst(rst), // input rst
  24.   .wr_clk(user_clk), // input wr_clk
  25.   .rd_clk(ddr_clk), // input rd_clk
  26.   .din(data_in_wire), // input [511 : 0] din
  27.   .wr_en(wr_en_wire), // input wr_en
  28.   .rd_en(rd_en_wire), // input rd_en
  29.   .dout(data_out), // output [255 : 0] dout
  30.   .full(full_flag), // output full
  31.   .wr_ack(wr_ack), // output wr_ack
  32.   .empty(empty_flag), // output empty
  33.   .valid(valid), // output valid
  34.   .rd_data_count(rd_data_count), // output [9 : 0] rd_data_count
  35.   .wr_data_count(wr_data_count) // output [8 : 0] wr_data_count
  36. );

  37. endmodule
复制代码
data_in,wr_en,rd_en三个信号是我定义的信号,在always块中赋值,三个信号连接到ip核上,所以我不需要输出他们,可是我发现只有把信号写成output 仿真中才能看到正确的数值。不写成output 仿真是三条蓝线。求助大佬是什么原因。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
1400240124
1楼-- · 2020-01-27 15:34
  1. module fifo_ctrol(
  2.                                                 input                                                  user_clk,
  3.                                                 input                                                  ddr_clk,
  4.                                                 input                                                  rst,

  5.                                                                         );
  6.                                                                        
  7. reg  [511:0] data_in;
  8. reg                                          wr_en;
  9. reg                                          rd_en;        




  10. wire [255:0] data_out;
  11. wire                                   full_flag;
  12. wire                                  empty_flag;
  13. wire                                  valid;
  14. wire                                  wr_ack;
  15. wire [8:0]          wr_data_count;
  16. wire [9:0]          rd_data_count;



  17. always@(posedge user_clk or negedge rst)
  18.         begin
  19.                 if(!rst)
  20.                         begin
  21.                                 wr_en<=0;
  22.                                 data_in<=0;
  23.                         end
  24.                 else if(!full_flag)
  25.                                         begin
  26.                                                 wr_en<=1;
  27.                                                 if(wr_ack)
  28.                                                         begin
  29.                                                                 data_in<=data_in+512'd10;
  30.                                                         end
  31.                                         end
  32.                                 else
  33.                                         begin
  34.                                                 wr_en<=0;
  35.                                         end
  36.         end
  37.        
  38. always@(posedge ddr_clk or negedge rst)       
  39.         begin
  40.                 if(!rst)
  41.                         begin
  42.                                 rd_en<=0;
  43.                         end
  44.                 else if((!empty_flag))
  45.                                         begin
  46.                                                 //data_out_r<=data_out;
  47.                                                 rd_en<=1;
  48.                                         end
  49.         end
  50. fifo_ip wr_fifo (
  51.   .rst(rst), // input rst
  52.   .wr_clk(user_clk), // input wr_clk
  53.   .rd_clk(ddr_clk), // input rd_clk
  54.   .din(data_in_wire), // input [511 : 0] din
  55.   .wr_en(wr_en_wire), // input wr_en
  56.   .rd_en(rd_en_wire), // input rd_en
  57.   .dout(data_out), // output [255 : 0] dout
  58.   .full(full_flag), // output full
  59.   .wr_ack(wr_ack), // output wr_ack
  60.   .empty(empty_flag), // output empty
  61.   .valid(valid), // output valid
  62.   .rd_data_count(rd_data_count), // output [9 : 0] rd_data_count
  63.   .wr_data_count(wr_data_count) // output [8 : 0] wr_data_count
  64. );

  65. endmodule
复制代码
1400240124
2楼-- · 2020-01-27 20:33
之前上传的代码有点问题,重新传了一份。麻烦大家
zhangmangui
3楼-- · 2020-01-27 22:41
不写为output的话就认为信号没用  被优化掉了

一周热门 更多>