verilog - 这个 Verilog 代码是如何工作的?它在同一个 always 块语句中有两个独立但相同的否定条件
问题描述
我想知道这段代码完美无缺。我想了解这两个否定状态如何在 always 块中工作。
#5 clk = ~clk;
always
begin
@(negedge clk) din = 1;
@(negedge clk) din = 0;
end ```
解决方案
模拟将执行以下操作:
- 开始总是块执行
- 等待clk的negedge
- 将 1 分配给 din
- 等待clk的negedge(下一个)
- 将 0 分配给 din
- 重新开始执行 always 块,转到步骤 1。
因此,din 的值将在 clk 的 needges 之间交替。
推荐阅读
- node.js - Nodejs Fetch API:无法验证第一个证书
- python - 如果列包含列表中的字符串,则如何/在 df 中创建新列的最佳方法对两者都使用小写
- python - 为什么这个正则表达式只给出第三个八位字节?
- bootstrap-4 - 如何控制 Bootstrap btn-group(flex-wrap)在哪里中断到新行?
- python - 如何从使用 BeautifulSoup 抓取的列表中删除标签?
- php - PHP:通过 URL 参数在两个字符串之间进行 XOR 的 eval()
- sap - #Webi-Business Objects 中的多值聚合错误
- kubernetes - HDFS 名称节点未在 Kubernetes 上正确显示数据节点列表
- amazon-web-services - 创建 eks 集群时 terraform 上的 ARN 错误无效
- python - 一种在列表(数组)中拆分特定项目的优雅方法?