问题标签 [spartan]
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 - 信号已分配但从未使用过。这个未连接的信号将被修剪
首先 - 我有三维 reg,仅在初始开始时分配。
起初我试图访问这样的位(pc是我的程序计数器):
但优化一直在修剪我的信号。后来我发现我需要新的注册来保留整个注册,然后我可以访问位。所以我做了这个:
[...]
我的信号停止被修剪,但现在优化想要修剪 tempPS,因为:
信号已分配但从未使用过。这个未连接的信号将在优化过程中被修剪。
好吧 - 随着 pc 的变化,使用 tempPS,我不知道这个错误到底意味着什么,我该如何解决它。任何帮助表示赞赏。
vhdl - “-bp” MAP 选项在哪里以及如何在 xilinx 的 spartant 6 中使用它,或者任何可以建议使用更少资源的更好设计
我在 vhdl 中编写一些代码,当我合成它时显示 desgin 正在使用 13036 切片 LUT
在谷歌上搜索后,我找到了以下链接(http://www.xilinx.com/support/answers/15888.htm),上面写着如果我们使用“-bp” MAP 选项我们可以减少使用的 LUT,所以这是可能的。如何使用 xilinx 14.4 中的选项。这是我第一次遇到使用的逻辑超过可用的情况。
代码如下:
感谢 Brian & baldy,我明白了我的 for 循环部分如何转换为状态机类型的逻辑。需要制作一些乘法和加法器数组(我正在编写 60 个抽头,同样可以用于 100 个抽头):
和一个新的逻辑:
在一个时钟周期内使用上述替换而不是 for 循环,我可以获得更好的结果:
是的,我可以成功实现该设计,并且它适用于 FPGA(xc6slx9)。
现在我尝试在Microblaze中进行此设计。制作了一个外设,在用户逻辑中使用了相同的 vhdl 代码,因为相同的设计使用了更多的资源
并且无法实现,那么如何才能对其进行更多优化呢?如果有必要了解我在做什么,我可以编写完整的 vhdl 代码。
vhdl - 如何在 v/hdl 编程的测试台中写入不同时钟周期的输入值?
我正在为 AES 加密算法编写 vhdl 代码,我必须采用 128 位数据来加密所以使用 1 位输入引脚。对于 128 位数据,我使用 128 个时钟周期和 case 语句。我必须编写测试台来检查代码是否正常工作。如何在测试台上以不同的时钟周期写入 128 位数据。
- 一点点
- 它(128位信号)
verilog - Verilog 三态问题(Xilinx Spartan 6)
在这里提到我之前的问题,我一直在利用三态与公共总线一起工作。我似乎仍然有一些实施问题。
三态使用这种类型的代码:
分配 io [width-1:0] = (re)?rd_out [width-1:0]:{width{1'bz}};
合成和翻译进展顺利。没有我没想到的警告或错误(我期待一些,因为这只是一次试运行,大多数组件没有做任何事情,因此将保持未连接状态)。但是当我真正尝试实现它时,所有总线(共有三个)输出一个 1111111111111111 或 -1,由我的二进制到 BCD 转换器转换。如果总线上接收到的指令为-1,我通过指示控制矩阵停止来检查是否确实如此,并且它确实停止了。
我收到的关于将三态转换为逻辑的警告是:
Xst:2040 - Unit Neptune_I: 16 个多源信号被逻辑替换(上拉是)
Xst:2042 - 单元 alu:16 个内部三态被逻辑替换(上拉是):
等等。Neptune_I 是顶级模块,我相信它所指的多源信号是总线。
我怀疑上拉是不是这个问题的根源。它只是简单地把所有东西都拉起来,导致它一直是-1吗?但这对我来说没有意义,因为当三态被激活时,信号应该由它应该被控制的任何实体控制。
我想花时间用逻辑而不是三态替换代码,但我不确定如何继续。
任何帮助,将不胜感激。
max - Xilinx ISE - 最大频率
我正在尝试在 ISE 中为 Spartan 6 合成任何简单的项目。当我使用时钟向导和 f = 40 MHz(100Mhz 外部振荡器)的 clk 发生器时,XST 说:
时序总结:
速度等级:-3
最小周期:9.482ns(最大频率:105.458MHz) 时钟前最小输入到达时间:2.623ns 时钟后最大输出所需时间:3.597ns 最大组合路径延迟:5.194ns
好的,但是当我将核心发生器中的 clk 频率更改为 100MHz 时,响应是最大频率约为 47MHz ...
怎么了?确定最大频率的正确方法是什么?
vhdl - 尝试在 VHDL 中使用 3x4 键盘输入和 2x16 LCD 制作一个 4 位乘法器,以在 Spartan 3E 板上实现
每个人。我正在尝试在 VHDL 中制作一个 4 位乘法器。它将使用内置的 2x16 LCD 和通过 C922 IC 的 3x4 键盘在 Spartan 3E 板上实现。
使用过程是这样的:用户通过键盘输入一个数字,按下一个按钮进行确认,输入第二个数字,再次按下确认按钮,产品就会显示在 LCD 上。
到目前为止,keypad+c922 和 LCD 的代码都没有问题。乘数的代码几乎没问题。问题是确认按钮仅在按下另一个数字(最终未使用)时才起作用。
这是我的代码。以下是 Xilinx 仿真的屏幕截图
我已经浏览了我的代码一个小时,但仍然看不出有什么问题。提前感谢任何可以提供帮助的人。
usb - 斯巴达 6 - USB 键盘
我正在尝试使用 USB 键盘来控制我在 spartan 6 板上构建的游戏。我正在努力理解让它发挥作用的过程。
我在板上看到了物理 USB 端口(我在校园里使用的是 xilinx 大学板)。我知道有用于 usb2 的 AXI IP,但它们都需要许可证(如果我使用它们,不会让我将项目导出到 sdk)。
我在http://jorisvr.nl/usb/遇到了开放的 USB 源。我在想这正是我想要/需要的,但我很难理解如何实现它。
现在我想我应该使用 xilinx 平台工作室来创建一个自定义 ip。在该自定义 ip 中,使用打开 USB 的 vhdl 源。连接所有不同端口的过程让我不知所措。但我最不明白的是开放 USB 工作所需的 PHY (UTMI) 块。那是什么?我需要实施吗?
我有点失落。任何指导将不胜感激。打开 USB 的手册可以在http://jorisvr.nl/files/fpga_usb_serial_manual.pdf找到。
memory - 在FPGA中存储数组
我正在尝试实现一个简单的乘法器。我有一个文本文件,其中有两列。我将第 1 列乘以第 2 列。这是 Verilog 中的代码:
我有 Xilinx Spartan®-6 LX45 FPGA 板。它提供 128M bit ddr2 ram 和 16Mbyte x4 SPI Flash 用于配置和数据存储。
现在我想将我的文件存储到 FPGA 板到内存中。那么我该怎么做呢?我是否必须使用 IP 内核来访问内存或通过任何其他来源?
PS:这是我第一次,我在FPGA上存储任何东西。
问候!
阿瓦伊斯
vhdl - VHDL , Spartan-3AN 输出
我有这个设计,它基本上是一个多功能压延机,具有以下特点:
- 以[格式年/月/日:小时:分钟:秒]显示日期
- 秒表。
- 警报 。
- 闹铃激活时的 Snooz 选项,您可以更改 Snooz 周期或停止闹铃。
- 事件,要保存在选定的日期和时间,当它发生时,将启用警报。
这就是我为计算时钟所做的[小时:分钟:秒]
和这个代码做休息日期信息[年/月/日] ...
我还独立地为秒表编码,输出在 spartan 3 中的 7-Segment 上,如下所示......
现在,我的问题是..
我应该把所有这些信息都显示在 spartan 3-AN 的 LCD 显示屏上,我完全没有经验,我知道我的代码还没有完成,仍然需要像我一样做一些时钟划分秒表代码,我知道与 LCD 交互时时钟分度会改变,所以我现在没有费心在我的代码中编写它。如果有人可以给我有关如何处理 LCD 显示器、如何显示字符、如何从一个字符移动到另一个字符的任何信息,以便我可以在键盘发生事件时更改它。
您可以说我在 Spartan 3AN 中处理 LCD 的经验为 0,我尝试查看 xilinx 提供的开发板的用户指南,我从中了解了一些内容,但仍然不知道如何使用它,如果有任何可以帮助的教程对我来说已经绰绰有余了。
storage - Spartan 6 SP605 VHDL 外部内存使用?
我是使用 VHDL 的新手,我的项目遇到了问题。我正在尝试制作一个 FPGA 来从一种通信协议转换为另一种通信协议,为此,在转换之前能够存储(希望是多个)数据包会很有用。
在我尝试将这些数据存储在数组中之前,很快就发现这在 FPGA 上占用了太多空间。因此,我一直在寻找一种将数据存储在 SP605 板上的 DDR3 ram 上的方法(http://www.xilinx.com/support/documentation/boards_and_kits/xtp067_sp605_schematics.pdf,第 9 页)。但是,我找不到有关如何从中写入或读取数据的说明。我试图在每个时钟周期存储一个 8 位 std_logic_vector 以供以后访问。
谁能告诉我如何进行?