【FPGA】FPGA入门 —— 基本开发流程

news2025/1/13 15:50:33

FPGA入门

  • 1. FPGA入门
  • 2. FPGA开发流程
  • 3. 二选一多路器 - 快速熟悉开发环境及流程

1. FPGA入门

  • 快速上手verilog语法
  • 状态机,线性序列机
  • FPGA常见的设计方法
  • 自己写代码,下载代码进行使用,使用厂家/第三方提供的IP核
  • 常见接口设计

等等。。

学习时间:基础内容的学习 - 20*8h,啊啊啊我可以我能行,看来这个月我给把时间砸这上面了~~

仿真两大作用:检查验证设计功能是否正确;调试问题,可以看到设计中每一个信号每一个时刻的值,通过仿真分析设计中信号异常的原因。做设计时,超过50%的时间不是在写代码,而是通过仿真调试代码找问题。

2. FPGA开发流程

写一套硬件描述语言,能够在指定硬件平台实现相应功能。

  1. 设计定义:比如让LED灯1s闪烁一次
  2. 设计输入: 编写逻辑(使用verilog代码描述逻辑);画逻辑图;使用IP
  3. 分析综合 (由专业的EDA软件进行,Quatus、vivado、ISE):对所写的逻辑描述内容进行分析,并得到逻辑门级别的电路内容
  4. 功能仿真:使用专门的仿真工具进行仿真(Modelism),对于数字电路来说,方针是基本接近于真实情况的。
  5. 布局布线:(vivado、quartus)在指定器件上将设计的逻辑电路实现
  6. 分析性能
    • 时序仿真(非常耗费时间)
    • 静态时序分析
  7. 下载到目标板上运行调试,查看结果ILA

让设计的逻辑在目标板上正常工作 - 功能正常、性能稳定

3. 二选一多路器 - 快速熟悉开发环境及流程

快速熟悉环境及流程

image-20220913160457502

1. 编码

module mux2( //端口列表
    a,
    b,
    sel,
    out
);
	//端口定义
    input a;
    input b;
    input sel;
    output out;
    
    //2 select one
    assign out = (sel==1)?a:b;
    
endmodule

2. 分析综合

image-20220913161625971

3. 功能仿真

添加激励文件 text bench

`timescale 1ns/1ns

module mux2_tb(); //without port

    reg s_a;    //激励信号
    reg s_b;
    reg sel;
    wire out;
    
    //例化- 复制过来,稍微改动
    mux2 mux2_inst0(  
        .a(s_a),
        .b(s_b),
        .sel(sel),
        .out(out) //连信号线
    );

    //initial块 - 变化高低电平
    initial begin
        s_a = 0; s_b = 0; sel = 0;
        #200;   //延迟200,注意这只适用于描述激励
         s_a = 0; s_b = 0; sel = 1;
        #200;
          s_a = 0; s_b = 0; sel = 0;
        #200;
          s_a = 0; s_b = 1; sel = 1;
        #200;
          s_a = 1; s_b = 1; sel = 0;
        #200;
          s_a = 1; s_b = 0; sel = 1;
        #200;
          s_a = 1; s_b = 1; sel = 0;
        #200;
          s_a = 1; s_b = 1; sel = 1;
        #200;
        $stop;
    end
    
endmodule
  • 1ns/1ps:时间单位/精度
  • initial
image-20220913191852788

4. 布局布线 run implementation

5.时序仿真

image-20220913193037246

6. 下载到板子上,调试

分配IO引脚

image-20220918093500476

ctrl+s

image-20220918093856150

我艹,之前我都是照猫画虎自己胡写的。。。

7. 生成比特流文件

  • Generate Bitstream
  • Open Hardware Manager - 要先上电哦

啊哈哈好好玩啊,当然被自己笨拙的样子笑到

open target → auto connect

image-20220918101949268

Program device 就ok啦~

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

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

相关文章

白介素对NK细胞功能的影响(IL-1β、IL-12、IL-15、IL-18、IL-21)

1、促进NK细胞扩增和活化:IL-2/21 Soiffer RJ等自1996年起即报道IL-2低剂量持续输注和间歇给药对转移癌患者的CD56NK细胞有明显扩增效果。大部分NK细胞表面具有IL-2中亲和性受体,IL-2诱导NK的杀伤活性约需18~24小时。此外,IL-2还…

Docker安装Jenkins实操记录

前置条件: 1、安装了docker 2、安装了java(没有安装情况下,可运行:yum install -y java-1.8.0-openjdk-devel.x86_64) 一、拉取镜像 1、docker pull jenkins/jenkins 2、mkdir -p /usr/local/jenkins 3、chmod 777 …

模型崩溃,ChatGPT变“笨”了?最新评估结果揭示真相原因

​ChatGPT性能是否变化? 人们可能会好奇,像ChatGPT这样的AI系统是否会因为太聪明而最终无法被人类所驾驭使用。但是,最近的一项研究表明,ChatGPT正在变得越来越糟糕。[1] OpenAI的ChatGPT帮助了无数人更高效地使用互联网。无论是…

php 多维数组排序,根据某一列排序(array_multisort()和array_column()联用)

array_multisort()和array_column()联用效果直接叠满,11>100 先来看下两个函数的介绍和用法 array_column(): 一般模式,不需要其中字段作为id,只需要提取val值 <?php // 可能从数据库中返回数组 $a [[id > 5698, first_name > Peter, last_name > G…

【AndroidStudio】屏蔽小米打印

使用小米手机调试时&#xff0c;会一直有notifyQueue load error的打印 在过滤器重添加过滤条件即可 -message:notifyQueue

ISO-16750-1,2,3,4,5_2023 道路车辆 — 电气和电子设备的环境条件和测试 ,标准汇总

目录 一、ISO 16750标准各Part部分当前状态&#xff1a; ISO 16750-2023 合集1-5包下载&#xff1a;https://download.csdn.net/download/std7879/88251235 二、ISO 16750标准各Part部分描述的内容&#xff1a; ISO 16750-1:2023Part 1: General概述 ISO 16750-2:2023 Part…

8路模拟信号采集FMC子卡模块推荐哪些?

FMC168是一款基于VITA57.4标准的2GSPS/2.6GSPS/3GSPS采样率14位分辨率Double FMC子卡模块&#xff0c;该模块可以实现8路14-bit、2GSPS/2.6GSPS/3GSPS采样率模拟信号采集。该板卡ADC器件采用ADI公司的AD9208芯片,该芯片与AD9689完全兼容&#xff0c;可以实现不同的采样率范围。…

微信小程序客服系统-两种形式:嵌入页面传递更多信息 与 自带组件形式

微信小程序对接有两种方式&#xff1a;webview组件嵌入页面&#xff0c;小程序客服组件对接消息 使用webview组件嵌入聊天页面形式。这种形式更加的灵活可控&#xff0c;可以传递更多的信息给到客服&#xff0c;例如可以把用户的手机号&#xff0c;所在页面的产品信息等带入进来…

Dubbo3之SerializingExecutor

前言 Dubbo3 提供了一个挺有意思的 Executor&#xff0c;用来将提交到线程池里的任务按顺序串行执行。 需求背景&#xff1a;你有一个线程池&#xff0c;但是你不想修改它&#xff0c;现在你的需求是要把提交上去的任务按顺序串行执行。 在这样一个需求背景下&#xff0c;Ser…

Text-to-SQL小白入门(三)IRNet:引入中间表示SemQL

摘要 本文主要介绍了IRNet论文的基本信息&#xff0c;比如标题、摘要、数据集、结果&结论&#xff0c;以及论文中提出的不匹配问题和词汇问题以及对应的解决方案&#xff0c;重点学习了中间表示SemQL。 引言 学习论文时&#xff0c;可以先粗略看看论文标题-摘要-数据集-结…

YB2411是一款内部集成有高边高压功率MOSFET管的高频率(2MHz)降压型开关稳压器。

概述&#xff1a; YB2411是一款内部集成有高边高压功率MOSFET管的高频率(2MHz)降压型开 关稳压器。提供单路最大0.6A高效率输出&#xff0c;以电流模式控制方式达到快速环路响 应。 宽范围输入电压(33V至36V)可在移动环境输入的条件下实现各种降压型电 源变换的应用。1uA的…

为什么产品经理不适合做项目经理呢?

虽然产品经理需要具备一定的项目能力&#xff0c;但在实际执行过程中&#xff0c;通常会在开发团队中设置一个类似项目经理的角色&#xff0c;负责把控项目进度和质量。一般情况下&#xff0c;技术经理就是项目经理。 技术型项目经理的特点如下&#xff1a; 充当救火队员的角…

C#矩阵XY排序

矩阵XY快速排序 using MyVision.Script.Method;public class MyScript : ScriptMethods {//struct MOTIONPOSXY_S{public double Pos_x;public double Pos_y;};//脚本执行该方法public bool Process(){//try{//脚本代码写在下方 List<double> PointX GetDoubleList(&qu…

会员管理系统实战开发教程03-会员管理功能

我们上篇介绍了会员管理的列表页&#xff0c;及新增功能开发。本篇我们继续我们的会员管理功能&#xff0c;介绍一下详情、修改、删除功能。 1 创建详情页 打开控制台&#xff0c;点击创建页面的图标&#xff0c;创建详情页 2 数据详情组件 详情页我们也是使用数据容器组…

RTSP/Onvif视频服务器EasyNVR视频平台微信端出现播放失败的问题解决方案

EasyNVR是基于RTSP/Onvif协议接入的视频平台&#xff0c;具备视频直播监控、录像、检索与回看、存储、国标级联等视频能力&#xff0c;可支持将接入的视频流进行全平台、全终端的分发&#xff0c;包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等。 有用户反馈&#xff0c;在…

shopee平台好做吗,有什么优势?

shopee平台提供了一个庞大而活跃的用户群体。作为东南亚地区最受欢迎的购物平台之一&#xff0c;shopee平台吸引了数百万用户每天在该平台上进行交易。这意味着商家可以通过shopee平台获得更大范围和更广泛的曝光机会。无论是刚创业还是已经有一定规模和知名度的企业&#xff0…

最简单的Obsidian图床配置

参考文章&#xff1a; Obsidian 将图片批量上传至图床 Obsidian中图床自动上传设置 前言 配置图床的目的&#xff1a;解决 Obsidian 图片存储问题&#xff0c;一般来说 Obsidian 图片是以本地链接的方式存储在文章当中&#xff0c;当图片移动的时候文章中的图片就会出错。 …

翻倍以链表形式表示的数字

题目&#xff1a; 示例&#xff1a; 思路&#xff1a; 有点相似于&#xff1a;链表相加II&#xff0c;这道题我们仍然有进位&#xff0c;但不同的是&#xff0c;链表相加我们选择了开辟新节点&#xff0c;这道题我们选择反转两次链表&#xff0c;开始一次&#xff0c;结束一次…

能够解决问题的客服电话系统方案

客服电话的应用场景通常是以呼入的电话为主&#xff0c;属于服务性质的更重视服务质量&#xff0c;客服电话方案主要解决呼叫中心运营中的一些问题&#xff0c;下面就来详细了解下。 企业的客服电话通常都是统一的一个热线号码&#xff0c;如&#xff1a;400电话、800电话、95号…

若依Cloud集成Flowable6.7.2

项目简介 基于若依Cloud的Jove-Fast微服务项目&#xff0c;集成工作流flowable(接上篇文章) 若依Cloud集成积木报表 项目地址&#xff1a;https://gitee.com/wxjstudy/jove-fast 后端 新建模块 目录结构如下: 引入依赖 前提:引入依赖之前先配置好maven的setting.xml &…