1、基本
1.1 Verilog HDL的特点
并行性:所谓的并行性就是说可以同时做几件事情。Verilog语言不会顾及代码顺序问题,几个代码块可以同时执行;而软件语言必须按顺序执行,上一句执行不成功,就不能执行下一句。
时序性:Verilog语言可以用来描述过去的时间和相应发生的事件;而软件语言则做不到。
互连:互连是硬件系统中的一个基本概念,Verilog语言中的wire变量可以很好地表达这样的功能;而软件语言并没有这样的描述。
1.2 一个模块
module
1.模块名 (module_name)
2 端口列表 (port_list)
3 端口声明 (input、output、inout)
4 变量声明 (reg、wire、parameter)
5 行为描述语言 (initial、always)
6 连续赋值语句 (continuous assignment)
7 模块调用语句 (module instantiation)
8 任务及函数 (task、function)
endmodule
在模块的所有组成部分中,只有module、模块名和endmodule必须出现,其它部分都是可选的
端口作用:端口是模块与外界交互的接口;于外部环境(使用者/连接者)来讲,模块内部 不可见,对模块的调用只能通过其端口进行。
常见I/O口类型有:
- 输入口(input)
- 输出口(output)
- 双向口(inout),
分别表示数据流的方向是输入,输出或双向的。
module counter(
input clk, //全局时钟信号
input reset_l, //全局复位信号
output [7:0] cnt