当前位置:首页 > 科技  > 软件

不可不知的FPGA设计妙招,使用Makerchip进行在线虚拟开发(附案例)

来源: 责编: 时间:2023-10-17 09:38:41 439观看
导读1 关于虚拟FPGA实验室可编程门阵列(FPGA)是一种用户可以编程的硬件电路,用于执行逻辑操作。与特定应用集成电路(ASIC)或处理器相比,FPGA具有多个优点。FPGA具备高能效、灵活的重编程性、支持并行处理以及较低的延迟,因此在许

1 关于虚拟FPGA实验室

可编程门阵列(FPGA)是一种用户可以编程的硬件电路,用于执行逻辑操作。与特定应用集成电路(ASIC)或处理器相比,FPGA具有多个优点。FPGA具备高能效、灵活的重编程性、支持并行处理以及较低的延迟,因此在许多应用中被广泛使用。7c628资讯网——每日最新资讯28at.com

然而,FPGA的灵活性需要面对电路重编程的挑战,对于初学者而言,这会增加学习成本和难度。7c628资讯网——每日最新资讯28at.com

为了解决这个问题,虚拟FPGA实验室项目应运而生。该项目利用Makerchip平台中的VIZ可视化功能,提供FPGA基本外设的可视化,以模拟物理实验室的体验。7c628资讯网——每日最新资讯28at.com

Makerchip是一款免费的基于Web的集成开发环境(IDE),同时也提供makerchip-app,一款用于开发高质量集成电路的虚拟桌面应用程序。您可以在浏览器中编写、编译、模拟和调试Verilog设计。代码、模块图和波形紧密集成在一起。Makerchip支持新兴的事务级Verilog( Transaction-Level Verilog)标准。事务级Verilog(TL-Verilog)是一个重大的进步,它消除了Verilog的传统语言特性,并引入了更简单的语法。与此同时,TL-Verilog为流水线和事务添加了强大的构造。7c628资讯网——每日最新资讯28at.com

2 选择TL-Verilog的理由

简单 || 强大 || 灵活7c628资讯网——每日最新资讯28at.com

2.1 可视化调试

使用TL-Verilog语言编写的设计进行调试时,可以通过可视化方式来观察和分析设计的行为。通过在设计中插入调试语句,并以可视化形式显示设计行为,帮助设计人员进行调试、验证和优化的过程。7c628资讯网——每日最新资讯28at.com

2.2 有序波形

无需编写测试台即可查看模拟结果。IDE提供了内置的时钟,并在信号未被赋予任何值时为其分配随机值。7c628资讯网——每日最新资讯28at.com

2.3 有序图表

设计以逻辑图形式表示。非常容易浏览设计层次结构、流水线和阶段。7c628资讯网——每日最新资讯28at.com

2.4 更少的代码

  • 更快的开发
  • 更少的错误
  • 更容易维护

3 可视调试的威力

图片图片7c628资讯网——每日最新资讯28at.com

首先将简单数字逻辑门的输出可视化。从上面的GIF中可以看到左侧是代码部分,可以看到门的逻辑;右侧是可视调试(VIZ)部分,可以看到每个逻辑门的可视化。我们可以在周期之间来回移动,并在右上角看到当前的周期。7c628资讯网——每日最新资讯28at.com

可视调试是如何构建的?可视调试是一个JavaScript画布,在其中使用了fabric.js,这是一个功能强大且简单的JavaScript HTML5画布库框架,它使我们能够在画布元素上使用交互式对象模型。7c628资讯网——每日最新资讯28at.com

4 虚拟FPGA实验室的特点

  • 简单学习:在没有实际开发板的情况下理解FPGA编程的基础知识。
  • 时光旅行:可以在周期之间前后移动,以便能够可视化每个周期中发生的情况。
  • 更快速:对于简单的设计,无需等待综合、实现和比特流生成过程。
  • 抽象化:TL-V所需的代码比标准HDL语言少,开发更快,错误更少,维护更容易,且硅片质量更好。它也- 支持System Verilog。
  • 可综合化:在虚拟实验室中的代码可以在真实的FPGA上运行!我们将在最后一节中介绍这一点。
  • 开源:采用MIT许可。

5 在Makerchip中展示的FPGA开发板

  • Zedboard Zynq-7000 ARM/FPGA SoC开发板(产品链接)
  • EDGE Artix 7 FPGA开发板(产品链接)
  • Basys 3 Artix-7 FPGA培训板(产品链接)
  • Icebreaker FPGA(产品链接)
  • Nexys A7(产品链接)

目前,仅展示这些开发板。7c628资讯网——每日最新资讯28at.com

6 第一阶段

在第一阶段评估之前的编码工作主要是在VIZ画布屏幕上添加FPGA图像,并支持可视化FPGA的LED灯、七段数码管、LCD 16x2显示器和VGA显示器。下面是使用这些组件的示例演示:7c628资讯网——每日最新资讯28at.com

7 LED灯

演示:https://makerchip.com/sandbox/0mZf5hLPG/0y8h64Z#7c628资讯网——每日最新资讯28at.com

图片图片7c628资讯网——每日最新资讯28at.com

7c628资讯网——每日最新资讯28at.com

上面的GIF演示了一个16位计数器的示例,其输出显示在LED灯上。在这里使用了Zedboard开发板。初始化可以在第26、27和28行中看到。m4+fpga_init将初始化开发板,m4+fpga_led将使LED灯工作。如果要使用其他开发板,请在第26行更改M4_BOARD的值。7c628资讯网——每日最新资讯28at.com

8 七段数码管

演示:makerchip.com/sandbox/0mZf5hLPG/0zmh8rV7c628资讯网——每日最新资讯28at.com

图片图片7c628资讯网——每日最新资讯28at.com

7c628资讯网——每日最新资讯28at.com

这个演示是一个从0到15的计数器,以十六进制值显示在七段数码管的四个数字中。* digit是共阳信号。每个七段数码管包含段,基本上是可以通过发送低电平信号来打开的LED。要在七段数码管中显示数字8,需要通过低电平信号启用所有段。7c628资讯网——每日最新资讯28at.com

9 LCD 16x2显示器

演示:makerchip.com/sandbox/0mZf5hLPG/0k5hYwz#7c628资讯网——每日最新资讯28at.com

图片图片7c628资讯网——每日最新资讯28at.com

这个程序在LCD 16x2显示器中打印以下内容:7c628资讯网——每日最新资讯28at.com

第一行:FPGAs are fun!!!7c628资讯网——每日最新资讯28at.com

第二行:—7c628资讯网——每日最新资讯28at.com

完成后,将第一行和第二行向左移动一次。7c628资讯网——每日最新资讯28at.com

10 VGA显示器

演示:makerchip.com/sandbox/0mZf5hLPG/0nZhlW17c628资讯网——每日最新资讯28at.com

图片图片7c628资讯网——每日最新资讯28at.com

7c628资讯网——每日最新资讯28at.com

这是用于640* 480 VGA显示器的可视化。信号和sy分别表示显示光标的水平和垂直位置。当水平和垂直像素区域(和sy)小于64时,程序会绘制一个橙色的正方形,否则为蓝色。在480p分辨率下,需要约40万个周期来显示一个完整的帧,包括所有前后廊道的时间约束。为了进行可视化,我们将每个正方形框设置为32x32像素,因此可以在约470个周期内完成一帧,以便更好地理解。无论如何,可以使用M4_COUNTER宏变量定义来调整正方形框的大小。还可以使用M4_FRAMES宏变量的定义来更改要可视化的帧数。7c628资讯网——每日最新资讯28at.com

11 第二阶段

对于第二阶段,开始可视化其他外设,如按钮、滑动开关、LED RGB、温度传感器、光传感器等。以下是使用这些可视化的演示。7c628资讯网——每日最新资讯28at.com

12 按钮

演示:makerchip.com/sandbox/0mZf5hLPG/0pghQw27c628资讯网——每日最新资讯28at.com

图片图片7c628资讯网——每日最新资讯28at.com

7c628资讯网——每日最新资讯28at.com

当按下特定的按钮时,此程序会点亮LED灯。按钮应从开发板上输入。不幸的是,Makerchip VIZ目前不支持交互功能。因此,为了使用这个外设,使用$pb信号手动给按钮输入。7c628资讯网——每日最新资讯28at.com

13 滑动开关

演示:makerchip.com/sandbox/05yf0h91P/066hVzy7c628资讯网——每日最新资讯28at.com

图片图片7c628资讯网——每日最新资讯28at.com

逻辑与上述按钮示例相同。7c628资讯网——每日最新资讯28at.com

14 温度传感器

演示:makerchip.com/sandbox/0mZf5hLPG/0mwh1MY7c628资讯网——每日最新资讯28at.com

图片图片7c628资讯网——每日最新资讯28at.com

温度和光传感器位于开发板的左下角。这里我们使用太阳图像作为热源。随着太阳图像远离温度传感器,相应的温度读数将显示在七段数码管中。用于显示传感器读数的时间为四个时钟周期。这是因为七段数码管的阴极是连接在一起的。因此,为了显示四个不同的数字,我们每个时钟周期只启用一个数字。由于一个周期的变化通常发生在几十纳秒的量级上,当在实际的FPGA中运行时,我们的肉眼会假装所有数字在同一时间更新。7c628资讯网——每日最新资讯28at.com

15 光传感器

演示:makerchip.com/sandbox/0mZf5hLPG/0oYhlwR7c628资讯网——每日最新资讯28at.com

图片图片7c628资讯网——每日最新资讯28at.com

这里使用灯泡图像作为热源。上述温度传感器示例的逻辑在这里同样适用。7c628资讯网——每日最新资讯28at.com

16 LED RGB

演示:makerchip.com/sandbox/0mZf5hLPG/0vghOl67c628资讯网——每日最新资讯28at.com

图片图片7c628资讯网——每日最新资讯28at.com

该程序根据占空比值在RGB LED中输出不同的颜色,使用了脉宽调制(PWM)的概念。7c628资讯网——每日最新资讯28at.com

17 在实际的FPGA中运行的步骤

SandPiper是一个代码生成器,可以根据给定的TL-Verilog代码生成可读性强、结构良好的Verilog或SystemVerilog代码。7c628资讯网——每日最新资讯28at.com

SandPiper的SaaS版在云端作为微服务运行,以支持简便的开源开发。请安装SandPiper SaaS版用于此项目。7c628资讯网——每日最新资讯28at.com

要在本地运行,可以从RedwoodEDA获取SandPiper教育版。7c628资讯网——每日最新资讯28at.com

运行FPGA设置的步骤如下:7c628资讯网——每日最新资讯28at.com

  • git clone https://github.com/BalaDhinesh/Virtual-FPGA-Lab.git
  • 从工作目录中运行shell脚本/<complete_path>/run.sh。

图片图片7c628资讯网——每日最新资讯28at.com

  • shell脚本会要求输入三个内容:

a. TL-Verilog文件的输入文件名7c628资讯网——每日最新资讯28at.com

图片图片7c628资讯网——每日最新资讯28at.com

b. FPGA板名称(如果板卡不在给定选项中,请提供板卡的零件号)7c628资讯网——每日最新资讯28at.com

如果板卡在给定选项中:7c628资讯网——每日最新资讯28at.com

图片图片7c628资讯网——每日最新资讯28at.com

如果板卡不在给定选项中:7c628资讯网——每日最新资讯28at.com

图片图片7c628资讯网——每日最新资讯28at.com

c.(可选)如果板卡不在给定选项中,则约束文件应该以<filename_partno>.xdc的形式存在于您的工作目录中。7c628资讯网——每日最新资讯28at.com

例如:根据上面的图像,应该是design_xc7a100tcsg324-1.xdc7c628资讯网——每日最新资讯28at.com

d. 时钟周期(以纳秒为单位)7c628资讯网——每日最新资讯28at.com

图片图片7c628资讯网——每日最新资讯28at.com

18 在Makerchip和实际的FPGA开发板上的输出

图片图片7c628资讯网——每日最新资讯28at.com

图片 图片 7c628资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-13636-0.html不可不知的FPGA设计妙招,使用Makerchip进行在线虚拟开发(附案例)

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Vue 中可重用组件的 3 个主要问题

下一篇: 精通Python Pandas数据索引:高级技巧指南

标签:
  • 热门焦点
  • K60至尊版狂暴引擎2.0加持:超177万跑分斩获性能第一

    Redmi的后性能时代战略发布会今天下午如期举办,在本次发布会上,Redmi公布了多项关于和联发科的深度合作,以及新机K60 Ultra在软件和硬件方面的特性,例如:“K60 至尊版,双芯旗舰
  • 5月iOS设备性能榜:M1 M2依旧是榜单前五

    和上个月一样,没有新品发布的iOS设备性能榜的上榜设备并没有什么更替,仅仅只有跑分变化而产生的排名变动,刚刚开始的苹果WWDC2023,推出的产品也依旧是新款Mac Pro、新款Mac Stu
  • 2023 年的 Node.js 生态系统

    随着技术的不断演进和创新,Node.js 在 2023 年达到了一个新的高度。Node.js 拥有一个庞大的生态系统,可以帮助开发人员更快地实现复杂的应用。本文就来看看 Node.js 最新的生
  • 三言两语说透设计模式的艺术-单例模式

    写在前面单例模式是一种常用的软件设计模式,它所创建的对象只有一个实例,且该实例易于被外界访问。单例对象由于只有一个实例,所以它可以方便地被系统中的其他对象共享,从而减少
  • 当家的盒马,加速谋生

    来源 | 价值星球Planet作者 | 归去来自己&ldquo;当家&rdquo;的盒马,开始加速谋生了。据盒马官微消息,盒马计划今年开放生鲜供应链,将其生鲜商品送往食堂。目前,盒马在上海已经与
  • 造车两年股价跌六成,小米的估值逻辑变了吗?

    如果从小米官宣造车后的首个交易日起持有小米集团的股票,那么截至2023年上半年最后一个交易日,投资者将浮亏59.16%,同区间的恒生科技指数跌幅为52.78%
  • 首发天玑9200+ iQOO Neo8系列发布首销售价2299元起

    2023年5月23日晚,iQOO Neo8系列正式发布。其中,Neo系列首款Pro之作——iQOO Neo8 Pro强悍登场,限时售价3099元起;价位段最强性能手机iQOO Neo8同期上市
  • 朋友圈可以修改可见范围了 苹果用户可率先体验

    近日,iOS用户迎来微信8.0.27正式版更新,除了可更换二维码背景外,还新增了多项实用功能。在新版微信中,朋友圈终于可以修改可见范围,简单来说就是已发布的朋友圈
  • 微软发布Windows 11新版 引入全新任务栏状态

    近日,微软发布了Windows 11新版,而Build 22563更新主要引入了几周前曝光的平板模式任务栏等,系统更流畅了。更新中,Windows 11加入了专门针对平板优化的任务栏
Top