fpga系列 HDL:verilog 常见错误与注意事项 quartus13 bug 初始失效 reg *** = 1;

代码

  • 顶层模块
c 复制代码
module bug(
	input wire clk,
	output wire BitOut
);

	reg BitIn = 1;
    
    Encoder encoder (
		 .clk(clk),
       .BitIn(BitIn),
       .BitOut(BitOut) 
    );
endmodule
  • 内部逻辑模块
c 复制代码
module Encoder(
	input wire clk,
	input wire BitIn,
   output reg BitOut  
);
    always @(posedge clk) begin
        if (BitIn)
            BitOut <= 1'b1;  
        else
            BitOut <= 1'b0;
    end
endmodule

quartus13 综合结果

  • 在quartus13中综合得到的BitIn为0:

quartus18 综合结果

修改方法

c 复制代码
module bug(
    input wire clk,
    output wire BitOut
);

    reg BitIn;  
    // 不给 BitIn 初始值,而是通过时序逻辑赋值。(或者用wire BitIn=1;)
    always @(posedge clk) begin
        BitIn <= 1; 
    end

    Encoder encoder (
        .clk(clk),
        .BitIn(BitIn),
        .BitOut(BitOut)
    );
    
endmodule
相关推荐
尤老师FPGA4 小时前
Framebuffer的讲解
fpga开发
FPGA的花路7 小时前
ZYNQ 程序固化与升级指南
fpga开发·vitis·一键烧录脚本·zynq程序构成
ALINX技术博客8 小时前
【黑金云课堂】FPGA技术教程:PLL锁相环实验和MIO应用
fpga开发·fpga
AI 编程助手GPT8 小时前
【实战】Codex 接管电脑 + Claude Routines 云端值守:一次 Bug 排查的“无人化”闭环
人工智能·gpt·ai·chatgpt·bug
minxihou8 小时前
iwlwifi/iwlmld missed beacons 与 802.11ax HE beacon timing 固件 Bug
bug·协议
Byron Loong8 小时前
【常识】通俗易懂的讲CPU,GPU,MCU,FPGA,DSP的区别和特点
单片机·嵌入式硬件·fpga开发
gaoxcv1 天前
TDC相关的一些方法
fpga开发
我爱C编程1 天前
【3.4】双口RAM模块的FPGA实现
fpga开发·fpga·fft·双口ram
三万棵雪松1 天前
【嵌入式刷题硬件设计基础(一)】
fpga开发·嵌入式·硬件基础
扣脑壳的FPGAer1 天前
Xilinx远程更新之watchdog Timer1/ Timer2
fpga开发