verilog报错笔记

报错的思考方向

  1. 没有定义,或者定义重复
  2. 标点符号缺失或是使用了中文符号
  3. 接口连接错误/修改代码后接口没有计时更正
  4. 在testbench文件中没有赋初值

大面积报错时思考方向

  1. 复位信号取反,xinlinx大部分是拉高复位,引入引脚需要取反引入

大改代码后/增加删除接口后/调整模块后

  1. 检查接口是否完整,所有信号都一一对应
  2. 检查时钟与复位信号

经验教训

  1. if后边只要有多条语句,一定使用begin-end
  2. 多条数据在一个always语句中一起报错,可能是always的关键词出了问题
  3. 仿真结果为x可能的原因是:
    1赋值冲突
    2 赋值错误 阻塞赋值写成了非阻塞赋值
  4. 接口问题
    1.直接在module后边接口就定义类型 module led(input reg [3:0] data);
    2.在模块后的括号内不写output 位宽类型 只写信号名字 后边再写位宽等
  5. 在a里边例化着b 那么b的输出信号在a里边就要被定义为wire类型
    b的输出信号在自己的模块里就要被定义为reg类型
  6. ambiguous clock in event control
    1.赋值冲突 两个if条件对同一个东西进行了赋值
    2.always的条件里写了复位信号 但是却没有用到
    3.else if把else忘记了
    4,有的东西没有写else
    .
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值