verilog知识点(一)

一、Verilog_HDL模型

所谓不同的抽象类别,实际上是指同一个物理电路,可以在不同层次上用Verilog语言来描述。如果只从行为功能的角度来描述某一电路模块,就称作行为模块。如果从电路结构的角度来描述该电路模块,就称作结构模块。根据抽象的级别将Verilog的模块分为5种不同的等级:

(1)系统级(system-level):用语言提供的高级结构能够实现待设定模块的外部性能的模型;

(2)算法级(algorithm-level):用语言提供的高级结构能够实现算法运行的模型;

(3)RTL级(register transfer level):描述数据在寄存器之间的流动和如何处理、控制这些数据流动的模型;

(4)门级(gate-level):描述逻辑门以及逻辑门之间连接的模型,与逻辑电路有明确的关系;

(5)开关级(switch-level):描述器件中三极管和存储节点以及他们之间连接的模型,与具体的物理电路有对应关系;

系统级、算法级和RTL级属于行为级描述,只有RTL级才与逻辑电路有明确的对应关系;门级属于结构级描述。

二、模块结构

verilog的基本设计单元是模块(block),一个模块是由两部分组成,一部分描述接口,另一部分描述逻辑功能,即定义输入如何影响输出。

verilog结构位于module和demodule声明语句之间,每个verilog程序包括端口定义、I/O口说明、内部信号声明与功能定义。

2.1 模块的端口定义:module  模块名(端口1,端口2,......)

2.2 模块引用的端口连接

(1)严格按照端口顺序进行连接,不用表明原模块定义时规定的端口名称;

  模块名(连接端口1信号名,连接端口2信号名,连接端口3信号名,...)

(2)用端口名与被引用模块的端口相对应,而不必严格按照端口顺序对应;

  模块名(.端口1名(信号1名),.端口2名(信号2名),...)

我建议在FPGA开发设计中使用第(2)种端口连接方式。

2.3 模块功能定义

(1)assign语句(连续赋值语句):wire变量,不能是reg变量

(2)实例元件引用:键入元件的名字和相连的引脚,例如:and #2 u1(q, a, b);

(3)always块,例如:always @(posedge clk or negedge rst)

assign语句是用来描述组合逻辑,always语句既可以用来描述组合逻辑,也可以描述时序逻辑。

在verilog模块中的所有过程块(如:initial块、always块)、连续赋值语句、实例引用都是并行的,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值