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
相关推荐
yBmZlQzJ3 小时前
财运到内网穿透域名解析技术机制与中立评估
运维·经验分享·docker·容器·1024程序员节
沐风听雨_A4 小时前
雄迈IP摄像头配置笔记
笔记
bitQ4 小时前
ZBoot-MP:ZYNQ 多介质 Linux 启动与升级解决方案
fpga开发
yBmZlQzJ5 小时前
内网穿透工具通过端口转发实现内外网通信
运维·经验分享·docker·容器·1024程序员节
沐风听雨_A6 小时前
有人串口转Wifi模块配置笔记
笔记
禾仔仔7 小时前
USB MSC从理论到实践(模拟U盘为例)——从零开始学习USB2.0协议(六)
嵌入式硬件·mcu·计算机外设
小智RE0-走在路上7 小时前
Python学习笔记(11) --数据可视化
笔记·python·学习
线束线缆组件品替网8 小时前
服务器和交换机链路:Amphenol ICC 电缆组件实用解析
数码相机·电脑·硬件工程·材料工程·智能电视
The Electronic Cat8 小时前
树莓派使用串口启动死机
单片机·嵌入式硬件·树莓派
么么...9 小时前
在 Ubuntu 上安装 Docker 并部署 MySQL 容器
linux·运维·经验分享·笔记·mysql·ubuntu·docker