Nat*_*ist 3 verilog system-verilog
在verilog中**意味着什么?
我为测试平台提供了以下逻辑
localparam NUM_INPUT_BITS = 1;
localparam NUM_OUTPUT_BITS = NUM_INPUT_BITS + 1;
localparam MAX_OUTPUT_BIT = NUM_OUTPUT_BITS - 1;
localparam NUM_TEST_BITS = (NUM_INPUT_BITS * 2) + 1;
localparam MAX_TEST_BIT = NUM_TEST_BITS - 1;
localparam NUM_TEST_CASES = 2 ** NUM_TEST_BITS;
localparam MAX_TEST_VALUE = NUM_TEST_CASES - 1;
localparam TEST_A_BITTEST_A_BIT = 0;
localparam TEST_B_BIT = NUM_INPUT_BITS;
localparam TEST_CARRY_IN_BIT = MAX_TEST_BIT;
localparam TEST_SUM_BIT = 0;
localparam TEST_CARRY_OUT_BIT = MAX_OUTPUT_BIT;
localparam TEST_DELAY = 10;
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚NUM_TEST_CASES值将评估的内容.最终的答案应该是8,所以我假设**意味着y**x = y ^ x,但我想确认一下.
小智 15
双星号是Verilog 2001中引入的"幂"运算符.它是一个算术运算符,它将左侧操作数转换为右侧操作数的幂.换句话说,X ** Y提升X了力量Y.所以在你的情况下2 ** NUM_TEST_BITS意味着2的力量NUM_TEST_BITS.