当前位置: 首页 > news >正文

FPGA学习篇——开篇之作

今天正式开始学FPGA啦,接下来将会编写FPGA学习篇来记录自己学习FPGA 的过程!

今天是大年初六,简单学一下FPGA的相关概念叭叭叭!

一:数字系统设计流程

        一个数字系统的设计分为前端设计和后端设计。在我看来,前端偏软,编程为主,后端偏硬,就是要把硬件电路搭建出来。

二:什么是FPGA?

        由上图,早期的数字集成电路是不可编程的器件,意思就是一个器件生产出来的功能就是确定的,比如一个流水灯,你就只能将这个器件作为流水灯使用,而不能作为时钟。为了使器件更加灵活,则创造出了PLD,这个数字集成电路就可通过编程来改变功能,即它可以作为流水灯也可以作为时钟,就看你的编程情况。

        PLD常见的可编程器件有CPLD和FPGA。两者的区别是硬件电路结构的不同,在编程(即软件方面)是几乎一致的。所以FPGA可理解为可编程的用于数字系统设计的器件。

三:硬件描述语言(HDL)——Verilog语言

3.1 HDL:Hard Description Language。

        硬件描述语言可理解为为了硬件设计专门开发的一种编程语言。

HDL\left\{\begin{matrix} Verilog \\ VHLD \end{matrix}\right.

        常见的两种硬件描述语言有Verilog和VHDL,前者多用于美国和中国,后者多使用于欧洲。

3.2 Verilog与C的区别(FPGA和单片机的区别)

        单片机是用C语言进行编程,也是能设计出各种功能,其相当于一个万能“机器人”,C语言编写是给这个“机器人”指令,“机器人”就会按照指令完成你想要的功能然后呈现出来。

        而FPGA是一堆“零散的器件”,使用Verilog编写程序相当于把这些“零散的器件”搭建起来(会生成电路)变成能够实现你功能的机器人,但可在拆开重新来搭建器件。

今天就在写到这啦,欢迎指正~

http://www.lryc.cn/news/530942.html

相关文章:

  • 【Cadence仿真技巧学习笔记】求解65nm库晶体管参数un, e0, Cox
  • 【RocketMQ】RocketMq之IndexFile深入研究
  • 小白零基础--CPP多线程
  • 利用deepseek参与软件测试 基本架构如何 又该在什么环节接入deepseek
  • 大模型微调技术总结及使用GPU对VisualGLM-6B进行高效微调
  • WPF进阶 | WPF 样式与模板:打造个性化用户界面的利器
  • Java 大视界 -- Java 大数据在自动驾驶中的数据处理与决策支持(68)
  • 自动化构建-make/Makefile 【Linux基础开发工具】
  • python学opencv|读取图像(五十二)使用cv.matchTemplate()函数实现最佳图像匹配
  • 通信方式、点对点通信、集合通信
  • TCP编程
  • OpenAI 实战进阶教程 - 第七节: 与数据库集成 - 生成 SQL 查询与优化
  • Apache Iceberg数据湖技术在海量实时数据处理、实时特征工程和模型训练的应用技术方案和具体实施步骤及代码
  • QT交叉编译环境搭建(Cmake和qmake)
  • Turing Complete-成对的麻烦
  • 寒假刷题Day20
  • deepseek 本地化部署和小模型微调
  • 【Java异步编程】基于任务类型创建不同的线程池
  • makailio-alias_db模块详解
  • 文字显示省略号
  • [LeetCode] 字符串完整版 — 双指针法 | KMP
  • 从零开始部署Dify:后端与前端服务完整指南
  • springboot中路径默认配置与重定向/转发所存在的域对象
  • 二叉树——429,515,116
  • Leetcode 3444. Minimum Increments for Target Multiples in an Array
  • 分享半导体Fab 缺陷查看系统,平替klarity defect系统
  • Java基础——分层解耦——IOC和DI入门
  • DeepSeek-R1 本地部署教程(超简版)
  • Vue3学习笔记-模板语法和属性绑定-2
  • csapp笔记3.6节——控制(1)