verilog - 网表模拟:在这种情况下非法的“左值”
问题描述
我正在尝试模拟合成(到 D 触发器)物理寄存器文件(PRF)。行为形式的测试台工作正常。但是在综合之后,一些内部已经被工具重命名了,基本上,我正在尝试将功能模拟器生成的值分配到 PRF 中。这是在初始块中完成的。以下是测试平台代码的一部分。(这是一个示例代码,在将所有位加载到所有寄存器文件方面并不完整):
1050 reg [`SIZE_DATA-1:0] test [`SIZE_RMT-1:0];
1051 integer x, y, z;
1052
1053 always @(*)
1054 begin
1055 for (x = 0; x < `SIZE_RMT; x++)
1056 begin
1057 for (y =0; y < `SIZE_DATA; y ++)
1058 begin
1059 coreTop.registerfile.PhyRegFile.ram_reg_95__63_.D = test[x][y];
1060 z = y;
1061 end
1062 z = z + 1 ;
1063 end
1064 end
模块说明ram_reg_95__63_
如下:
DFF_X1 ram_reg_95__63_ ( .D(n44180), .CK(clk), .Q(ram[6143]) );
在哪里,n44180
是ram[6143]
电线。
我得到的错误:
ncelab: *E,WANOTL (simulate_gate.sv,1059|72): A net is not a legal lvalue in this context [9.3.1(IEEE)].
我不确定我错过了什么/在哪里。
解决方案
您永远不能在 Verilog 或 SystemVerilog 中按程序分配连线。你可以做几件事:
- 使用该
force
语句分配D
输入并等待一个时钟周期让它们被捕获,然后release
它。 - 查看内部
DFF_X1
,看看您是否可以在程序上在其中Q
注册。 - 用您自己的行为模型替换
DFF_X1
模块,您可以在其中分配给Q
变量。
推荐阅读
- c# - Binding a wpf xaml image to System.Windows.Controls.Image is not working
- vba - 导入网页源代码,包括不显示在页面上
- python - 如果文件夹在 S3 中排列为 yyyy/mm/dd/hh,有没有办法获取最新的文件夹
- javascript - “文本必须在
“ 错误 - xml - 无法解析的 XML 输入:使用不同 URI 定义的命名空间类型:http://www.myCompany.com/HedgeAccounting 和 http://www.w3.org/2001/XMLSchema
- ios - 关闭当前的模态视图后如何重新加载集合视图?
- middleware - 如何在strapi中设置自定义中间件?
- python - 函数不作用于python中的列表切片
- javascript - 为什么将字节数组转换为base64时最大块长度为16383?
- spring-webflux - WebFlux+RSocket,如何将通量从 RSocket 传递到 WebFlux