FPGA时序问题:begin end之间的顺序执行代码是按照什么时钟频率执行的????还是其他时序方式?

 我来答
跳拉丁舞的小猫64
推荐于2018-04-05 · TA获得超过233个赞
知道答主
回答量:46
采纳率:0%
帮助的人:58.2万
展开全部
首先,FPGA的代码不是被执行的,而是被综合成电路,begin end之间算是一个小的电路模块。所以其与时钟的关系要具体分析
首先是你定义的变量的类型有关,寄存器型reg 和线性wire两种常用类型中,只有寄存器型才可能一个时钟周期的延迟,效果类似于D触发器
其次最关键的是begin-end模块之间几个寄存器变量赋值的先后关系是取决于 阻塞型赋值还是非阻塞型赋值。 阻塞型赋值 用 "=" ; 非阻塞赋值用"<=" 。
顾名思义 非阻塞赋值 语句 就是各个 reg型变量之间没有先后关系 在begin end 模块的时钟触发条件满足的时候,各个reg变量是同时进行赋值和运算的;而阻塞赋值语句使得不同的寄存器赋值语句之间按照代码的先后顺序进行赋值,后面的reg变量的赋值将会比前面一行延后一个时钟周期。
最后,值得注意的是 同一个begin end 模块之间不能混用 两种赋值语句,一般而言,时序电路always块中用 非阻塞赋值"<=" ,组合逻辑always块及assign 语句时用 阻塞赋值 "=" 。
威孚半导体技术
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层... 点击进入详情页
本回答由威孚半导体技术提供
huguangyaoh
2013-02-01
知道答主
回答量:16
采纳率:0%
帮助的人:11.2万
展开全部
比如说begin A<=1'b0;B<=1'b1;end 这两个是同步的,时序图是同时的。FPGA是并行执行的,除非你使用if语句通过计数来进行顺序操作
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式