You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Verilog仿真中带多路选择器、加法器、触发器的程序计数器无输出问题排查

Verilog程序计数器无输出问题修复方案

问题根因

  • 端口定义错误:Program_counter模块的PC端口重复声明为inout和reg类型,PC为寄存器输出,不需要设置为双向端口
  • 信号拼写错误:Program_counter模块实例化floper寄存器时,复位信号reset拼写为resest,复位信号连接完全失效,导致计数器无法完成初始化
  • 数据类型不匹配:mux模块的输出y被定义为reg类型,但后续使用assign语句赋值,语法错误会导致电路行为异常
  • 缺少仿真打印逻辑:测试平台没有添加输出打印语句,仿真过程不会输出PC值,表现为运行无结果
  • 代码转义异常:floper模块中的非阻塞赋值符被转义为<=,无法被仿真器识别
  • 测试激励时序不全:测试用例末尾多组赋值未添加延时,仿真会直接结束,无法观察到后续数值变化

修复后完整代码

module Program_counter(clk, reset, PC_sel, Ext_imm, PC);
input wire clk, reset, PC_sel;
input wire [31:0] Ext_imm;
output reg [31:0] PC;   
wire [31:0] PC_Next, PC_4, PC_Target;

floper#(32) PCreg(clk, reset, PC_Next, PC);
adder PCplus4(PC, 32'd4, PC_4);
adder PCtarget(PC, Ext_imm, PC_Target);
mux#(32) PCmux(PC_4, PC_Target, PC_sel, PC_Next);
endmodule


module TB_PC();
reg clk, reset, PC_sel;
reg [31:0] Ext_imm;
wire [31:0] PC;

Program_counter testbench(clk, reset, PC_sel, Ext_imm, PC);
always #5 clk=~clk;

initial
begin
 // 打印仿真输出
 $monitor("Time=%0t | reset=%b | PC_sel=%b | Ext_imm=%h | PC=%h", $time, reset, PC_sel, Ext_imm, PC);
 clk=0;
 reset=0;
 PC_sel=0;
 #20
 reset=1;
 #20
 PC_sel=1;
 Ext_imm=32'h0000003A;
 #10
 PC_sel=1;
 Ext_imm=32'h00000B3A;
 #10
 PC_sel=0;
 Ext_imm=32'h0000DB3A;
 #100
 $finish;
end
endmodule

module adder(input [31:0] a, b,
 output [31:0] y);
 assign y = a + b;
endmodule

module floper#(parameter WIDTH = 8)
              (input wire   CLK, reset,
               input wire   [WIDTH-1:0] d,
               output reg [WIDTH-1:0] q);
              

always@(posedge CLK, posedge reset)
 if (reset)
  q <= 0;
 else
  q <= d;
endmodule

module mux#(parameter WIDTH = 8)
           (input wire [WIDTH-1:0] d0, d1,
            input wire s,
            output wire [WIDTH-1:0] y);

assign y= s ? d1 : d0;
endmodule

运行说明

修复后运行仿真即可看到逐次打印的PC值,复位完成后PC会按照预期自增4,或者根据PC_sel选择跳转到立即数对应的目标地址。

内容的提问来源于stack exchange,提问作者Fawad Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 01:15:07