FPGA开发流程

news2024/11/19 15:38:23

注:开发板:小梅哥的ACX720。本实验可直接运行在小梅哥的ACX720开发板上,后续的实验都可直接运行在小梅哥的ACX720上。

一、打开VIVADO并创建工程

        1、双击VIVADO图标,打开vivado。

        2、打开vivado界面打,点击Create Project(创建工程)

3、修改工程名已经修改存放的位置

4、选择第一个选项,并勾选复选框

 5、选择对应的芯片型号

二、新建源文件

1、点击“+”号,添加新的源文件,然后选择第二个 选项

2、点击“Create File”创建新文件,并给文件命名,后面点击finish和ok即可。

三、编写代码

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2024/11/18 20:18:38
// Design Name: 
// Module Name: led_flash
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//


module led_flash(
    input                               clk                        ,//系统时钟50M
    input                               rst_n                      ,//系统复位
    output reg                          led                         //led灯
);

    reg                [  31: 0]        cnt                        ;//定义一个计数器用来计数

    //cnt赋值
    always @ (posedge clk or negedge rst_n)
    if (!rst_n)
        cnt <= 32'd0;                                               //复位cnt为0
    else if (cnt == 32'd49_999_999)
        cnt <= 32'd0;                                               //记满清零 
    else
        cnt <= cnt + 1'd1;                                          //否则自加1

    //led赋值
    always @ (posedge clk or negedge rst_n)
    if (!rst_n)
        led <= 1'd0;                                                //复位led为0
    else if (cnt == 32'd49_999_999)                                 //1s反转led
        led <= ~led;


endmodule

四、代码仿真

 1、创建仿真源文件。点击“+”号,添加新的源文件,然后选择第三个 选项

2、点击“Create File”创建新文件,并给文件命名,后面点击finish和ok即可。

3、编写仿真代码

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2024/11/18 20:40:36
// Design Name: 
// Module Name: led_flash_tb
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//


module led_flash_tb();


    reg                                 clk                        ;//系统时钟50M
    reg                                 rst_n                      ;//系统复位
    wire                                led                        ;//led灯



led_flash led_flash_insh(
    .clk                                (clk                       ),
    .rst_n                              (rst_n                     ),
    .led                                (led                       ) 
);

    initial clk = 1;                                                //初始化clk为1
    always #10 clk = ~clk;                                          //总是10ns clk翻转

    initial begin
        rst_n = 0;                                                  //复位
        #21;                                                        //延迟21ns
        rst_n = 1;                                                  //释放复位
        #2000000000;                                                //延迟2S
        $stop;                                                      //停止仿真
    end


endmodule

5、开始仿真。点击run simulation  , run behaavioral simulattion。不过要注意,一定要将仿真文件设置为顶层

如果没有设置顶层,一定要选中文件右击,然后点击set as top。也就是下图1的位置,设置完成后,在2的位会有一个”品“字的符号。

设置完成后开始仿真。

五、仿真结果

1、增加cnt信号。选中scope,点击led_ffflash_inst,选中cnt,右击,选择add to wave window,然后重新运行仿真,最后点击run all。

2、仿真完成

3、放大led第一次翻转的细节

4、修改cnt的显示进制,修改成无符号数

5、计数器记到49999999进行翻转,符合预期。

6、第二次翻转也是符合预期

六、分析和综合并分配引脚

1、点击run synthesis,进行分析综合。

2、分析完成后,在弹出的对话框中选择第二个选项,并点击Ok。

3、选择io planning

4、进行引脚分配,并且电平改成3.3v.修改完成后,ctrl + s 保存即可。注意,这个引脚只是针对ACX720开发板,如使用其他的开发板,请自行查找管脚进行分配

七、生成bit流 

1、点击Generate Bitstream ,然后点击yes,紧接着点击OK即可。

2、bit流生成完成后,选择第三个选项,然后点击OK。

3、将下载器件与开发板相连,并给开发板上电。

4、点击open target下的Auto Connect 连接设备

5、连接上则会出现芯片型号。在 Hardware Manager 界面中找到并右键单击 xc7a35t_00),在浮动菜单中单击 Program Device…选项。

6、然后选择bit文件后,点击 Program

八、实验现象

        可以看到在ACX720开发板上的LED0每隔1s翻转一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2243470.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

免费开源!DBdoctor推出开源版系统诊断工具systool

​前言 在开发和运维过程中&#xff0c;经常会遇到难以定位的应用问题&#xff0c;我们通常需要借助Linux系统资源监控工具来辅助诊断。然而&#xff0c;系统的IO、网络、CPU使用率以及文件句柄等信息通常需要通过多个独立的命令工具来获取。在没有部署如Prometheus这样的综合…

Restful API接⼝简介及为什么要进⾏接⼝压测

一、RESTful API简介 在现代Web开发中&#xff0c;RESTful API已经成为一种标准的设计模式&#xff0c;用于构建和交互网络应用程序。本文将详细介绍RESTful API的基本概念、特点以及如何使用它来设计高效的API接口。 1. 基于协议 HTTP 或 HTTPS RESTful API通常使用HTTP&am…

R语言统计分析与MATLAB数学建模书籍推荐

文章目录 一、《R语言统计分析与可视化》1.1 内容核心1.2 内容简介 二、《MATLAB数学建模从入门到精通》2.1 关键点2.2 内容简介2.3 作者简介 一、《R语言统计分析与可视化》 R语言统计分析与可视化从入门到精通。学R语言、练语法、取数据、预处理、可视化、回归分析、方差分析…

智慧社区平台系统提升物业管理效率与居民生活质量

内容概要 智慧社区平台系统是为应对现代城市管理挑战而诞生的重要工具。随着城市化进程的加快&#xff0c;传统的物业管理方式已经难以满足日益增长的居民需求和管理复杂性。因此&#xff0c;引入智能化管理手段显得尤为重要。这个系统不仅仅是一个简单的软件&#xff0c;它是…

【ASR技术】WhisperX安装使用

介绍 WhisperX 是一个开源的自动语音识别&#xff08;ASR&#xff09;项目&#xff0c;由 m-bain 开发。该项目基于 OpenAI 的 Whisper 模型&#xff0c;通过引入批量推理、强制音素对齐和语音活动检测等技术。提供快速自动语音识别&#xff08;large-v2 为 70 倍实时&#xf…

STM32CUBEIDE FreeRTOS操作教程(九):eventgroup事件标志组

STM32CUBEIDE FreeRTOS操作教程&#xff08;九&#xff09;&#xff1a;eventgroup事件标志组 STM32CUBE开发环境集成了STM32 HAL库进行FreeRTOS配置和开发的组件&#xff0c;不需要用户自己进行FreeRTOS的移植。这里介绍最简化的用户操作类应用教程。以STM32F401RCT6开发板为…

力扣(leetcode)题目总结——动态规划篇

leetcode 经典题分类 链表数组字符串哈希表二分法双指针滑动窗口递归/回溯动态规划二叉树辅助栈 本系列专栏&#xff1a;点击进入 leetcode题目分类 关注走一波 前言&#xff1a;本系列文章初衷是为了按类别整理出力扣&#xff08;leetcode&#xff09;最经典题目&#xff0c…

计算器的实现

计算器的实现 计算器实现思路 我们⽇常写的计算表达式都是中缀表达式&#xff0c;也就是运算符在中间&#xff0c;运算数在两边&#xff0c;但是直接读取⽆ 法⻢上进⾏运算因为⼀个计算表达式还涉及运算符优先级问题。如&#xff1a; 都⽆法运算&#xff0c;因为后⾯还有括号优…

Python蓝桥杯刷题1

1.确定字符串是否包含唯一字符 题解&#xff1a;调用count函数计算每一个字符出现的次数&#xff0c;如果不等于1就输出no&#xff0c;并且结束循环&#xff0c;如果等于1就一直循环直到计算到最后一个字符&#xff0c;若最后一个字符也满足条件&#xff0c;则输出yes import…

《基于 PySpark 的电影推荐系统分析及问题解决》

以下是一篇关于上述代码的博客文章&#xff1a; 基于PySpark的电影推荐系统实现与分析 在当今数字化时代&#xff0c;个性化推荐系统在各个领域中都发挥着至关重要的作用&#xff0c;尤其是在娱乐行业&#xff0c;如电影推荐。本文将详细介绍如何使用PySpark构建一个简单的电…

每天五分钟深度学习pytorch:批归一化全连接网络完成手写字体识别

本文重点 前面我们学习了普通的全连接神经网络,后面我们学习了带有激活层的全连接神经网络,本文我们继续进一步升级,我们学习带有批归一化的全连接神经网络,批归一化可以加快神经网络的训练速度,减少过拟合,具体它的原理,大家可以看我们的《每天五分钟深度学习》专栏,…

JavaWeb后端开发知识储备1

目录 1.DTO/VO/PO 2.MVC架构/微服务架构 3.JWT令牌流程 4.ThreadLocal 5.接口路径/路径参数 6.自定义注解 1.DTO/VO/PO 1.1 DTO DTO 即 Data Transfer Object—— 数据传输对象&#xff0c;是用于传输数据的对象&#xff0c;通常在服务层与表现层之间传递数据&#xff…

什么是SMARC?模块电脑(核心板)规范标准简介三

1. 概念 SMARC&#xff08;Smart Mobility ARChitecture&#xff0c;智能移动架构&#xff09;是一种通用的小型计算机模块定义&#xff0c;基于ARM和X86技术的模块化计算机低功耗嵌入式架构平台&#xff0c;旨在满足低功耗、低成本和高性能的应用需求。这些模块通常使用与平板…

Filebeat升级秘籍:解锁日志收集新境界

文章目录 一、什么是filebeat二、Filebeat的工作原理2.1 filebeat的构成2.1.1 Prospector 组件2.1.2 Harvester 组件 2.2 filebeat如何保存文件的状态2.3 filebeat何如保证至少一次数据消费 三、Filebeat配置文件四、filebeat对比fluented五、Filebeat的部署安装5.1裸金属安装5…

C++小白实习日记——Day 4 将本地项目上传到gitee

生活就像一坨狗屎 我跑的代码老板说耗时太长了&#xff0c;不知道要怎么做才能耗时小一点 老板把我加到企业gitee里了&#xff0c;让我将代码上传到个人仓库&#xff1a; 新建一个文件夹当做库文件&#xff0c;点git bash here——> git init——>git config --global…

qiankun主应用(vue2+element-ui)子应用(vue3+element-plus)不同版本element框架css样式相互影响的问题

背景&#xff1a;qiankun微前端架构实现多应用集成 主应用框架&#xff1a;vue2 & element-ui 子应用框架&#xff1a;vue3 & element-plus >> 问题现象和分析 登录页面是主应用的&#xff0c;在登录之后才能打开子应用的菜单页面&#xff0c;即加载子应用。 首…

云渲染,解决houdini特效缓存太大上传太慢的问题

对于从事 Houdini 创作的艺术家和设计师们来说&#xff0c;使用云渲染的朋友&#xff0c;缓存太大导致云渲染上传慢一直是一个令人头疼的问题。然而&#xff0c;现在有了成都渲染 101 云渲染&#xff0c;这个难题迎刃而解。Houdini 以其强大的功能能够创建极为复杂和逼真的特效…

前端开发迈向全栈之路:规划与技能

一、前端开发与全栈开发的差异 前端开发主要负责构建和实现网页、Web 应用程序和移动应用的用户界面。其工作重点在于网页设计和布局&#xff0c;使用 HTML 和 CSS 技术定义页面的结构、样式和布局&#xff0c;同时运用前端框架和库如 React、Angular 或 Vue.js 等构建交互式和…

学习QT第二天

QT6示例运行 运行一个Widgets程序运行一个QT Quick示例 工作太忙了&#xff0c;难得抽空学点东西。-_-||| 博客中有错误的地方&#xff0c;请各位道友及时指正&#xff0c;感谢&#xff01; 运行一个Widgets程序 在QT Creator的欢迎界面中&#xff0c;点击左侧的示例&#xf…