0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA编写器的制作

454398 来源:wv 2019-10-15 11:12 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

步骤1:您需要的内容

Nexys开发板FPGA

Xilinx ISE

某种扬声器

用于将板连接到扬声器的辅助电缆,或其他布线设置

步骤2:聚集项目项

收集项目的所有必需项(例如,电路板,Xilinx,扬声器和辅助电缆)。如果尚未购买nexys板,请先开始。这些可以直接通过Digilent或通过外部卖家(如Amazon)购买。之后,请访问www.xilinx.com下载Xilinx。最后,获取指定的扬声器系统和辅助电缆。然后,熟悉VHDL并熟练使用Xilinx。这将确保以下步骤不会造成混乱。

步骤3:在Xilinx中创建项目

打开Xilinx,然后单击新项目。屏幕打开后,

为项目命名,指定保存位置,并将顶级源类型设置为HDL。然后单击下一步。然后指定给定板的所有详细信息。这取决于您拥有的nexys板的版本。我们使用了nexys 2,因为它是最便宜的。 nexys-2开发板的详细信息如下:

评估开发板:无规格

产品类别:全部(或通用)

家族: Spartan 3E

设备:Nexys-2:XC3S500E

速度:-4

顶级源类型:HDL

综合工具:XST(VHDL/Verilog

仿真器:Isim(VHDL/Verilog)

首选语言:VHDL

然后单击下一步。下一页将显示指定输入和输出的屏幕。这将设置第一部分以简化工作。首先给信号起一个名称,并对其进行相应的输入或输出。信号如下:

a:输入

b:输入

c:输入

d:输入

e:in

f:in

g:in

clk:in

音频输出:out

然后单击下一步。在下一个屏幕上,确保所有详细信息正确无误,然后单击“完成”。这将打开新项目。

步骤4:VHDL背景

此步骤将使您对所有这些内容有一些了解。 VHDL的不同部分实际上可以做到。为了创建作曲家,我们将需要指定实体,项目架构和两个单独的流程块。实体是输入和输出的基础,体系结构将指定每个信号和那里的值,而流程块将处理实际功能。

源文件顶部的实体声明给出每个输入和输出的规范。在作曲家的情况下,它们是a,b,c等,然后是STD_LOGIC或STD_LOGIC_VECTOR。字母代表值的名称,STD_LOGIC给出类型。 STD_LOGIC允许像变量一样一次为该值分配一个值。 STD_LOGIC_VECTOR允许以总线形式分配多个值。总线只是一组捆绑在一起的信号。但是,对于作曲家而言,仅使用了STD_LOGIC信号。

仅在实体声明下方指定了体系结构。这给出了源文件的“架构”。该体系结构包含前面所述的过程块以及将用于将信号值从一个过程传输到另一个过程的所有临时信号。结束架构后,文件也将结束。

然后可以创建流程块,以实际使作曲家工作。可以在源文件中找到过程块的示例。这些段包含带有信号的灵敏度列表。其背后的想法是,当灵敏度列表中的信号之一发生更改时,将运行整个过程块。在作曲家的情况下,这使我们可以在切换按钮时更新发送到扬声器的信号。

以上内容为VHDL提供了一些背景知识。但是,强烈建议您先阅读一些教程,然后再继续。以上所有示例均位于源文件中。

步骤5:让我们开始

FPGA编写器的制作

在至此,您已经准备好开始作曲家的实际构建。作曲者将需要一个实体,体系结构和两个流程块。步骤2中的设置将为您填写实体声明。它看起来应该像第一张图片。

现在,有趣的部分开始了。首先,指定要在架构中各流程块之间使用的信号。以下是将要使用的信号。计数器将帮助进行分频,temp_out给我们一个信号,告知我们可以保留一个临时值,并且音符用于分配要播放的音符。这应该看起来像第二张图片。

在开始之后,我们将放置我们的流程块。上面给出了信号和架构。

步骤6:设计

下一步我们需要开始作曲家的实际设计。第一个处理块将用作分频器。过程声明的示例如图3所示。

我们现在将使用时钟的50MHz信号。想法是递增计数器直到达到阈值,然后在每次达到该值时切换temp_out。这将使我们较低的较慢的频率代表音符的频率。例如,音符A为440Hz。通过从50MHz除以440Hz,我们可以从时钟获得该频率。然后我们取这个值,当计数器达到这个值时,我们切换temp_out,否则我们就简单地增加计数器。

将频率分为每个给定的音符后,我们必须检查音符的对应开关是否被按下。这是通过检查note的值来完成的。如果音符为“ 000”,则按下音符A的开关。如果音符为“ 010”,则按音符C,依此类推。

最后,我们需要确保音符只能在时钟的上升沿播放。这是通过将其包含在检查上升沿的if语句中来完成的。它应该看起来像图片4。

第7步:频分

现在实现了分频器。由于我们已经列出了所有规范,因此剩下的只是复制和粘贴并涵盖所有可能的条件。图5中提供了设置了所有音符的整个分频器。

请注意,当音符为“ 111”时,我们只需将计数器复位并输出为0。这是因为该板仅演奏七个注释,我们不希望任何不受支持的开关的非法值。现在,我们现在需要存储temp_out的值以用于扬声器。如图6所示,这是通过将temp_out分配给音频输出来完成的。

这将允许我们保存从上一过程中获得的频率并实际使用它。

步骤8:流程语句

现在,我们继续设计和实现第二个流程块。第二个处理块将处理获取下一个状态。为了简化,我们使用状态来表示每个音符。此状态机将允许我们在切换开关时将其状态设置为所需的每个音符。例如,当按下第一个开关时,便会选择音符A并将其设置为下一个状态,这会将值分配给信号(来自体系结构声明的音符)。这将使我们能够在要弹奏音符的第一个处理块中进行检查。图7显示了带有灵敏度列表的第二个过程块的示例声明。

接下来,我们指定所有可能的条件,分别按下每个开关。我们首先需要检查是否没有按下任何开关。如果没有一个开关,则将音符设置为“ 111”,否则当按下一个开关时,我们将更改其对应的字母值。例如,当按下第一个开关时,信号a将获得该值。然后在getns内,我们给分频器分配要检查的值。该流程块使用多个if和elsif来说明不同的可能性。完成的过程框在图8中。

注意我们如何检查是否没有先按任何音符。这将确保我们仅获取有效的note值。除此之外,第二个else内部的if和elsif可以确保在没有切换任何受支持的开关时,我们不会意外地为note分配一个除“ 111”以外的值。

步骤9:将所有内容放在一起

至此,我们基本完成了。我们需要做的就是组装所有VHDL并对其进行合成。合成时应该没有错误。此后,预期的源在图9、10和11中。

现在,作曲家已经完成。下一步是测试使用刺激以确保其确实起作用。由于这对于作曲家的工作并不重要,因此我们在这里不解释测试。我们的测试代码随该项目的源代码一起提供。

步骤10:设置端口映射

快到了!现在,我们需要做的就是分配端口值,以便使作曲家能够在nexys板上工作。单击“提前计划”即可完成。打开此应用程序后,将出现一个界面,上面有一个怪异的面板。从那里,我们看到底部的框,其中包含实体值的端口映射。从这里开始,我们为每个实体在板上分配一个与其正确的开关相对应的端口。之后,我们需要为扬声器的电线分配端口。完成此操作后,保存并退出。现在我们可以再次进行合成,然后单击生成编程文件。此后,您需要将启动选项切换为JTAG Clock。通过单击顶部的“进程”,然后单击“属性”来完成此操作。在出现的窗口中,在启动选项下选择JTAG Clock(它最初是CCLK)。现在,退出该窗口并再次生成编程文件。

步骤11:对开发板进行编程

现在,打开Digilent的Adept并连接您的开发板,确保板子打开。熟练的人员应自动识别该设备。现在,在浏览窗口中选择位文件。一旦选择,点击程序。现在,该板已被编程。下一步是连接扬声器。这是通过将导线连接到在“预先计划”中选择的每个端口来完成的。然后您就完成了!

步骤12:玩得开心!

与作曲家见面,让演讲者演奏不同的音符。玩得开心!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1656

    文章

    22298

    浏览量

    630488
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何利用Verilog HDL在FPGA上实现SRAM的读写测试

    本篇将详细介绍如何利用Verilog HDL在FPGA上实现SRAM的读写测试。SRAM是一种非易失性存储,具有高速读取和写入的特点。在FPGA中实现SRAM读写测试,包括设计SRAM接口模块
    的头像 发表于 10-22 17:21 3981次阅读
    如何利用Verilog HDL在<b class='flag-5'>FPGA</b>上实现SRAM的读写测试

    基于FPGA开发板TSP的串口通信设计

    本文详细介绍基于Terasic FPGA开发板TSP(又名C5P和OSK)和其板载CP2102N USB-UART桥接芯片的串口通信系统设计与实现。系统采用Verilog HDL编写UART收发控制,通过CP2102N实现
    的头像 发表于 10-15 11:05 4166次阅读
    基于<b class='flag-5'>FPGA</b>开发板TSP的串口通信设计

    【老法师】多核异构处理中M核程序的启动、编写和仿真

    有很多研究单片机的小伙伴在面对多核异构处理时,可能会对多核的启动流程感到困惑——因为不熟悉GCC编程和GDB调试,所以也无法确定多核异构处理的程序是否能像单片机那样方便地编写和仿真。本篇
    的头像 发表于 08-13 09:05 3663次阅读
    【老法师】多核异构处理<b class='flag-5'>器</b>中M核程序的启动、<b class='flag-5'>编写</b>和仿真

    Altera Agilex™ 3 FPGA和SoC FPGA

    3器件将Altera Hyperlex FPGA架构集成到这些较小器件中,与以前的成本优化型系列Cyclone V以及更高速收发相比,性能提高了1.9倍,并为LPDDR4增加了内存支持。小尺寸对于
    的头像 发表于 08-06 11:41 3691次阅读
    Altera Agilex™ 3 <b class='flag-5'>FPGA</b>和SoC <b class='flag-5'>FPGA</b>

    RTL级机器人电机控制FPGA设计

    借助Verilog,在FPGA中实现了带编码的两台电机的电机控制系统的RTL级设计。
    的头像 发表于 07-07 14:01 2556次阅读
    RTL级机器人电机控制<b class='flag-5'>器</b>的<b class='flag-5'>FPGA</b>设计

    【干货分享】:开源小巧的FPGA开发板——Icepi Zero

    数字视频。”目前市场上最强大的FPGA板既昂贵又笨重。我一直想要一个具有视频输出功能的低成本便携式FPGA制作我自己的CPU,但市场上没有。IcepiZero旨
    的头像 发表于 06-10 08:05 1236次阅读
    【干货分享】:开源小巧的<b class='flag-5'>FPGA</b>开发板——Icepi Zero

    【开源分享】:开源小巧的FPGA开发板——Icepi Zero

    要,就制作自己的板子吧! 特征 Raspberry Pi Zero 外形尺寸 Lattice FPGA 芯片 ECP5U : 24k LUT 112 KiBRAM 一个 MiniGPDI 连接
    发表于 06-09 14:01

    FPGA调试方式之VIO/ILA的使用

    在Vivado中,VIO(Virtual Input/Output)是一种用于调试和测试FPGA设计的IP核,它允许设计者通过JTAG接口实时读取和写入FPGA内部的寄存,从而检查设计的运行状态并修改其行为。VIO IP核提供
    的头像 发表于 06-09 09:32 3173次阅读
    <b class='flag-5'>FPGA</b>调试方式之VIO/ILA的使用

    智多晶FPGA设计工具HqFpga接入DeepSeek大模型

    在 AI 赋能工程设计的时代浪潮中,智多晶率先迈出关键一步——智多晶正式宣布旗下 FPGA 设计工具 HqFpga 接入 DeepSeek 大模型,并推出 FPGA 设计专属 AI 助手——晶小助!这是
    的头像 发表于 06-06 17:06 1150次阅读

    RAKsmart企业服务上部署DeepSeek编写运行代码

    在RAKsmart企业服务上部署并运行DeepSeek模型的代码示例和详细步骤。假设使用 Python + Transformers库 + FastAPI实现一个基础的AI服务。主机推荐小编为您整理发布RAKsmart企业服务上部署DeepSeek
    的头像 发表于 03-25 10:39 546次阅读

    【国产FPGA入学必备】国产FPGA权威设计指南+配套FPGA图像视频教程

    一、《国产FPGA权威设计指南》简介 为更好地服务广大FPGA工程师和高等学校师生,2025,紫光同创携手金牌方案提供商小眼睛科技,组织了数十位应用技术专家,共同编写《国产FPGA权威
    发表于 02-20 15:08

    基于FPGA的图像边缘检测设计

    今天给大侠带来基于 FPGA 的图像边缘检测设计,话不多说,上货。 设计流程如下:mif文件的制作→ 调用 ip 核生成rom以及仿真注意问题→ 灰度处理→ 均值滤波:重点是3*3 像素阵列的生成
    的头像 发表于 02-10 11:30 1105次阅读
    基于<b class='flag-5'>FPGA</b>的图像边缘检测设计

    EE-218:为ADSP-TS201 TigerSHARC处理编写高效浮点FFT

    电子发烧友网站提供《EE-218:为ADSP-TS201 TigerSHARC处理编写高效浮点FFT.pdf》资料免费下载
    发表于 01-14 16:46 0次下载
    EE-218:为ADSP-TS201 TigerSHARC处理<b class='flag-5'>器</b><b class='flag-5'>编写</b>高效浮点FFT

    大多数FPGA的程序存储(FLASH)为什么都放在外面呢?FPGA的主要应用

    FPGA的主要应用:  FPGA由于其较高的价格和成本,决定了FPGA不能像单片机那样被广泛的使用,FPGA的针对于高端处理市场(类如:手机处理
    的头像 发表于 12-24 11:04 1859次阅读
    大多数<b class='flag-5'>FPGA</b>的程序存储<b class='flag-5'>器</b>(FLASH)为什么都放在外面呢?<b class='flag-5'>FPGA</b>的主要应用

    Verilog 测试平台设计方法 Verilog FPGA开发指南

    Verilog测试平台设计方法是Verilog FPGA开发中的重要环节,它用于验证Verilog设计的正确性和性能。以下是一个详细的Verilog测试平台设计方法及Verilog FPGA开发
    的头像 发表于 12-17 09:50 1563次阅读