找回密码
 注册
关于网站域名变更的通知
查看: 319|回复: 3
打印 上一主题 下一主题

verilog 上下边沿同时触发 可综合代码实现

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-11-30 14:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
always@(posedge active_row_en)2 ~2 R7 f% [5 a7 F+ C$ G
active_row[cnt1]<=1'd1;
$ U6 y" C# y* G9 S( S3 Lalways@(negedge active_row_en)
0 t* T- L/ y; ~active_row[cnt1]<=1'd0;
+ I. {- p- L: W: z6 \这样的代码为什么不可以综合,求解决办法。就是想在active_row_en 的上下边沿都触发,acitve_row_en的频率是1M4 b1 i1 t' Y- X" [  \) g. r

该用户从未签到

2#
发表于 2022-11-30 15:10 | 只看该作者
从语法上看,一个触发器在两个process 里面赋值是不可综合的
# A9 i* R, N2 Q  O其次,在FPGA里面,有双沿触发的触发器吗?没有吧,所以即使可以综合,最后map的时候也会报错。8 Q2 ^# T- L1 }3 t- d6 \
要么用沿检测实现,但是这时就不能叫“上下沿都触发了”。

该用户从未签到

3#
发表于 2022-11-30 15:15 | 只看该作者
这个active_row_en很有问题它可能会有很多的毛刺,并非是真正的上沿和下降沿,再一个如此设计会导致触发器所用时钟彼此不一致,应该用系统的时钟做一个上升沿检测和一个下降沿检测!

该用户从未签到

4#
发表于 2022-11-30 15:22 | 只看该作者
active_row[cnt1]不可以在两个always块中都赋值,会报错的。
1 F8 D' M* ~3 \. `7 ?$ J- l你可以试试不加posedge和nededge ,就是 always @(active_row_en),这样只要active_row_en值变化就触发。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-30 09:05 , Processed in 0.140625 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表