您可以使用类 C 语言对 FPGA 进行编程吗? [关闭]

2024-01-25

在大学里,我用类似 C 的语言编写了 FPGA。不过,我也知道人们通常使用 Verilog 或 VHDL 对 FPGA 进行编程。这是设计师的选择吗?如果是这样,性能上的缺点是什么?

理想情况下,我希望使用类似 C 的语言而不是 VHDL 来对 FPGA 进行编程。

我正在考虑购买 Xilinx Virtex-5,如果它有什么区别的话?


FPGA 不是处理器。 C 是一种为处理器设计的语言。

是的,有 C 到 FPGA 编译器。

这是个好主意吗?我会说不。你最终得到的设计(从我所看到的来看)通常是一个状态机,C 语言中的每行代码都有一个状态。然后状态机在执行的状态之间移动算法。要么使用该图灵机,要么使用某种其他类型的图灵机来执行代码。

This is notFPGA 设计技术人员通常如何解决问题。这是一种缓慢且可能需要大量门的做事方式。

就像英语比 Fortran 更适合写小说一样,VHDL 和 Verilog 比 C 更适合描述逻辑电路。

如果您真的想使用 FPGA,请使用专门用于描述逻辑电路的语言。这可能是一个陡峭的学习曲线,但恕我直言,结果会好得多。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

您可以使用类 C 语言对 FPGA 进行编程吗? [关闭] 的相关文章

  • Tcl脚本学习

    包的创建和调用 在tcl脚本中 我们可以通过创建和调用包来增强代码的可复用性 创建包的步骤 1 在包脚本文件中 首先声明 package provide 标识当前文件提供了一个包 之后在该文件中完成包的内容 2 通过pkg mkIndex命
  • 在vivado中使用tcl脚本(UG894)

    本文源自UG894 主要介绍如何在vivado中使用tcl脚本 1 vivado中如何获取tcl help vivado中任何自带的命令都可以通过 help 获取帮助信息 也可以直接输入 help 取得vivado命令合集 并通过 help
  • Verilog--CDC跨时钟域处理(快时钟域到慢时钟域)

    Verilog CDC跨时钟域处理 快时钟域到慢时钟域 CDC问题 单比特信号的跨时钟域问题 从快时钟域到慢时钟域 从慢时钟域到快时钟域 多比特信号的跨时钟域问题 异步FIFO 握手协议 DMUX 格雷码 双D触发器 今天先写单比特信号从快
  • FPGA面试真题解析(3)

    9 寄存器的Tsu 建立时间 是如何定义的 硬件逻辑实习岗 A 在时钟沿到来之后数据保持稳定的时间 B 在时钟沿带来前后数据都需要保持稳定的时间 C 在整个时钟周期数据保持稳定的时间 D 在时钟沿到来之前数据保持稳定的时间 解析 考察数字电
  • Ubuntu16.04主机安装基于ZYNQ的QT交叉编译库

    Ubuntu16 04主机尝试安装基于ZYNQ的QT交叉编译库 前言 基于vivado2016 4 SDK的交叉编译环境 主机Linux上安装vivado2016 4版本 qtcreator上添加基于ZYNQ的交叉编译工具 基本环境 参考资
  • [FPGA系列] 扩展知识 --- 时钟小结

    一 基本概念 时钟域 由同一个时钟信号控制的区域 时钟抖动 Jitter 相对于理想时钟信号 实际时钟信号存在时而超前 时而之后的偏移 时钟偏斜 Skew 时钟信号到达数字电路各个部分所用时间的差异 时钟漂移 Wander 工程上解释 抖动
  • 【Xilinx DDR3 MIG】Xilinx FPGA DDR3读写实验相关用户接口引脚解释

    目录 DDR3读写实验 实验框图 时钟模块 DDR3读写及LED指示模块 MIG IP核 用户接口解释
  • 【Xilinx】SynchronousInterruptHandler错误排查笔记

    SynchronousInterruptHandler错误排查笔记 一 ArmV8的异常处理 二 64位lscript ld的修改 三 asm vectors S的修改 四 SynchronousInterruptHandler函数解析 五
  • Verilog之assign

    Verilog中的关键词assign主要用于如下两个地方 数据流建模 用于数据流建模的显示连续赋值语句语法格式如下
  • Xilinx AXI-memory接口 转 AXI-stream 接口(含源码)

    AXI memory接口 转 AXI stream 接口 AXI memory接口介绍 具体详情可以查看源码 AXI memory接口介绍 从图中我们可以看出memory接口有5个通道 分别是读地址通道 写地址通道 写响应通道 读数据通道
  • 八段数码管动态显示(输入数据为BCD编码)

    八段数码管动态显示 输入数据为BCD编码 一 数码管概述 图1 八段共阴数码管内部等效原理图 图2 八段共阳数码管内部等效原理图 上面两图分别是对应八段共阴 共阳的数码管内部等效图 共阴是将八个LED数码管的阴极连接在一起接低 阳极segm
  • 采用Vivado 配置xilinx GTX的SATA设计

    从Vivado开始 配置GTX的时候 多了一个SATA协议支持 但有些小地方还需要自己另外设置 整理了一下 分享给大家 首先打开Transceivers wizard 打开页签 线速率和参考时钟选择 在协议里面选择SATA2或者SATA3
  • Lattice Diamond安装

    1 下载 到Lattice官网 http www latticesemi com 注册一个lattice的账号后就可以去下载Diamond 登陆后如下图 根据自己系统情况选择对应的版本 我用的是32位win8 Diamond软件安装包和La
  • Spartan-3E 上的随机数生成

    我需要在 Spartan 3E FPGA 上为我的遗传算法生成伪随机数 并且我想在 verilog 中实现它 您能给我任何关于此的指示吗 当然 Adam 的随机生成器是不可合成的 您必须显式创建一个LFSR 以下示例可能会有所帮助 它是一个
  • 基于FPGA的简易BPSK和QPSK

    1 框图 2 顶层 3 m generator M序列的生成 输出速率为500Kbps 4 S2P是串并转换模块 将1bit的m序列转换到50M时钟下的2bit M序列数据 就有4个象限 5 my pll是生成256M的时钟作为载波 因为s
  • 如何生成异步复位verilog总是阻塞凿子

    Chisel 始终生成敏感度列表中仅包含时钟的块 always posedge clk begin end 是否可以将模块配置为使用异步重置并生成这样的始终块 always posedge clk or posedge reset begi
  • 修改后的 baugh-wooley 算法乘法 verilog 代码不能正确乘法

    以下 verilog 源代码和 或测试平台可以很好地工作商业模拟器 iverilog https www edaplayground com x 3TuQ也形式化验证工具 yosys smtbmc https gist github com
  • if 语句导致 Verilog 中的锁存推断?

    我正在编写用于合成算法的 Verilog 代码 我对哪些情况可能导致推断锁存器有点困惑 下面是这样的一段代码 虽然它在模拟中工作得很好 但我担心它可能会导致硬件问题 always b1 or b2 b1 map b2 map m1 map
  • verilog $readmemh 对于 50x50 像素 RGB 图像花费太多时间

    我正在尝试编译用于 FPGA 编程的 verilog 代码 我将在其中实现 VGA 应用程序 我使用 QuartusII 和 Altera 我正在尝试正确使用 readmemh 来逐像素获取图片 现在 我已经使用 matlab 将图片转换为
  • 映射 MMIO 区域写回不起作用

    我希望对 PCIe 设备的所有读写请求都由 CPU 缓存进行缓存 然而 它并没有像我预期的那样工作 这些是我对回写 MMIO 区域的假设 对 PCIe 设备的写入仅在缓存回写时发生 TLP 有效负载的大小是缓存块大小 64B 然而 捕获的

随机推荐

  • 通过notifyDataSetChanged() 没有更改/黑屏;

    我想做这样的事情 同时按下refresh按钮 它将刷新列表 活动代码如下 adapter new TweetAdapter Welcome this tweets users tweetsList setAdapter adapter pr
  • 这个语法是什么意思? (序言)

    我一直在尝试学习 Prolog 并在一些示例代码中遇到了这种语法 solve Hs Hs member h dog Hs 这只是代码的一部分 但我对h dog does 任何帮助将不胜感激 下划线 只是表明该位置有一个值 但我们不关心它 第
  • 使用 BeginInvoke 和 EndInvoke 时,如何避免必须传递/存储委托?

    Edit 将实际问题移至顶部 Update 找到了微软的一个例子 最后添加了一些代码 我的问题是 在同一个委托实例上调用多个 BeginInvoke 调用是否安全 或者我是否必须为每个正在进行的方法调用构造一个新的委托实例 如果我必须为每个
  • Java 8 扩展流

    我正在尝试扩展 Java 8 的 Stream 实现 我有这个界面 public interface StreamStuff
  • git pull 导致“文件取消链接失败”错误

    我正在尝试做一个git pull我遇到了可怕的 取消文件 xxx 链接失败 错误 我已经尝试过 ProcessExplorer 中定义的this https stackoverflow com a 6076796 341611回答 使用 f
  • 访问 ActiveDirectory 的代码的单元测试

    对访问 ActiveDirectory 的应用程序进行单元测试和 或模拟对 AD 的依赖关系的最佳方法是什么 所有必需的类型 例如DirectorySearcher and DirectoryEntry看起来并不容易被嘲笑 我们有类似的方法
  • 使用 htaccess 文件删除 html 扩展名

    我知道这是一个非常常见的话题 但没有一个解决方案适合我 我尝试过几个答案 answer 1 https stackoverflow com questions 15728888 how do i remove html extensions
  • C++ 指针数组:删除还是删除[]?

    考虑以下代码 class Foo Monster monsters 6 Foo for int i 0 i lt 6 i monsters i new Monster virtual Foo 什么是正确的析构函数 this Foo Foo
  • 使用C打开目录

    我接受通过命令行输入的路径 当我做 dir opendir args 1 它不会进入循环 即dir null 如何将命令行输入传递给 dir 指针 void main int c char args DIR dir struct diren
  • 从 IzPack 调用 Java 类

    如何从 IzPack 调用 Java 类的方法 静态方法是可以的 我需要能够传递参数 谢谢你 背景资料 我正在尝试编写一个 IzPack 安装程序 它能够检测以前安装的应用程序版本 在发现它并不真正支持此功能 Windows 除外 后 我认
  • SQLite 删除查询不起作用?

    我有以下代码来从名为 posts 的表中删除一行 由于某种原因 该帖子没有被删除 我还尝试通过命令行手动管理命令 效果很好 我也确信 post id 是正确的并且不为空 因为我也尝试过将其传回并打印它并且 ID 显示正确 我应该提到它不会吐
  • Pandas:在每 60 秒的 bin 中仅保留第一行数据

    在 pandas 中仅保留每 60 秒数据箱的第一行的最佳方法是什么 即对于在增加的时间发生的每一行t 我想删除所有出现的行t 60秒 我知道有一些组合groupby first 我可能可以使用 但是我见过的代码示例 例如使用pandas
  • TFSBuild/MSBuild 和项目参考与文件参考

    我们有一个使用项目引用的大型 VS 解决方案 该解决方案由 TFS Build 构建 如下所示 Solution Project 1 Project 2 Project Project N 由于解决方案太大 我们有几个日常使用的较小解决方案
  • 如何显示 tiff 图像?

    我完全迷失了 我需要一些人来指导我 我看过很多帖子 但没有解释如何显示 tif 图像 我在哪里可以找到一些教程 如果可能的话 我需要从一开始 或者如果你能帮助我那就太好了 我只是一个持有图像的新手 我使用 mvc 4 正如您可能发现的那样
  • 命令提示符中“cls”之后但不在“cls”之前的彩色文本

    我有一个 python 程序 我试图在命令提示符中使用 ANSI 代码以彩色文本打印 Hello 当我正常打印时 它不起作用 它只是打印 和文本 但是当我在清除命令提示符后打印它时 它工作正常 有人可以解释一下这种奇怪的性质吗 我搜索了这个
  • 单个 TextView 中的多个 TypeFace

    我想将第一个字符设置为TextView with a TypeFace以及具有不同类型面孔的第二个角色 依此类推 我读过这个例子 Spannable str Spannable textView getText str setSpan ne
  • 在 Symfony2 中测试文件上传

    在 Symfony2 文档中 它给出了一个简单的示例 client gt request POST submit array name gt Fabien array photo gt path to photo 模拟文件上传 然而 在我的
  • JPA - 我可以使用 @DiscriminatorValue 创建一个没有自己的表的实体类吗?

    我使用带有联合继承的 JPA 和如下所示的数据库结构 ACTION ACTION ID ACTION MAPPING ID ACTION TYPE DELIVERY CHANNEL ACTION ACTION ID CHANNEL ID O
  • WPF 交互触发器在样式中调用视图模型上的命令[重复]

    这个问题在这里已经有答案了 可能的重复 如何在样式设置器中添加混合行为 https stackoverflow com questions 1647815 how to add a blend behavior in a style set
  • 您可以使用类 C 语言对 FPGA 进行编程吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在大学里 我用类似 C 的语言编写了 FPGA 不过 我也知道人们通常使用 Verilog 或 VHD