首页 > 其他分享 >【Verilog HDL】常量的参数化及跨模块传递

【Verilog HDL】常量的参数化及跨模块传递

时间:2023-04-24 13:11:37浏览次数:41  
标签:LSB parameter 化及 module Verilog 模块 HDL data MSB

  • 申明变量
Verilog中申明常量主要有两种方式:parameter  localparam localparam用法与parameter基本一致,只是localpara定义的参数通常只在所在模块范围内使用,其赋值无法被模块之外的参数定义所改变。

  • parameter的跨模块传递
parameter在同一个模块中的赋值通常有两种方式,即在一个module的端口申明之后和端口申明之前两种方式。
//module的端口申明之前
module 【模块名】#(【参数定义】)
(【端口列表】);
    【参数定义】
    【逻辑功能】
endmodule

//module的端口申明之后
module 【模块名】(【端口列表】);
    【参数定义】
    【逻辑功能】
endmodule
若希望parameter赋值能在模块之间传递,即parameter值从上层模块传递到例化的下层模块,建议在module的端口申明之前进行parameter定义。
//下层模块
module para_example_sub#(
    parameter MSB = 3,
    parameter LSB = 0  // 注意这里没有分号或逗号
)
(
    input [MSB:0] i_data,
    output [MSB:LSB] o_data
);
assign o_data = i_data[MSB:LSB];

endmodule

//上层模块
module vlg_design(
    input [7:0] i_data,
    output [7:0] o_data
);
localparam LOCAL_MSB = 7;
localparam LOCAL_LSB = 4;

para_example_sub#(
    .MSB (LOCAL_MSB),
    .LSB (LOCAL_LSB)
)
uut_para_example_sub(
    .i_data (i_data[LOCAL_MSB:0])
    .o_data (o_data[LOCAL_MSB:LOCAL_LSB])
);

assign o_data[LOCAL_LSB-1:0] = 'b0;

endmodule

 

标签:LSB,parameter,化及,module,Verilog,模块,HDL,data,MSB
From: https://www.cnblogs.com/Ivan0506/p/17349107.html

相关文章

  • 关于hana数据库集群在pacemaker下的启动后变化及pcs状态记录
    对于hana数据库,两个节点、使用了pacemkaer软件进行了高可用的集群首页、我们在开机后,使用 pcsclusterstart--all,将pacemaker服务启动起来,然后就是到了关机的维护模式 然后我们使用 pcsnodeunmaintenance--all取消维护模式,才能启动资源,可以观察到hana的pacemaker的状......
  • 开始学习《SytemVerilog验证测试平台编写指南》
    我使用ModelSim的Starter版学习,在这一段代码上报错:moduleTestArray;intj=1,q2[$]={3,4},q[$]={0,2,5};initialbegin //q.insert(1,j); //q.insert(3,q2); q.delete(1); q.push_front(6); j=q.pop_back; $display(j); q.push_back(8);j=q.pop_......
  • 推排序 Verilog实现原理
    引言推排序常常应用在操作系统的任务调度中,尝试使用硬件对堆排序进行实现,在实现的过程中不使用function和tasks语法,即真·硬件实现参考的博客也就这一个博客有介绍堆排序的Verilog实现原理堆排序还需要复习一遍吗?我肯定是要的菜鸟-堆排序图解排序算法(三)之堆排序可以......
  • HDLBits(16)4.18
    3电路3.2时序逻辑3.2.2计数器 Count1to10(Decadecounteragain)与上题一样,区别是复位为1moduletop_module(inputclk,inputreset,output[3:0]q);always@(posedgeclk)beginif(reset)q<=4'b0001......
  • HDLBits(1)——Modules:Hierarchy
    HDLBits——Modules:Hierarchy目录HDLBits——Modules:Hierarchy问题19Module将信息连接到端口BypositionByname问题20Connectingportsbyposition(Modulepos)问题21Connectingportsbyname(Modulename)问题22Threemodules(Moduleshift)问题23Modulesandvectors(Mod......
  • verilog语法+ _
    1.用处这两个应该算是运算符,运用在多位的变量中,如下:slv_reg0[(byte_index8)+:8]<=S_AXI_WDATA[(byte_index8)+:8];2."+:"变量[起始地址+:数据位宽]<–等价于–>变量[(起始地址+数据位宽-1):起始地址]data[0+:8]<--等价于-->data[7:0]data[15+:2]<--等价于-->dat......
  • MATLAB代码:基于二阶锥优化及OLTC档位选择的配电网优化调度
    MATLAB代码:基于二阶锥优化及OLTC档位选择的配电网优化调度关键词:OLTC档位选择二阶锥优化动态优化最优潮流参考文档:《主动配电网最优潮流研究及其应用实例》仅参考部分模型,非完全复现《主动配电网多源协同运行优化研究_乔珊》仅参考部分模型,非完全复现仿真平台:MATLABYALMI......
  • VHDL概述
    VHDL概述实体说明不论是简单的数字电路还是一个微处理器或者系统,都由实体构成,实体的结构ENTITY实体名IS[类属参数说明]; [端口说明];ENDENTITY实体名以上就是一个基本设计单元的实体说明类属参数说明必须放在端口说明之前,用于指定参数端口说明端口说明是对基......
  • verilog基本语法学习笔记
    input和outputmodule/endmodule:表征模块的开始与结束。example:模块名可由用户指定,可包含字母、数字及下划线,需以字母开头,区分大小写assign:赋值操作关键字,该关键字后可跟一个赋值表达式,该关键字是实现组合逻辑操作的一种主要描述方式。input/output:表征该信号的方向,除输入、......
  • 基于FPGA的AES加密解密vivado仿真,verilog开发,包含testbench
    1.算法描述         AES,高级加密标准,是采用区块加密的一种标准,又称Rijndael加密法.严格上来讲,AES和Rijndael又不是完全一样,AES的区块长度固定为128比特,秘钥长度可以是128,192或者256.Rijndael加密法可以支持更大范围的区块和密钥长度,Rijndael使用的密......