FPGA学习笔记(3)——verilog基础入门以及组合逻辑电路

FPGA学习笔记(3)——verilog基础入门以及组合逻辑电路

test bench的编写

对于简单的组合逻辑电路的仿真,更像是编写一个没有输入输出的verilog文件来产生一些激励源,其中,会用到一些系统函数比如打印信息使用的$monitor, d i s p l e r ,还有查看时间的 displer,还有查看时间的 displer,还有查看时间的time。
例如下面的运行快,在每一次

begin
    $timeformat(-9, 0, "ns", 6);     //-9表示时间单位为纳秒,0表示打印小数点位为0,加上时间单位“ns”字符串,打印的最小字符数目为6。
    $monitor("@time = %t: in_1=%b in_2=%b ci=%b sum=%b co=%b", $time, in_1, in_2, ci, sum, co);
end

Latch 避免锁存器的产生

在同步电路中,是不希望产生Latch的,会让静态逻辑分析变得复杂。
产生latch的情况:

  1. 组合逻辑中 if 语句没有 else;
  2. 组合逻辑中 case 的条件不能够完全列举时且不写 default;
  3. 组合逻辑中输出变量赋值给自己。
    博主的理解是,在以上每种环境下情况下,若存在一些未定义或者关注的情况中,变量值没有改变,那么就会默认保持,为了完成保持的功能,就会产生latch完成这一目的。

timescale 中单位和精度的影响

这里直接参考这位博主的文章,能够加深对$time的函数理解。
Verilog的时间系统任务

层次化设计

从上到下的设计中,可以调用子模块来构成更大的模块,其中,可以通过wire语句定义连线,还要注意整个项目文件的头模块实体是哪个。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值