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
相关推荐
宵时待雨10 小时前
C++笔记归纳15:红黑树
开发语言·数据结构·c++·笔记
lin辰傍边的风10 小时前
RS485收发架构移植要点
stm32·单片机·嵌入式硬件
π同学10 小时前
基于CH343的一种自动烧录模式电路设计分析
单片机·嵌入式硬件·eps32
轻赚时代10 小时前
零开发门槛!AI视频工具实操教程:图片/文字一键生成动态视频
人工智能·经验分享·笔记·音视频·创业创新·课程设计
国科安芯10 小时前
商业航天视角下角度编码传感器的应用与MCU的集成适配
大数据·网络·单片机·嵌入式硬件·架构·制造·安全性测试
郭泽斌之心10 小时前
Live2D工程对接Fay数字人框架
前端·经验分享·fay数字人
森利威尔电子-10 小时前
森利威尔SL3041B 替换LM5018 100V降压3.3V 5V 12V恒压芯片
单片机·嵌入式硬件·集成电路·芯片·电源芯片
看山是山_Lau10 小时前
如何封装和定义一个函数
c语言·开发语言·c++·笔记
adamlevine710 小时前
【docker笔记-001】如何设置docker使得容器能在多个numa之间均匀使用内存
笔记·docker·容器·k8s·numa·numactl·k3s
1104.北光c°10 小时前
Leetcode3.无重复字符的最长子串 HashSet+HashMap 【hot100算法个人笔记】【java写法】
java·开发语言·笔记·程序人生·算法·leetcode·滑动窗口