电路语句(二):元件例化语句
前言
视频语法学习:B站链接
笔记原地址:https://github.com/Tan-YiFan/DigitalLogic-Autumn2020/tree/syntax/syntax网络不好,可能打不开。
需求:
- 层次化设计、功能区分
- 代码复用
- 黑盒
一、模块声明
verilog语法
module adder (
// inputs and outputs declaration
input logic [3:0] a, b,
output logic [3:0] c
);
// circuit code
assign c = a + b;
endmodule
二、电路语句:元件例化
logic [3:0] b, c;//声明语句
//logic [4:0] c;//错误语法
adder adder_inst0(.a(4'b0010), .*); // assign c = b + 4'b0010;
//模块名 元件名/实例名(.模块的端口名(外部的信号名))
// modulename instancename(.portname1(value1), .portname2, .*);
// adder adder_inst1(.a[0]());//错误语法,.a[0]不是端口名
进一步解释
.a(4'b0010) //相当于a=4'b0010
.b //相当于.b(b)
.* //剩下的所有端口,接的都是同名信号,端口和外部同名信号,位宽一致。如果这里c是5位(//logic [4:0] c;),则会报错。