问题标签 [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.
c - C 到硬件编译器(HLL 综合)
我尝试对所有 C 到硬件的编译器进行调查/历史记录。
对于所有不了解它们的人:他们采用 C 代码,然后将其翻译成某种硬件描述语言(如 VHDL 或 Verilog),然后可用于生成硬件(通常它被映射到 FPGA - 但我不限于此, ASIC 作为目标也可以)。
我已经收集了一些(+关于它们的信息)。所以我的问题是:你知道任何其他编译器(如果有的话,有任何引用、指针、关于它们的信息)吗?
到目前为止我的清单:
- 自动英语
- 巴赫-C(夏普)
- C2H (Altera)
- C2R (Cebatech)
- C2Verilog(CompiLogic/C 级设计/Synposys)
- Carte / MAP(SRC 计算机)
- 级联(CriticalBlue)
- 现金(卡内基梅隆大学,匹兹堡)
- Catapult-C(导师图形)
- CHC (Altium)
- CHiMPS(华盛顿大学(西雅图)/赛灵思/即将商业化?)
- C 到 Verilog(海法)
- 同志(TU Braunschweig EIS + TU Darmstadt ESA)
- CVC(日立)
- 网络(NEC)
- 代达罗斯(Uni Amsterdam,Uni Leiden)
- DIME-C(纳拉泰克)
- 激发 (YXI)
- FP 编译器 (Altera)
- FpgaC(开源)
- GarpCC(加州大学伯克利分校卡拉汉)
- GAUT (UBS-法兰克赖希大学)
- 亨德尔-C (Celoxica)
- Hthreads(堪萨斯大学)
- Impulse-C(脉冲加速技术)
- Mitrion-C (Mitrionics)
- 矮人(代尔夫特理工大学)
- 灵活(Synopsys,EIS 布伦瑞克)
- NISC(加州大学欧文分校)
- PICO-Express (Synfora => Synopsys)
- PRISC(哈佛大学,剑桥)
- ROCCC(加州大学河滨分校)
- SPARK(加州大学欧文分校)
- SpecC(Gajski 等人)
- Trident(开源,洛斯阿拉莫斯国家实验室)
- 啊
- 小牛肉
- vfTools(矢量织物)
- xPilot(加州大学洛杉矶分校)
(我知道并非所有列表中的 C 都如此,有些使用与 C 类似的方言,而且几乎所有都只支持一个子集,我也对此感兴趣)。
编辑:我知道如何使用谷歌,所以我已经检查了通常的嫌疑人并包含了结果。因此,如果某人确实知道某些论文或异国工具(或者可能不是那么奇异,但以某种方式隐藏了实现功能,并且没有宣传编译器),很可能有人只能在这里回答。
fpga - 为包含配置比特流和 Microblaze 软件的 Xilinx Spartan-6 创建可引导 SPI 闪存(PROM 文件)的设计流程
我想知道为串行 SPI 闪存创建 PROM 文件 (.MCS) 的正确程序,其中包括 FPGA 配置比特流和 Microblaze 处理器使用的软件。这是假设我的硬件和软件设计都已完成。
我正在使用 Xilinx Spartan-6 评估板 SP605,它具有多个非易失性存储设备,我希望使用串行 SPI 闪存来存储 FPGA 比特流和需要加载到内存中的 Microblaze 软件。只有当 Microblaze 的代码驻留在内部 BRAM 中时,我才能实现这一点。如果我创建我的链接脚本,以便将代码或数据部分放在外部 DDR3 RAM 中,它会失败。
- 编辑 -
好的,所以我尝试了几种不同的方法,并且对我需要做的事情有了更好的理解,但仍然没有成功(顺便说一句,感谢您的回复安迪)。所以,我尝试了两种不同的方法。对于他们两个,我首先将系统比特流与引导加载程序合并以生成一个运行良好的新 .bit (download.bit) 文件(当您在 SDK 中点击程序并选择引导加载程序来加载 BRAM 时,它调用 data2mem 到生成新的 download.bit 文件)。
第一种方法 - BIN 文件
一旦我的主程序完成(使用针对 DDR RAM 和所有的链接器脚本),我调用 mb-objcopy 从 .elf 生成一个 bin 文件:
然后我使用 iMPACT 创建和使用 download.bit 和 dummy.b 的 MCS 文件。我将 download.bit 放在 SPI Flash 的起始地址,然后将 dummy.b 放在更下方(引导加载程序已经指向该地址)。然后我将 MCS 刻录到串行 SPI 闪存,重新启动,引导加载程序运行,并且应该将所有内容复制到 DDR RAM,但是,主程序不起作用。我在这里错过了什么吗?如果我尝试在不将主程序从 .elf 更改为 BIN 的情况下使用 iMPACT,PC 会挂起(有时我什至必须完全重置计算机)并且我有一台速度非常快且配备内存的 PC。
我使用的引导加载程序与 Xilinx XAPP1146 文档中链接的引导加载程序相同。
第二种方法 - SREC 文件
步骤几乎相同,除了我使用相同的 mb-objcopy 命令生成 SREC 而不是 BIN 文件(这次我不删除任何扇区,否则我需要为 BIN 文件执行此操作它会生成一个巨大的文件)。
我使用的引导加载程序是 SDK 软件具有的引导加载程序。
如果您已成功为 Microblaze 创建了引导加载程序,请告诉我。
在此先感谢,埃里克
vhdl - quartus如何将四个输入转换为块中的两个输入?
如何将需要 4 个输入的 bloch 实体转换为 2 个输入?
http://dl.dropbox.com/u/287
9760/sample.PNG 你在这里看到我使用三个相同的多路复用器:(如何只接受 etykieta2 两个输入?代码:
包
matlab - 需要帮助:接收器设计查询论坛
尽管我非常喜欢这个论坛来解决与编程相关的问题,但我在这里几乎找不到帮助。我正在为 WLAN 设计接收器,并且有很多疑问,我正在寻找一个论坛,在那里我可以询问在同一领域工作的人。
如果你能建议我在哪里发布我的问题,我会很高兴。
谢谢
vhdl - 优化 fpga 实现的流水线吞吐量的最佳实践是什么?
例如,如何充分利用重定时和/或 c-slow 来充分利用给定的管道。
通过重定时,一些模块通过将移位寄存器放在输入上(前向寄存器平衡)获得更好的结果,而其他模块在输出上使用移位寄存器(后向寄存器平衡)做得更好。
现在我使用以下方法:
- 代码 hdl(在 verilog 中)
- 为特定模块创建时序约束
- 合成、映射、布局和路由(使用 ISE 13.1)
- 查看待改进模块的布局布线时序,以及最大逻辑电平数。
- 取这个数量的逻辑电平,并对要插入的触发器的数量进行有根据的猜测。
- 插入触发器,启用寄存器平衡,希望最好
就目前而言,这种方法是命中注定的。有时它会得到很好的结果,有时它是垃圾。那么,有什么好的方法可以提高这种重定时的成功率呢?
有什么工具可以帮助解决这个问题吗?此外,链接、论文和书籍推荐将不胜感激。
matlab - 使用 Xilinx 模块集在 Simulink 中进行 DBPSK 解调
我正在尝试使用 Simulink 和 Xilinx 模块组构建 DBPSK 解调器。我像这样计算连续样本的相位差:
所以,现在我需要根据相位差是 0 还是 pi 将这些相位差映射到符号 0 或 1。
我不确定如何在 Simulink(Xilinx)中进行相位到符号映射。顺便说一句,这是 Matlab 版本:
请让我知道,如果我的方法是正确的,以及如何进一步
fpga - 如何在 Xilinx Simulink 中获取数字的绝对值?
我需要在 Xilinx Simulink 中获取信号的绝对值。
我可以使用 mcode 块并编写 matlab 代码来实现它。但是,只是好奇是否有更好的方法。
我对使用 Simulink(Xilinx)非常陌生。Xilinx 库中的 Simulink 中是否有任何 abs 块。
谢谢
matlab - Xilinx Simulink 中的信号正弦波
我正在实现一个 DQPSK 调制器和解调器。我想在 Simulink 中计算 exp(1j*Phase)。
我怎样才能实现这样的模型?
这是模型中计算相位的部分:
顺便说一下,模型中的 ROM3 块存储值:0、pi/2、pi、3*pi/2(星座点)
right-to-left - Mentor 中来自 FPGA 的关键路径
我正在与 Mentor FPGA 一起使用模块件和 vhdl 进行 RTL 设计。现在我正在查看 Mentor Graphics Precision RTL 综合 GUI。有谁知道我如何使用此工具获得关键路径?
fpga - Simulink 中两个复数向量的矩阵乘法
真的有两个问题,但我想让它更具描述性:
我正在实现一个涉及复向量矩阵乘法的调制器:
举个例子:
基本上,我最终需要在 Simulink(Xilinx)中实现这个硬件:
我的问题,如何用复数向量建模矩阵乘法。我的理解是使用Complex Multiplier。但那是只乘以 2 个复向量
如果我必须在一个时钟中乘以 2 个以上的复数向量,这是可能的。
我不期待任何像模型本身这样的答案,但如果有解决问题的可能方法/方向
感谢阅读,基兰