问题标签 [hdl]
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.
vhdl - 将文件从 VHDL 进程打开到实例化两次的实体时出现问题:名称冲突
我在 VHDL 中有一个实体,它具有以下结构:
打开文件没有问题,一切正常!我有个问题。当我创建一个测试台并运行它时,我通常会创建一个我的实体实例。但就我而言,我现在需要放置两个实例。我的问题是我将与文件名发生冲突,并且一个进程将不可避免地无法打开和写入(相同的)日志文件。
我想解决这个问题,所以这里有问题:
在我的端口中,我有信号,可以将信号值附加到文件名吗?恐怕这不是最好的事情(甚至不知道这样的事情是否可行)。
有没有办法在测试台中获取一个表示实体实例名称的变量?
有没有办法将字符串传递给实体,以便我可以将它附加到文件名的末尾?
谢谢
vhdl - Mod-M 计数器 无符号值没有信号
我正在为我的 Nexys2 板编写 RS232 模块。我目前的波特率控制器有问题,我想将其设置为 19200。
为此,我使用了 Mod-M 计数器,经过多次 ISim 模拟后,我的代码的问题在于 mod-m 计数器,因为它没有产生任何滴答声。
我已经测试了所有的 clk 输入并且运行良好,问题似乎出在 r_reg 和 r_next 寄存器上。在 ISim 中,当在 q 上输出其中任何一个时,我得到 UUUUUUUU,因此它们似乎没有产生信号。由此我可以推断出两个 r_reg 和 r_next 寄存器没有被创建或存储值,使用无符号时是否有问题?
为了确保三重,我什至已经从使用 VHDL 的 FPGA Prototyping 一书中复制了 mod-m 计数器(这是显示的代码)但是这仍然不起作用并且 q 输出是 UUUUUUUU。
如果有任何更好的方法可以从 nexys2 50mz 时钟创建波特率,那也将不胜感激!
干杯
vhdl - VHDL 字符集生成
我需要从字符集中生成所有可能的组合。
生成的模式应该像这样输出。
这将在长度为 8 的情况下完成。即a=>zzzzzzzz
。我已经通过用 C 编写一个示例来解决这个问题,并为此使用了递归函数。我知道它写得又快又脏,但希望你能有所了解。
我的问题是双重的:
- 我应该在 VHDL 中使用递归吗?
- 如果没有,我该如何解决这个问题?
更新:
因此,最终目标是合成代码并将值输出到时钟端口。据我了解,通过阅读评论递归可能是深度 2 之外的一个坏主意,因此最好以其他方式解决它,而不使用递归。
由于除了递归之外,我无法以任何其他方式思考这个问题(似乎无法弄清楚),任何指针或建议(甚至代码!)将不胜感激。
hardware - if-else 的 else 块对不同的条件有不同的作用
我正在使用 if else 块编写一个简单的移位寄存器。我注意到当控制信号是control = 2'b00
(意味着它保留默认值)时,else 块可以正常工作,但是当我给出控制值control = 2'b11
时,它开始向右移动,这不是我想要的。
为什么 else 块有选择性地工作?即使两者都control = 2'b00
落在control = 2'b11
其他情况下?
代码和截图如下:
编辑:
以上也不起作用..但我用案例修复了它。
hardware - 如何在给定时间内选择一个随机数?
我希望 LED 应在 15 秒内的任何随机时间打开。例如按下一个按钮后,它应该在 4 秒或 7 秒后打开,这是随机的。
我想出了产生 15 秒延迟的代码,但我想不出一种方法来选择这之间的随机时间。
以下是我延迟 15 秒的代码:
我也想要一个可综合的解决方案。
counter - verilog 计数器实现意外行为
我在verilog中做了一个计数器,并在硬件中实现了它。但我无法解释行为代码是:
在硬件中,当我点击 时rst
,LED 会在计数时冻结。它并没有完全为零。Assert rst
,你可以看到一些非零的随机模式,除非我 release ,否则它们不会改变rst
。
我的问题是:当if(rst) begin
块执行时,counter
设置为 0。由于 LED 被分配为组合逻辑counter
,它不应该立即反映吗?
verilog - Verilog:混合分配给变量的阻塞和非阻塞分配不是推荐的编码实践
我有以下 Verilog 代码:
当我尝试在 Xilinx Platform Studio 中为此设计生成网表时,我不断收到以下错误:
我完全被卡住了,不知道该怎么办。
hdl - 我的 DMux 4 方式有什么问题?
它似乎接近工作,显然只是在第 7 行搞砸了?
我已经按如下方式实现了我的 DMux,我只是把它当作一棵树来使用:
boolean-logic - 如何仅使用 AND 和 NOT 来表达由 AND、OR 和 NOT 组成的布尔表达式?
假设我有以下布尔表达式:
我怎么能只用 AND (^) 而不是 (~) 来表达呢?我不想要答案,只是我将如何去做。