verilog相关知识

语法知识:
1. 顶层模块的输入输出必须是wire类型,因为需要与开发板的引脚绑定。其他部分的模块则没有这个需求。
2. 模块:模块是Verilog  的基本描述单位,用于描述某个设计的功能或结构及其与其他模块通信的外部端口。
一个模块可以在另一个模块中使用。
多使用模块化设计。
3. 4'b0000: segment <= 8'b11000000;
要显示的将小数点设置为0,或者直接不定义管脚。

digit_anode <= 4'b1110;
如果是
digit_anode <= 0;四位会一起显示出来。
4. 在verilog中使用for语句出现错误。
错误信息:expecting 'endmodule', found 'for'
建议你除了testbench,不要使用for 
5. verilog中赋值有用assign a=b和a<=b和a=b这三种赋值方法
assign 语句后的赋值会生成组合逻辑,也就是从b到a会生成一条导线,将他们连接,b的值如果改变,a的值同时也会改变;
在Verilog中有两种类型的赋值语句:阻塞赋值语句(“=”)和非阻塞赋值语句(“<=”)。正确地使用这两种赋值语句对于Verilog的设计和仿真非常重要。
阻塞:在本语句中“右式计算”和“左式更新”完全完成之后,才开始执行下一条语句;
非阻塞:当前语句的执行不会阻塞下一语句的执行。
6. wire是线网,就是相当于实际中的连接线,你想assign的话就是直接连接,就是用wire型,他的值是随时变化的。比如你想寄存一下,让他在时钟边沿才变化就需要reg类型了
reg相当于存储单元,wire相当于物理连线
Verilog 中变量的物理数据分为线型和寄存器型。这两种类型的变量在定义时要设置位宽,缺省为1位。wire表示直通,即只要输入有变化,输出马上无条件地反映;reg表示一定要有触发,输出才会反映输入。
reg必须在clock的作用下赋值。
7. `timescale是Verilog HDL 中的一种时间尺度预编译指令,它用来定义模块的仿真 时的时间单位和时间精度。格式如下:
`timescale  仿真时间单位/时间精度




  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值