LehaMi 2022-09-22 09:58 采纳率: 0%
浏览 11

reg信号作为if的判断条件,ModelSim仿真问题。

使用ModelSim进行Verilog仿真时发现,将一个reg信号直接作为if的判断条件时,可能会导致仿真错误,而将判断条件改成wire信号后,即使是同一个信号仿真也能正常运行。只在前仿真中发现,后仿真和板级测试未发现问题。
Verilog代码

将reg SCLK2X直接作为if的判断:
wire test2;
assign test2 = SCLK2X;

always @(posedge Clk, negedge Rst_n) begin
if (!Rst_n) DAC_SCLK <= 1'b1;
else if (en) begin
if (SCLK2X) DAC_SCLK <= ~DAC_SCLK;
else DAC_SCLK <= DAC_SCLK;
end else DAC_SCLK <= 1'b1;
end
将与SCLK2X相同的wire信号test2作为if的判断:
wire test2;
assign test2 = SCLK2X;

always @(posedge Clk, negedge Rst_n) begin
if (!Rst_n) DAC_SCLK <= 1'b1;
else if (en) begin
if (test2) DAC_SCLK <= ~DAC_SCLK;
else DAC_SCLK <= DAC_SCLK;
end else DAC_SCLK <= 1'b1;
end

运行结果及报错内容

reg直接做判断:

img


变成wire做判断:

img

  • 写回答

1条回答 默认 最新

  • 老皮芽子 2022-09-22 10:33
    关注

    很奇怪的现象,没见过。

    评论

报告相同问题?

问题事件

  • 修改了问题 9月22日
  • 修改了问题 9月22日
  • 创建了问题 9月22日

悬赏问题

  • ¥15 51寻迹小车定点寻迹
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题
  • ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含
  • ¥15 麒麟V10桌面版SP1如何配置bonding
  • ¥15 Marscode IDE 如何预览新建的 HTML 文件