gpt4 book ai didi

verilog - 双方括号

转载 作者:行者123 更新时间:2023-12-04 07:28:23 25 4
gpt4 key购买 nike

我正在尝试在 Verilog 中破译以下代码行:

assign ASIC_error_flag   = (StartTransfer & ~Bank_Slct[IO_Config_P2[13:12]]);
我怀疑这可能是取反总线“ Bank_Slct”与总线 IO_Config_P2 的第 13 位到第 12 位之间的比较。 ,但我以前从未见过这样的公共(public)汽车内的公共(public)汽车。这应该等同于什么?

最佳答案

内部方括号用于选择 IO_Config_P2 的一部分。信号,外括号依次用于选择 Bank_Slct 的一部分信号。
假设您声明了 Bank_Slct就像一个 4 字节的内存:

reg [7:0] Bank_Slct [0:3];
在这种情况下,您需要一个 2 位信号来选择 4 个字节之一(如内存地址)。表达式, IO_Config_P2[13:12] , 是 2 位选择信号。
IO_Config_P2[13:12]等于 2'b00 ,您正在选择字节 Bank_Slct[0] .
IO_Config_P2[13:12]等于 2'b01 ,您正在选择字节 Bank_Slct[1] , ETC。
另一种方法是创建一个单独的信号( sel ),然后使用它:
wire [1:0] sel = IO_Config_P2[13:12];
assign ASIC_error_flag = (StartTransfer & ~Bank_Slct[sel]);
请参阅 IEEE Std 1800-2017,第 7.4.4 节存储器。

关于verilog - 双方括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68105117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com