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
相关推荐
FPGA-ADDA6 小时前
第四篇:嵌入式系统常用通信接口详解(I2C、SPI、UART、RS232/485、CAN、USB)
人工智能·单片机·嵌入式硬件·fpga开发·信息与通信
li9056632809 小时前
hanzi-writer-miniprogram Path2D问题以及Bug修复
微信小程序·bug
万粉变现经纪人12 小时前
如何解决 pip install cx_Oracle 报错 未找到 Oracle Instant Client 问题
数据库·python·mysql·oracle·pycharm·bug·pip
421!15 小时前
ESP32学习笔记之GPIO
开发语言·笔记·单片机·嵌入式硬件·学习·算法·fpga开发
dMing`16 小时前
基于FPGA的简易数据采集系统
fpga开发·fpga·adc·dac
LCMICRO-1331084774619 小时前
长芯微LD9689完全P2P替代AD9689,是一款双通道、14位、2.0 GSPS/2.6 GSPS模数转换器(ADC)
网络·单片机·嵌入式硬件·网络协议·fpga开发·硬件工程·高速adc
萨文 摩尔杰1 天前
GPS原理学习
学习·fpga开发
Huangichin1 天前
跟着Gemini学System Verilog
fpga开发
LCMICRO-133108477461 天前
长芯微LDC90810完全P2P替代ADC128D818,是一款八通道系统监控器,专为监控复杂系统状态而设计。
stm32·单片机·嵌入式硬件·fpga开发·硬件工程·模数转换芯片adc
s09071361 天前
保姆级教程十二:USB摄像头接入!ZYNQ+OpenCV+FPGA硬件加速图像处理实战(视觉终极篇)
图像处理·opencv·fpga开发·zynq·硬件加速