Verilog 将为变量分配哪些值。[需要了解程序逻辑]
我是Verilog的初学者。我需要理解测试用例的逻辑,但由于这些变量的逻辑,我遇到了困难 这些是定义整数类型的F和G。我读到参数是常量Verilog 将为变量分配哪些值。[需要了解程序逻辑],verilog,system-verilog,Verilog,System Verilog,我是Verilog的初学者。我需要理解测试用例的逻辑,但由于这些变量的逻辑,我遇到了困难 这些是定义整数类型的F和G。我读到参数是常量 'define F 32 'define G 0 module M(...); parameter pMaxPacketsSize =1024; localparam pTotalBits=3*'G; localparam pForcePktSize=(pMaxPacketsSize-'F); loc
'define F 32
'define G 0
module M(...);
parameter pMaxPacketsSize =1024;
localparam pTotalBits=3*'G;
localparam pForcePktSize=(pMaxPacketsSize-'F);
localparam pLastPacketSize =((pTotalBits-1)%(pForcePktSize))+1;
localparam pNumTransactions=((pTotalBits-1)/(pForcePktSize))+1;
localparam pPortSize=(pNumTransactions>1)?pMaxPacketsSize:((((pTotalBits-1)/32)+1)*32)+'F;
当G被定义为0时,
ForcePacketsize的值是多少。我尝试了二进制减法,得到了128(7位)[是否正确?].[0-32]。所有这些操作都需要用二进制算法执行。我想知道这些参数(pForcePktSize、pLastPacketSize、PNumTransactions)的值
我想了解的另一个说法是:
wire[pPortSize-1:0]D;
wire[pNumTransactions-1:0] t;
assign t=1'b1<<D[14:0];
wire[pPortSize-1:0]D;
电线[pNumTransactions-1:0]t;
在verilog中指定t=1'b1`define
与c
中的#define
相同。它定义了一个文本宏`G
和`F
实例化宏,并在解析之前被程序中的上下文替换
那么,在你的情况下
localparam pTotalBits=3*'G;
localparam pForcePktSize=(pMaxPacketsSize-'F);
将被替换为
localparam pTotalBits=3*0;
localparam pForcePktSize=(pMaxPacketsSize-32);
替换是文本的,宏的实例化刚刚被它们的定义替换。没有与宏定义相关联的类型。那么pLastPacketSize中将存储什么值?是否发生二进制模对不起,在替换中得到了额外的回勾,已修复<代码>pTotalBits
将为0
<代码>塑料袋大小将为1024-32=992