用Verilog如何给数组赋值
<p>我这样写的<br />reg mema = {8'h55,8'haa,8'h5a,8'ha5};<br />
可是编译出错:</p>
<p></p>
<p>请问高手,怎么解决呀?谢谢!</p>
<p>编译出错</p>
<p> 或是mema 本身有问题</p>
<p>或是因为对解包数组的赋值必须是聚合表达式的式有问题</p>
<p>仅供参考</p>
<p>可能是因为 Verilog 中的数组初始化必须在 module 语句之外进行</p>
<p>还是没搞定</p>
声明的时候不能直接赋值的,即使可以编译的时候也会忽略。解决办法是在always块内用for循环赋值。 苦茶子 发表于 2023-4-17 10:36
声明的时候不能直接赋值的,即使可以编译的时候也会忽略。解决办法是在always块内用for循环赋值。
<p>for循环赋值不好吧。如果数据没有规律,不好实现</p>
<p>那只能一个一个赋值,或者你用rom</p>
苦茶子 发表于 2023-4-20 09:27
那只能一个一个赋值,或者你用rom
<p>谢谢</p>
<p>mema =8'h55;</p>
<p>mema =8'ha5;</p>
<p>mema =8'haa;</p>
<p>mema =8'h55;</p>
<p>应该这样幅值吧</p>
浪里涛涛 发表于 2023-9-15 14:43
mema =8'h55;
mema =8'ha5;
mema =8'haa;
mema =8'h55;
应该这样 ...
<p>谢谢!我试试</p>
本帖最后由 竹林春晚 于 2023-12-6 13:58 编辑
<p> reg mem ;<br />
initial<br />
begin<br />
$readmemh("sine_256.txt",mem); //txt添加到工程目录下,直接赋值就可以。h为16进制,b为二进制<br />
end <br />
如上,多少数据都可以,数据有规律无规律只在txt文件中处理就行。</p>
页:
[1]