问题标签 [fpga]

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.

0 投票
1 回答
204 浏览

c - 自动跟踪源代码中变量的使用

我正在使用一组语音处理例程(用 C 编写),旨在使用 MATLAB 上的 mex 命令进行编译。我有兴趣使用 FPGA 加速这个 C 函数。

硬件通过输入端口接收指定的输入参数,其余输入作为常量进行硬编码,并将 C 函数中某个位置的特定变量(例如foo)传递到输出端口。

我有兴趣跟踪foo的计算图(不确定这是否是正确的术语) 。即foo如何与中间计算变量相关,而中间计算变量最终取决于输入参数和硬编码常量。这是为了让我可以展平逻辑,以便可以使用硬件描述语言对它们进行编码,并删除不影响foo值的不相关逻辑。问题是一些中间变量是全局的,因此跟踪是一个令人头疼的问题。

是否有一个自动化工具可以分析一组给定的 C 头文件和源文件,并提供一种跟踪指定变量如何更改的方法,并使用所有变量的某种依赖关系图?

0 投票
1 回答
3800 浏览

fpga - 什么是差分 I/O

在 Spartan 3E Fpga 的世界中,文档说

大多数引脚可以配对在一起形成差分 I/O。

问题是:什么是差分输入/输出?

0 投票
1 回答
2176 浏览

embedded - 在 Verilog 中驱动双向线路

这个问题可能不会很好地解释,那是因为我真的不明白我的设计中发生了什么。

我需要使用 I2C 通信总线与相机(Terasic D5M)通信,所以我尝试使用 Verilog 编写一个。我只需要一个大师。在我的逻辑分析仪上,一切看起来都很棒,除了我不断从相机收到 NACK 信号。最初我不知道出了什么问题,所以我把它放在一边。

今晚我尝试使用具有 D5M 模块的 Altera 大学 IP 内核。将其设置为自动初始化后,我观察了分析仪上发生的情况。跟踪看起来与我的 I2C 模块的输出相同,但这是设备注册的 ACK。

我的问题是,我一生都无法弄清楚为什么我没有得到认可。可能是我不允许相机将 sda 线拉低(scl 工作正常),但我不知道为什么会这样。

有没有人有类似的经历或知道我应该去哪里看/发帖/阅读?我会发布一些代码,但如果不是完整的,我不知道它会有多大用处。很抱歉这么含糊,但我真的很迷茫,甚至不知道我应该问什么;我想这是一个类似的效果请求。感谢您的帮助,这是 i2c 模块的输出行的一些代码。

pSCL 是以所需速率运行的时钟,sda_bit 是运行期间 sda 线的值。这是释放和等待确认的部分。这嵌入在我的转换状态中,因此是 else if 的开始。

我认为释放 ena_sda 足以让相机驱动模块。我想我之前把 sda_bit = HIGH 作为测试(我一个月没看过这个)。

我很乐意分享更多代码或显示我的逻辑跟踪,但我不想再把它弄乱了。谢谢阅读。

0 投票
2 回答
3213 浏览

embedded - 是否可以在任何 Xilinx FPGA 上对没有 EDK 的 Microblaze 进行编程?

是否可以在任何 Xilinx FPGA 设备上对没有 EDK 的 Microblaze 进行编程?

我正在Linux下开发。

有没有建议的tutos /书籍?有稳定的开源克隆吗?

0 投票
2 回答
6537 浏览

vhdl - 明确定义如何在 Xilinx XST 工具中使用 LUT 和切片?

我正在尝试为使用 XST 工具合成的 Xilinx Virtex 5 FPGA 用 VHDL 编写的 LUT 和切片的一些非常具体的行为。我不知道我是否可以通过让工具推断我的意思来实现我的行为,那么我如何明确指示这种情况发生呢?

我说的是在 Virtex5 上使用 6 输入 LUT,其中一个 CLB 中有 4 个。

我想明确说明: - 一个 CLB 切片中 4 个 LUT 的输入 - 路由 4 个 XORCY 的“S”输出 - 指定“第一个” MUXCY (C0) 的输入 - 路由“第 4 个” MUXCY 的输出(Cn) - 能够以特定顺序指定 CLB 的每个 LUT 的输入,因为它们显然是级联的。

理想情况下,我很想用所有输入和输出在 VHDL 中实例化一个“CLB”,并能够映射这些..

我对文档进行了大量研究,但没有发现任何真正的东西

0 投票
1 回答
571 浏览

fpga - ISE 和 EDK 项目之间的接口

我正在 fpga (Virtex4) 上进行图像处理。我已经在 vhdl 中编写了 uart 程序,它正在 fpga 上工作……它通过超级终端获取数据……我的问题是我想将我的像素存储到内存中(ddrsdram)。我将为此使用 EDK.. 我的问题是我不知道如何在我的 ISE 和 EDK 项目之间进行接口...我是 EDK 新手,我不明白如何使用 ISE 和 EDK 版本继续我的 EDK 11.1

希望快点回复...

0 投票
2 回答
4027 浏览

verilog - 无法实现简单的 ALU

我有一个在 Verilog 中描述的基本 8 位 ALU。我正在尝试实现该设计,但收到错误消息:

错误:NgdBuild:809 - 输出焊盘网络“商<1>”具有非法负载:块 Mmux_opcode[2]_GND_1_o_wide_mux_8_OUT81 上的引脚 I3,类型为 LUT6

该设计执行以下操作:加法、减法、乘法、除法、AND、OR、XOR 和 XNOR。有趣的是,Xilinx XST 无法合成除法器,除非被除数除以 2(基本上是右移)。因此,为了解决这个问题,我使用了 Xilinx Core Generator 生成的 CORE IP 组件。它需要一个时钟(没有时钟启用或同步清除,并在大约 20 个时钟周期后输出正确的商和余数。核心本身可以在核心生成器程序的数学函数下找到。无论如何,这是我的代码:

显然我的代码很糟糕,我的评论可能是错误的,但我只是 Verilog 的初学者。但是,我确实计划大大改进此代码并添加更多操作供我练习。该模块本身确实成功地合成和正确模拟,但我无法在任何 FPGA 上实现它。任何人都知道代码或Xilinx ISE(像往常一样充满错误)或项目设置是否有问题?

编辑:我对代码进行了一些更改,以反映答案提供的建议。

0 投票
3 回答
1989 浏览

fpga - FPGA时序问题

我是 FPGA 编程的新手,我对整体执行时间方面的性能有疑问。

我读过延迟是根据周期时间计算的。因此,总执行时间 = 延迟 * 周期时间。

我想优化处理数据所需的时间,我将测量整体执行时间。

假设我有一个计算 a = b * c * d。

如果我让它在两个周期内计算 (result1 = b * c) & (a = result1 * d),则总执行时间将是 2 * 周期时间的延迟(由乘法运算的延迟决定,例如值X) = 2X

如果我在一个周期内进行计算(a = b * c * d)。总执行时间将是 1 * 周期时间的延迟(比如值 2X,因为它有两倍的延迟,因为两次乘法而不是一次)= 2X

因此,似乎为了优化执行时间方面的性能,如果我只专注于减少延迟,则周期时间会增加,反之亦然。是否存在延迟和周期时间都可以减少的情况,从而导致执行时间减少?我什么时候应该专注于优化延迟,什么时候应该专注于周期时间?

另外,当我用 C++ 编程时,似乎当我想优化代码时,我想优化延迟(执行所需的周期)。然而,对于 FPGA 编程,优化延迟似乎是不够的,因为周期时间会增加。因此,我应该专注于优化执行时间(延迟 * 周期时间)。如果我想提高程序的速度,我是否正确?

希望有人能帮助我。提前致谢。

0 投票
2 回答
1540 浏览

fpga - FPGA 连接到网络

我知道一些 FPGA 板可能有以太网端口。但是,如何将 FPGA 板连接到 Internet 以接收和解码 TCP/UDP 数据包?基本上,我想通过 TCP 或 UDP 从服务器接收一些数据并在板上进行处理。

0 投票
1 回答
690 浏览

algorithm - 什么是冗余与非冗余数字格式?

我无法理解这个 FPGA 电路中使用的算法。它处理冗余与非冗余数字格式。我已经看到了一些非冗余格式的数学(正式)定义,但我无法真正掌握它。

本文摘录描述了该算法:

图 3 显示了可扩展的蒙哥马利乘法器的框图。内核包含p w-bit PE,总共wp位单元。Z以进位保存冗余形式存储。如果 PE p在 PE1 完成Z ^(e-1) 之前完成Z ^0 ,则结果必须排队,直到 PE1 再次可用。[5] 中的设计以冗余形式对结果进行排队,每个条目需要2w位。对于较大的n,队列消耗大量区域,因此我们建议将Z转换为非冗余形式以节省一半的队列空间,如图 4 所示。在第一个循环中,Z初始化为0。当不需要排队时,直接绕过进位保存冗余Z'以避免进位传播加法器的延迟。非冗余Z结果也是系统的输出。

和图表: 图 3 是高级,图 4 是 FIFO,并通过使其使用非冗余格式进行了“改进”。

这是“改进的”PE 框图。这显示了“改进的”PE 框图——“改进的”与一些不相关的方面有关。
“改进的”PE 框图

我没有“未改进” FIFO 的图片,但我认为它只是一个普通的 FIFO。我不明白的是,FIFO 的 CPA 和 3 输入 MUX 是否以某种方式在格式之间转换?

了解冗余与非冗余格式(在具体示例中)是第一步,了解该电路如何实现它将是第 2 步。