一段verilog语句
时间:10-02
整理:3721RD
点击:
parameter ADDR_WIDTH = DEPTH <= 2 ? 1 :
DEPTH <= 4 ? 2 :
DEPTH <= 8 ? 3 :
DEPTH <= 16 ? 4 :
DEPTH <= 32 ? 5 :
DEPTH <= 64 ? 6 :
DEPTH <= 128 ? 7 :
DEPTH <= 256 ? 8 :
DEPTH <= 512 ? 9 :
DEPTH <= 1024 ? 10 :
DEPTH <= 2048 ? 11 : 12;
请问这段语句是什么意思?
DEPTH <= 4 ? 2 :
DEPTH <= 8 ? 3 :
DEPTH <= 16 ? 4 :
DEPTH <= 32 ? 5 :
DEPTH <= 64 ? 6 :
DEPTH <= 128 ? 7 :
DEPTH <= 256 ? 8 :
DEPTH <= 512 ? 9 :
DEPTH <= 1024 ? 10 :
DEPTH <= 2048 ? 11 : 12;
请问这段语句是什么意思?
应该是根据DEPTH的值来定义参数ADDR_WIDTH ,当小于DEPTH等于2的时候,定义ADDR_WIDTH =1,如果第一个判断条件不成立(DEPTH <= 2),则判断是不是小于等于4成立,成立则定义ADDR_WIDTH =2,以此类推,如果所有的判断条件都不成立,则定义ADDR_WIDTH =12。
哦,明白了,谢谢
这是非常标准的由数据深度来定义地址位宽
这就相当于 if else的语句
