找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2572|回复: 9
打印 上一主题 下一主题
收起左侧

FPGA程序 当第一个时钟沿来后,第二个always的if语句会不会认为a等于1

  [复制链接]
回帖奖励 10 黑币 回复本帖可获得 10 黑币奖励! 每人限 1 次
跳转到指定楼层
楼主
ID:243193 发表于 2018-2-28 10:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
always@(posedge clk or negedge rst)
       if(!rst)  a<=5'd0;
                 else    a<=a+1'b1;
                 
always@(posedge clk or negedge rst)
       if(!rst)         b<=5'd0;         
       else if(a==1'b1)  b<=a;
       else ;
当第一个时钟沿来后,第二个always的if语句会不会认为a等于1


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

来自 2#
ID:263980 发表于 2018-2-28 21:38 | 只看该作者
虽然我学的是VHDL,但是verilog我也能看懂一些,你这个明显就是基础知识非常不过关,我随手查了一下所有的always块是并行的,如果来个脉冲两个语句同时执行,你说下面那个会不会认为a=1,如果这个问题还不明白,拿起你手边任何一本verilog书把基础再看一下,搞清楚一个脉冲来临之后变量是如何变化的

评分

参与人数 1黑币 +60 收起 理由
admin + 60 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:279646 发表于 2018-2-28 18:01 | 只看该作者
这里估计没人会FPGA,这里基本都是搞单片机的。
回复

使用道具 举报

地板
ID:286390 发表于 2018-2-28 19:13 | 只看该作者
因为是clk,所以 a<=5'd0;        第二个   if(!rst)         b<=5'd0;         
       else if(a==1'b1)  b<=a;
       else ;
应该执行b<=5'd0; 吧。

评分

参与人数 1黑币 +80 收起 理由
admin + 80 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

5#
ID:286420 发表于 2018-2-28 20:54 | 只看该作者
FPGA啊 爱莫能助了 帮顶起来
回复

使用道具 举报

6#
ID:286424 发表于 2018-2-28 21:14 | 只看该作者
有用 标记一下
回复

使用道具 举报

7#
ID:243193 发表于 2018-3-1 13:13 | 只看该作者
奋斗de小青年 发表于 2018-2-28 21:38
虽然我学的是VHDL,但是verilog我也能看懂一些,你这个明显就是基础知识非常不过关,我随手查了一下所有的a ...

是的,我刚开始学习。嗯嗯,也就是这个时候判断a的值还是0
回复

使用道具 举报

8#
ID:266943 发表于 2018-3-8 15:56 | 只看该作者
非阻塞赋值是先把右侧计算好后统一赋给左侧,第一个时钟沿a应该是0,这样容易产生BUG,编译一下看看吧
回复

使用道具 举报

9#
ID:289305 发表于 2018-3-8 17:30 | 只看该作者
不会,可以仿真看一下,复位解除后 第一个时钟周期a=1,b=0.
回复

使用道具 举报

10#
ID:289830 发表于 2018-3-9 21:36 | 只看该作者
不太懂FPGA,帮顶
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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