在cocotb中用ghdl修改VHDL泛型值
Modify VHDL generic value with ghdl in cocotb
我成功地使用 cocotb 读取了通用模块值,没有问题。但是如果我写不出来。
我的 VHDL 泛型是:
...
generic (
...
C_M00_AXI_BURST_LEN : integer := 16;
...
)
我可以在cocotb中阅读:
self.dut.log.info("C_M00_AXI_BURST_LEN 0x{:x}".format(
int(self.dut.c_m00_axi_burst_len)))
但如果我尝试更改它:
self.dut.c_m00_axi_burst_len = 32
我收到这个 python 错误:
Send raised exception: Not permissible to set values on object c_m00_axi_burst_len
File "/opt/cocotb/cocotb/decorators.py", line 197, in send
return self._coro.send(value)
File "/usr/local/projects/axi_pattern_tester/vivado_ip/axi_pattern_tester_1.0/cocotb/test_axi_pattern_tester_v1_0.py", line 165, in axi4_master_test
dutest.print_master_generics()
File "/usr/local/projects/axi_pattern_tester/vivado_ip/axi_pattern_tester_1.0/cocotb/test_axi_pattern_tester_v1_0.py", line 86, in print_master_generics
self.dut.c_m00_axi_burst_len = 32
File "/opt/cocotb/cocotb/handle.py", line 239, in __setattr__
return getattr(self, name)._setcachedvalue(value)
File "/opt/cocotb/cocotb/handle.py", line 378, in _setcachedvalue
raise TypeError("Not permissible to set values on object %s" % (self._name))
有没有办法使用 GHDL 作为模拟器来做到这一点?
事实上,user1155120、Paebbels 和 scary_jeff 回答了这个问题:这不可能。
但是可以使用不同的配置来解决这个问题。
我成功地使用 cocotb 读取了通用模块值,没有问题。但是如果我写不出来。
我的 VHDL 泛型是:
...
generic (
...
C_M00_AXI_BURST_LEN : integer := 16;
...
)
我可以在cocotb中阅读:
self.dut.log.info("C_M00_AXI_BURST_LEN 0x{:x}".format(
int(self.dut.c_m00_axi_burst_len)))
但如果我尝试更改它:
self.dut.c_m00_axi_burst_len = 32
我收到这个 python 错误:
Send raised exception: Not permissible to set values on object c_m00_axi_burst_len
File "/opt/cocotb/cocotb/decorators.py", line 197, in send
return self._coro.send(value)
File "/usr/local/projects/axi_pattern_tester/vivado_ip/axi_pattern_tester_1.0/cocotb/test_axi_pattern_tester_v1_0.py", line 165, in axi4_master_test
dutest.print_master_generics()
File "/usr/local/projects/axi_pattern_tester/vivado_ip/axi_pattern_tester_1.0/cocotb/test_axi_pattern_tester_v1_0.py", line 86, in print_master_generics
self.dut.c_m00_axi_burst_len = 32
File "/opt/cocotb/cocotb/handle.py", line 239, in __setattr__
return getattr(self, name)._setcachedvalue(value)
File "/opt/cocotb/cocotb/handle.py", line 378, in _setcachedvalue
raise TypeError("Not permissible to set values on object %s" % (self._name))
有没有办法使用 GHDL 作为模拟器来做到这一点?
事实上,user1155120、Paebbels 和 scary_jeff 回答了这个问题:这不可能。 但是可以使用不同的配置来解决这个问题。