问题标签 [digital-design]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
verilog - 加法器模块的输出总是无关紧要 [Verilog]
我知道VHDL,现在我尝试做一些verilog。我有两个文件,一个包含一个计数器,另一个包含一个 32 位全加器。
计数器.v:
加法器.v:
我在 ModelSIM 中验证了我的完整加法器代码,它一直有效。但是当我尝试运行 counter.v 代码时,输出 adder1 始终为“X”(不在乎)。如果启用设置为“1”,则无关将通过加法器 ( clk_count <= temp1;
) 产生波动。我错过了什么?
divide - Proteus 错误:瞬态分析期间检测到逻辑竞争条件
我正在尝试设计一个简单的 alu,它得到两个 5 位数字并返回将它们相加或相减或相乘或相除的结果。使用集成电路,一切顺利。但是我想自己设计一切。在设计除法时出现错误:瞬态分析期间检测到逻辑竞争条件
当我尝试实现 4 位幅度比较器时会发生这种情况。该模块工作正常,但在这个项目中出现错误。
我多次使用这个模块,但只是在这部分出现了错误。请帮我解决这个错误!!
verilog - 如何在系统 verilog 中驱动来自 2 个源的信号
我正在尝试编写一个 RTL 模型,在该模型中我监视独立的时钟源。这些时钟源可以具有可变频率(范围 5 到 50MHz)
让我们说 clk1 和 clk2。我正在尝试驱动一个信号“toggle”,该信号在 clk1 的每个 posedge 处设置为“1”,在 clk2 的每个 negedge 处设置为“0”。我很难实现这个模型。
我尝试使用在 clk1 的正沿触发的 1 个触发器,该触发器的输入绑定到“高”,另一个触发器在 clk2 的负沿触发,输入绑定到“低”。我将这些输出发送到一个多路复用器,但我无法弄清楚如何驱动这个多路复用器的选择信号
这是我的代码片段:
所以,到目前为止,没有什么可以推动 sel 并试图弄清楚这是我遇到麻烦的地方
如果我尝试从 2 个不同的时钟源驱动相同的信号(切换),我会收到一条错误消息,指出为信号切换找到了多个驱动程序,这是有道理的。
如果您有任何建议,请告诉我
编辑:修复了一个错字并从 flop2 的敏感度列表中删除了 rstb
verilog - 时钟域交叉信号和抖动要求
我正在阅读 Mark Litterick 撰写的 DVCON 论文 2006“基于时钟域交叉信号和抖动的实用仿真验证”。我对某些陈述感到困惑
- 第 2 页 第 4.2 节 输入数据值必须在三个目标时钟边沿保持稳定。
该论文似乎暗示了积极的边缘,因为这似乎是 p_stability 属性检查的内容。但是 Clifford Cummings 的论文(CDC 设计和验证技术使用 System Verilog)提到这是 1.5 倍。所以他建议2个正边缘和1个负边缘。有人可以确认这张纸是否意味着正面吗?
- 第 5 页,第 6 节,图 11 同步器将抖动仿真允许随机 3 个时钟延迟。对于单位输入,我们如何获得 3 个时钟延迟?我可以看到这对于多位输入很有用,其中有一些偏斜但对单个位没有。
add - 全加器的执行项是如何得出的?
我正在阅读 Morris Mano 在 Digital Design 中的全加器部分,我似乎无法弄清楚它是如何从方程式 A 到方程式 B 的。
根据使用输入 x、y 和 z 的全加器真值表和 k-map,执行项 C 定义为:
我可以理解上述内容,但是为了利用 x、y 和 z 的求和项已经使用的 xor,本书将 C 重新定义为:
这两个如何等效?我试图在纸上从另一个推导出一个,但我无法想出介于两者之间的步骤。
graphviz - 如何将形状附加到graphviz中的端口?
在逻辑设计约定中,时钟输入端口由嵌入式三角形指定,而低电平有效端口具有气泡,如此d 触发器示例所示。
现在,我可以使用箭头和箭头来完成冒泡 I/O(如果有点违反直觉)。但是我看不到如何使箭头延伸到端口中。理想情况下,这将是端口的特征而不是连接箭头,但这是一个较小的问题。
conv-neural-network - 如何从 ROM(实际上是 FPGA 中的 BlockRAM)中获取系数以用于矩阵乘法?
我们是设计基于 FPGA 的卷积神经网络加速器的大四学生。
我们构建了流水线架构。(卷积、池化、卷积和池化),对于架构的这 4 个阶段,我们需要乘以一个特定的窗口和过滤器。我们在第二个卷积层和过滤器中有 (5*5)*6*16 窗口。
到目前为止,我接受这不是一个明确的解释。但是这里的主要问题是我们需要同时访问顺序存储在块 RAM 中的 5*5*6*16 个滤波器系数。但是在每个时钟,我只能到达 ROM 上的一个特定地址。
我们可以采取什么方法?
digital-design - 设计和按位,4 位 2 输入 a 和 b
实现按位执行真值表的逻辑是什么,两个输入各为 4 位,或者将输出多少个函数,我只需要一个例子。
interface - SystemVerilog 接口的放置位置,以及如何命名接口和文件
我在 SystemVerilog 中为我的设计编写了一些接口,其中有很多。我想知道是否有一些关于如何组织它们的具体指导方针。
现在我将所有接口都放在一个文件中。我想知道是否应该将它们中的每一个放在一个单独的文件中或全部放在一个文件中。如果有一些关于如何命名文件的具体指南。
谢谢。
vhdl - 在 VHDL 设计中是否推荐使用时钟?
我正在做一个小任务,我必须计算来自两个输入的脉冲。该要求未指定时钟。目前我有一个进程,当任何输入发生变化时触发,然后相应的计数增加。
我的问题是我应该为这个设计使用时钟并使过程时钟敏感,然后检查输入是否已更改?在 VHDL 设计中使用时钟是一种好习惯吗?
子问题-我必须双重缓冲输入数据。这是否意味着我必须使用时钟并通过两个触发器传递输入?或者有没有办法在不使用时钟的情况下加倍缓冲数据?