虚拟机:VMware-workstation-full-14.0.0.24051
环 境:ubuntu 18.04.1
文章目录
一、学习内容(上半部分)
二、模块的结构
(1)Verilog HDL的模块结构
- Verilog的基本设计单元是“模块 (block) ”
- Verilog 模块的结构由在module和endmodule关键词之间的4个主要部分组成:
(2)逻辑功能定义
在Verilog 模块中有3种方法可以描述电路的逻辑功能:
> assign语句
如assign x = (b & ~c);
assign语句又称连续赋值语句,常用于描述组合逻辑
> 门元件例化(instantiate)
如and u_and2(f,a,b,c);
其中and 是与门门元件的关键字,u_and3是例化的元件名。
· 注1: 元件例化即是调用Verilog HDL提供的元件;
· 注2:元件例化包括门元件例化和模块例化 ;
· 注3: 每个实例的名称必须唯一。
> always块语句
always @(posedge clk) begin//当时钟上升沿到来时执行一遍块内语句
if(load)begin
out <= data; // 同步预置数据
end
else begin
out <= data + 1 + cin; // 加1计数
end
end
always块 语 句 常 用 于 描 述 时 序 逻 辑 , 也 可描 述 组 合 逻 辑 。 可 用 if-else 或case语句多种手段来表达逻辑关系 ,同时always和assign是并发执行的,因此always内不可包含assign语句。
- 常见module模板
module <顶层模块名>(
input 输入端口列表,
output 输出端口列表
);
//(1)使用assign语句定义逻辑功能
wire 结果信号名;
assign <结果信号名> = 表达式;
//(2)使用always块定义逻辑功能
always@(<敏感信号列表>)begin
xxx;
end
//(3)子模块例化
<module_name><instance_name>(
.module_port(inst_port),
.module_port(inst_port)
);
endmodule
(3)Verilog关键字
关键字是verilog语法规定的,用来组织语言结构或元件,因此用户自定义的变量等不能与关键字重复,下面是Verilog HDL的关键字,红色为常用的关键字。
(4)标识符
三、小结
作者:xlinxdu
版权:本文版权归作者所有
转载:欢迎点赞、评论和转载,但未经作者同意,必须保留此段声明,必须在文章中给出原文连接。