完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我是一个新手(但有多年的嵌入式C软件经验),玩一些PicoBlaze参考设计,并在@ @ posedge clk块中遇到了以下verilog块:
if(interrupt_ack == 1'b1) 开始 打断 结束 其他 开始 if(event_1hz == 1'b1) 打断 开始 结束 其他 开始 打断 结束 结束 我的问题是关于我强调的声明的目的。 为什么需要将中断寄存器分配给自己呢? 直觉上,我认为它必须与确保通过各种if / else语句在每个路径中分配中断的值有关,但仍然困惑于*为什么*需要。 (我知道,编写C代码的时间太多了......如果有电子工程师的话,这是一个悲惨的命运。) 如果这是一个完整的新手问题,我提前道歉,但我现在谷歌搜索了将近一个小时,并且无法确定这个要求。 谢谢! 薇琪 |
|
相关推荐
4个回答
|
|
两件事情:
1)时钟模块总是产生D触发器,从不锁存。 按时钟计算,我的意思是 总是@(posedge clk)//完全同步的块 要么 always @(posedge clk或posedge reset)// async reset clocked block 2)即使你正在使用类似的组合逻辑块 总是@ * 然后你确实需要完整的case和if / else语句,但这是一个很大但是,任何变量赋值给它自己仍然会导致一个锁存器。 即,在每种情况下你都有一个任务的事实并没有改变自我分配需要存储的事实,并且实际上与遗漏该陈述相同。 例如,这是一种编码D锁存器的方法: 总是@(门) if(gate)Q = D; 很明显,如果没有else子句,就会隐含持有需要存储的Q值。 但是下面的代码完全等同于上面的代码,即使它有一个完整的else子句: 总是@(门) if(gate)Q = D; 否则Q = Q; //这在原始代码中得到了有效的暗示 - Gabor 在原帖中查看解决方案 |
|
|
|
正如您已经猜到的那样,在这个特定的例子中,该陈述没有任何作用。
通常这样做是为了提醒设计者信号保持其当前状态。 但是,由于非阻塞分配,这样的语句可能实际上可以做某事。 例如: 永远@(posedge clk) 开始 中断 |
|
|
|
的Gabor,
感谢您的快速回复; 我在发布后继续自己搜索,得出的答案与你的答案略有不同,所以也许你可以稍微放纵一下。 我最终发现了许多关于由不完整的if / else和case语句引起的推断锁存器的邪恶的文章(我在原始搜索中找不到它们,因为我没有使用短语“不完整的if / else语句”)。 这个逻辑结构(即,始终确保每个if语句都有一个else语句,并且每个语句对该块中正在修改的变量进行赋值)只是编写Verilog始终@(posedge clk)块的首选方法以避免 推断锁存? 再次感谢, 薇琪 |
|
|
|
两件事情:
1)时钟模块总是产生D触发器,从不锁存。 按时钟计算,我的意思是 总是@(posedge clk)//完全同步的块 要么 always @(posedge clk或posedge reset)// async reset clocked block 2)即使你正在使用类似的组合逻辑块 总是@ * 然后你确实需要完整的case和if / else语句,但这是一个很大但是,任何变量赋值给它自己仍然会导致一个锁存器。 即,在每种情况下你都有一个任务的事实并没有改变自我分配需要存储的事实,并且实际上与遗漏该陈述相同。 例如,这是一种编码D锁存器的方法: 总是@(门) if(gate)Q = D; 很明显,如果没有else子句,就会隐含持有需要存储的Q值。 但是下面的代码完全等同于上面的代码,即使它有一个完整的else子句: 总是@(门) if(gate)Q = D; 否则Q = Q; //这在原始代码中得到了有效的暗示 - Gabor |
|
|
|
只有小组成员才能发言,加入小组>>
2134 浏览 7 评论
2590 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2063 浏览 9 评论
3135 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2166 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
399浏览 1评论
1504浏览 1评论
在使用xc5vsx95T时JTAG扫片不成功,测量TDO无信号输出
2164浏览 0评论
495浏览 0评论
1618浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-3-29 16:32 , Processed in 1.373747 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号