问题标签 [hardware-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.
reverse-engineering - 开始硬件开发
我希望开始简单的硬件开发,并希望能够从逆向工程中学习到足够的进步。
我想从一个微控制器开始,并考虑一些,比如 Mbed 和 Arduino。我应该带什么去?
我在想可能是 mbed,因为它具有 USB 和以太网功能等等,但我真的不知道 Arduino 有什么。获得公共汽车海盗(因为它更便宜)也会起作用吗?
我真的不想基本编程;我目前的视差控制器很痛苦!
simulation - 如何管理未初始化的输入信号
我想知道您对如何测试和管理“U”、“X”、“-”、...的组件的输入信号的看法
例如,如果我希望所有无效输入的输出为“X”,其中输入的至少一位不是“0”或“1”:
这样,测试默认为假。
如何测试输入的一般方法?
opencv - 我可以在 Catapult C 中使用 openCV 库吗?
我的最终目标是在 Altera DE2 FPGA 上进行人脸/对象检测和通用图像处理应用程序。我正在使用 Catapult C 对 FPGA 进行编程(所以我使用的是 C 代码,而不是 Verilog 或 VHDL)。
我的问题是 Catapult C 是否支持 openCV 库,以及有关如何安装库以便它们在 Catapult 中运行的任何提示/链接。有什么特别的考虑吗?搜索了谷歌和stackoverflow,但还没有运气。谢谢你。
binary - 硬件设计一个3位二进制数加法器
我想设计一个二进制全加器来添加 3 个二进制数,这个加法器的典型单元格如下所示
有人可以解释为什么我们有 2 个进位到下一位吗?问候
vhdl - 在 Vhdl 中使用 Generate
我在 Vhdl 中有以下代码现在我想将此信号 S1 有条件地重定向到输出端口,如果有人能指导我完成此操作,我将不胜感激。
我知道我们可以在生成循环中使用一个进程,但其他方式也是可能的!如果我将 S1 声明为全局信号,它会抱怨连接到多驱动网络?这有什么不同?
如果有人能指导我完成这件事,我将不胜感激
verilog - 在 modelsim 中模拟 Verilog 设计时出现未知错误结果
设计:
试验台:
输出结果:
我不知道为什么或如何获得 d_74151 模块的 Y 和 W 输出的 x 和 y 值。虽然我测试并看到 r 得到正确的输出 0 或 1,但依赖于 r 的 Y 和 W 仍然在模拟中显示这些值。关于这个以及如何解决它的任何想法?提前致谢。
PS,这些是包含启用的 8 位多路复用器/选择器的结构和数据流描述。
type-conversion - 如何在 vhdl 代码中实现原理图并将数据类型从 std_logic 转换为 bit
我试图实现一个比普通 RCA 更快的加法器。因此,我使用了 XILINX 库并找到了一个名为 adsu8 的简单加法器。我想将它嵌入到我最近的 VHDL 代码中。但因此我必须坚持使用数据类型 BIT 和 BIT_VECTOR。现在每次我合成时都会弹出一堆这样的警告:
:Xst:2036 - 在端口上插入 OBUF > 由黑盒驱动。可能的模拟不匹配。
我在 VHDL 方面没有这种经验,但也没有那么少。但是这个问题让我感到困惑并导致头痛。我很感激任何正确方向的解决方案或信息。
提前致谢并致以最诚挚的问候
托比
fpga - 具有 A 和 B 固定点的“A div B”硬件
我需要一种方法来计算定点数 B 包含在定点数 A 中的次数。类似于整数除法,但在非整数操作数上。我需要为此操作设计一个硬件块。我的第一个猜测是使用除法作为移位和减法,当我到达小数部分时停止,但也许你知道找到它的更好方法。
verilog - Verilog: wait for module logic evaluation in an always block
I want to use the output of another module inside an always block. Currently the only way to make this code work is by adding #1 after the pi_in assignment so that enough time has passed to allow Pi to finish.
Relevant part from module pLayer.v:
Modllue Pi.v
Delays should not be used in the final implementation, so is there another way without using #1?
In essence i want PermutedBitNo = pi_out to be evaluated only after the Pi module has finished its job with pi_in (=8*i+j) as input. How can i block this line until Pi has finished?
Do i have to use a clock? If that's the case, please give me a hint.
update:
Based on Krouitch suggestions i modified my modules. Here is the updated version:
From pLayer.v:
From Pi.v:
hardware-acceleration - 两个芯片可以轮流访问两个内存库吗?
假设你有两个芯片——具体来说,一个 CPU 和一个视频芯片——它们都想以内存能够提供的最大带宽访问内存。假设每个视频帧是 X 字节,CPU 想要写入 X 字节以生成下一帧,视频芯片想要读取 X 字节以显示当前帧,并且内存的最大带宽为每秒 60X 字节,因此它可以处理读请求或写请求,但不能两者兼而有之。
是否有可能有两个内存库,每个 X 字节大小,每个能够每秒 60X 字节,这样在偶数帧上 CPU 写入第一个库,视频芯片从第二个库读取,而在奇数帧上则相反反之?