躺者如C(•́⌄•́๑)૭✧ 2022-03-25 13:11 采纳率: 75%
浏览 49
已结题

输出波形是一条红线是怎么回事(标签-edge|关键词-input)

源代码
module trigger(
input wire clk ,
input wire T ,
output wire Q3
);

reg Q1,q1;
reg Q2,q2;
reg R,D,J,K;
reg reg_Q3,q3;
reg reg_T;

assign T= reg_T;
assign Q3 = reg_Q3;

always @ (posedge clk)
begin
Q1<=(reg_T&(Q1))|((reg_T)&Q1);
q1<=((reg_T&(Q1))|((reg_T)&Q1));
D<=Q1;
K<=q1;
end
always @ (negedge clk)
begin
Q2<=D;
q2<=
D;
J<=Q2;
end
always @ (negedge clk)
begin
reg_Q3<=(J&(reg_Q3))|((K)&reg_Q3);
q3<=((J&(reg_Q3))|((~K)&reg_Q3));
R<=q2&q3;
end
endmodule

测试代码
`timescale 1ns/1ps
module tb_trigger();
reg T,clk;
wire Q3;
initial begin
T=1'b1;
clk=1'b0;
end
always #10 clk=~clk;
trigger tb_trigger(
.T(T),
.clk(clk),
.Q3(Q3)
);
endmodule

  • 写回答

3条回答 默认 最新

  • 老皮芽子 2022-03-25 13:36
    关注

    没看明白你写的代码是干什么的
    有俩错误
    1:Q1 没有初始值,后面所有的逻辑都是依赖 Q1 的,就都是红色的。可以这样定义一个初始值 reg Q1=0;
    2:assign T= reg_T; 这条语句用法不对。T 是输入 input ,不应该被赋值

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

报告相同问题?

问题事件

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