完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我得到一个奇怪的错误,我不知道如何处理。
我已经提取了以下相关代码: #( 参数NUM_REG = 9 ) ( 输入[7:0] spi_in, 输出reg spi_in_ready,//此模块已准备好接收数据 输出reg [7:0] spi_out, 输出reg [(NUM_REG)* 8 - 1:0]寄存器 ); spi_out 我以为这是允许的......我错过了什么? 有没有更好的方法来做到这一点? 我看到的唯一选择是一个大案例陈述。 功能齐全,但远非优雅! |
|
相关推荐
3个回答
|
|
|
dwisehart写道:如果你使spi_in成为一个参数,这使得它在合成时成为常量,这是有效的。
你不能做的是在运行时更改你从'register'中选择的位而没有case语句:case(spi_in)8'd0:spi_out 8'd1:spi_out ... endcaseDaniel 同样,Verilog 2001也是如此。请参阅上面的帖子。 你写的代码可以写成: spi_out |
|
|
|
|
|
我并不是故意暗示你的代码不起作用。
我反对的是“你不能做的就是在运行时更改你从'register'中选择的位而不用像case语句那样。” 您确实可以使用变量来执行部件选择,您只是不能在部件选择中使用冒号两侧的变量。 显然有其他方法可以选择寄存器的变量片,包括case语句和for循环,它们也是可合成的。 在冒号两边都有变量的部分选择不仅不可合成,它不是合法的Verilog - 即使表达式在切片中评估为一个恒定的位数。 - Gabor |
|
|
|
|
|
很难说为什么标准是按原样制作的。
最有可能的是(与其他“Verilogisms”一起)只是另一种情况,其中标准易于为工具制造者实施 - 而不是工具用户。 话虽如此,VHDL中允许使用等效语法。 我认为没有理由为什么Verilog综合工具不能确定: 注册[变量+7:变量] 将提供恒定的位宽。 VHDL中的等价物: 注册(变量+ 7 downto变量) 是模拟和合成的有效语法。 +:和 - :语法是一种解决Verilog中这种缺陷的拼凑方法,但它不像等效的VHDL语法那样可读。 - Gabor |
|
|
|
|
只有小组成员才能发言,加入小组>>
3118 浏览 7 评论
3407 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2874 浏览 9 评论
3966 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
3057 浏览 15 评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
1325浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
1167浏览 1评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 17:04 , Processed in 1.951087 second(s), Total 76, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1748
