2201_75543142 2024-04-01 21:57 采纳率: 60%
浏览 463
已结题

vivado仿真时波形图出现红线

加法计数器代码module project_11r(clk,Q) ;
input clk ;
output[3 :0] Q ;
reg[3 :0] Q ;
always @(posedge clk)
begin Q<=Q+1 ;
end endmodule
激励文件module project11sim;
reg clk;
wire [3:0] Q;
initial begin
clk = 0;
end
always #5 begin
clk = ~clk;
end
project_11r uut(
.clk(clk),.Q(Q)
);
endmodule
但是波形图出现红线

img

  • 写回答

4条回答 默认 最新

  • 日晨难再 优质创作者: 嵌入式与硬件开发技术领域 2024-04-02 00:14
    关注

    你没有将Q信号初始化,导致其初始值为x,x在累加过程中保持为x,因此结果全是x。
    一种解决方法是在initial结构中加入初始化Q的代码,如

    initial begin
      clk = 0;
      Q = 0;
    end
    

    对于可综合设计,应该使用异步复位在时序always结构中将Q清零,如

    always @(posedge clk, negedge rst_n) begin
      if(!rst_n)
        Q <= 0;
      else
        Q<= Q + 1;
    end 
    

    如还有不懂可以追问,如问题解决请采纳。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 4月10日
  • 已采纳回答 4月2日
  • 创建了问题 4月1日