Verilog——参数化定义

目录

前言

这个专栏会专门讲一些Verilog的知识,后续会慢慢更新,欢迎关注
Verilog专栏

参数化定义 #( )

定义

verilog 复制代码
module Reg #(WIDTH = 1, RESET_VAL = 0) (  
//位宽默认为1 , 复位值默认为0
  input clk,  //时钟
  input rst,  //复位信号
  input [WIDTH-1:0] din,  //输入值
  output reg [WIDTH-1:0] dout,  //输出值
  input wen
);
  always @(posedge clk) begin
    if (rst) dout <= RESET_VAL;
    else if (wen) dout <= din;
  end
endmodule

实例化

verilog 复制代码
Reg #(8, 255) my_reg (
  .clk(clk),
  .rst(rst),
  .din(data_in),
  .dout(data_out),
  .wen(write_enable)
);
  • WIDTH被设置为8,因此dindout都是8位宽。
  • RESET_VAL被设置为255,所以在复位时,dout的初值为255。
  • 如果实例化时没有传入参数,则使用默认值,即WIDTH=1RESET_VAL=0
相关推荐
就叫飞六吧7 分钟前
Java “跨平台”指的是(.class 字节码)跨平台,而不是指 JVM 这个软件本身跨平台
服务器·笔记
计算机小手17 分钟前
内网穿透系列十六:使用 wg-easy 快速搭建基于 wireguard 的虚拟局域网,支持Docker部署
经验分享·网络协议·docker·开源软件
lowhot18 分钟前
C语言UI框架
c语言·开发语言·笔记·ui
sunfove18 分钟前
数理物理方法笔记:微分算子与拉普拉斯算子介绍
笔记
sweetone26 分钟前
BOSE低音炮DIY文章1——CD5音乐中心维修
经验分享·音视频
老骥伏枥_H31 分钟前
信息系统项目管理师_第十七章 项目绩效域(中)
笔记
深耕AI32 分钟前
【恍然大悟】8位单片机如何处理大数与二进制乘法?
单片机·嵌入式硬件
源代码•宸33 分钟前
Golang基础语法(go语言结构体、go语言数组与切片、go语言条件句、go语言循环)
开发语言·经验分享·后端·算法·golang·go
EchoL、42 分钟前
Diffusers库安装
笔记
宝宝单机sop1 小时前
营养师资源合集
经验分享