FPGA实训报告DAY 1(Verilog HDL)

devtools/2024/9/19 23:09:40/ 标签: fpga开发, fpga, 经验分享, 笔记, 嵌入式硬件

 实习日志与总结

日期:2024 年 7 月 10 日 星期三 姓名:XXX

一、实习日志

上午

9:00 - 9:30 按时到达工位,参加部门早会,了解了今天的实习任务和目标,即初步学习 FPGA 简介和 Verilog 基础语法知识。

9:30 - 10:30 阅读相关的技术文档和教材,对 FPGA(现场可编程门阵列)的基本概念和工作原理有了初步的认识。了解到 FPGA 是一种可以通过编程来实现特定逻辑功能的集成电路,具有灵活性高、开发周期短等优点,广泛应用于通信、图像处理、工业控制等领域。

10:30 - 12:00 观看了几个关于 FPGA 应用的视频案例,更加直观地感受了 FPGA 在实际项目中的作用和优势。同时,做了详细的笔记,记录了一些关键的知识点和疑问点。

中午

12:00 - 14:00 午餐和休息时间。

下午

14:30 - 15:30 开始学习 Verilog 基础语法知识。首先了解了 Verilog 的模块结构、端口声明、数据类型等基本概念。通过示例代码,理解了如何使用 Verilog 描述简单的逻辑电路,如与门、或门、非门等。

15:30 - 16:30 进行了一些简单的 Verilog 代码编写练习,实现了基本的逻辑运算和组合逻辑电路。在编写过程中,遇到了一些语法错误和逻辑错误,通过仔细检查代码和参考教材,逐步解决了问题。

16:30 - 17:00 与同事交流讨论,分享了自己在学习过程中的心得和体会,同时也向同事请教了一些疑惑的问题,得到了很多有用的建议和指导。

17:00 - 17:30 对今天学习的内容进行总结和整理,回顾了 FPGA 的概念和 Verilog 语法的重点知识,并对自己的学习效果进行了评估。

二、实习总结

        通过今天一天的实习,我对 FPGA 和 Verilog 有了初步的了解和认识。 在学习 FPGA 简介的过程中,我明白了 FPGA 的灵活性和可重构性为数字电路设计带来了极大的便利,能够满足不同应用场景的需求。同时,也感受到了 FPGA 技术在现代电子系统中的重要地位和广阔的发展前景。 在学习 Verilog 基础语法知识时,我掌握了 Verilog 语言的基本结构和语法规则,能够编写简单的逻辑电路代码。但是,我也意识到自己在代码编写的规范性和逻辑思维的严谨性方面还有待提高。在今后的学习中,我将加强练习,不断提高自己的编程能力。 总的来说,今天的实习收获颇丰,为我后续深入学习 FPGA 技术和 Verilog 语言奠定了良好的基础。我将继续努力,不断提升自己的专业水平,为今后的工作做好充分的准备。

 三、实习内容

1.FPGA简介

1.1 FPGA是什么

        FPGA(全称:Field Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。FPGA是一种完成通用功能的可编程逻辑芯片,即可以对其进行编程实现某种逻辑处理功能。

        在专用集成电路(ASIC)领域中,FPGA作为一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。同时FPGA可用于实现硬件灵活定制,能够高效地实现算法加速、数据处理,从而提高系统的性能。

FPGA制造商FPGA的优势
•Intel ( Altera)
•AMD(Xilinx)
•Lattice(莱迪思)
•紫光同创
•771所
•772所
•高密度集成以创建复杂的逻辑功能
•高性能、低成本
•许多可用的I/O标准和功能
•包含大量IP核,方便开发
•设计灵活、可重复编程

        FPGA更偏向于硬件电路,是用来设计芯片的芯片(FPGA),通过硬件编程语言在FPGA芯片上自定义集成电路的过程;单片机偏向于软件,是在已有的固化电路的芯片(单片机)上设计开发,通过软件编程语言描述软件指令在硬件芯片上的执行。

1.2 FPGA应用领域和前景

FPGA应用领域——高速接口设计

        FPGA拥有优秀的高速处理能力、多达成百上千的I/O引脚并且支持各种不同的电平标准,这就决定了它在高速接口领域必然有一席之地。比如FPGA在和PC通信时,可选择:ISA、PCI、PCI Express、USB、UART等多种接口。
        传统做法是使用专用的接口芯片,而使用FPGA则可以把各种不同的接口逻辑放在FPGA 内部去实现,再配合存储器使用,能使高速接口数据的传输、处理变得更加得心应手。

FPGA座用领域——人工智能
传统计算架构已经无法支撑深度学习大规模并行计算需求。FPGA可以帮助人工智能(AI)系统架构师灵活设计,同时也支持差异化定制极具竞争力的深度学习硬件加速器。
        例如自动驾驶系统需要用到多种传感器对行驶路线、红绿灯、路障和行驶速度等各种交通信号进行采集,同时需要对这些传感器进行驱动、信息融合处理,就可以使用 FPGA。

2.Verilog HDL介绍

2.1 硬件描述语言介绍

硬件描述语言(Hardware Description Language, HDL)是电子系统硬件行为描述、结构描述、数据流描述的语言。利用这种语言,数字电路系统的设计可以从顶层到底层(从抽象到具体)逐层描述设计思想,用一系列分层次的模块来表示极其复杂的数字系统。然后,利用电子设计自动化(EDA)工具进行仿真验证,再把其中需要变实际电路的模块组合,经过自动综合工具转换到门级电路网表。接下来,再用专用集成电路(ASIC)或现场可编程门阵列(FPGA)自动布局布线工具,把网表转换要实现的具体电路布线结构.

硬件描述语言主要包括:Verilog、VHDL、System Verilog。
        Verilog HDL: 拥有广泛的设计群体,成熟的资源也比 VHDL 丰富,从C编程语言中继承了多种操作符和结构,易于学习和理解。
        VHDL: 超高速集成电路硬件描述语言是一种标准化程度较高的硬件描述语言,其具有语法严谨、结构规范、移植性强、数据类型丰富等特点。除此之外VHDL支持层次结构设计,独立于器件和设计平台,程序复用性强。
        System Verilog: 结合了来自 Verilog、VHDL、C++的概念,将硬件描述语言与现代的高层级验证语言结合了起来。所以System Verilog有上述两种语言和计算机高级语言的特征。

          

2.2 Verilog模块基本结构

                           

2.3 数值表示

2.3.1 四种数值

2.3.2 整数的数值表现方式 

         


http://www.ppmy.cn/devtools/59442.html

相关文章

Flask 静态文件处理

1. 静态文件目录 Flask 默认会在应用的根目录下寻找一个名为 static 的文件夹,并将其作为静态文件的存储目录。你可以通过 static_folder 参数来指定不同的静态文件目录路径。 from flask import Flask app Flask(__name__, static_foldermy_static) 2. 静态文件 …

图扑低代码数字孪生 Web SCADA 智慧钢厂

2024 年 4 月,中国钢铁工业协会发布了《钢铁行业数字化转型评估报告(2023年)》(以下简称《报告》)。《报告》指出,绝大部分钢铁企业建立了数字化转型相关管理组织和团队,并加强其规划落实&#…

LDAPWordlistHarvester:基于LDAP数据的字典生成工具

关于LDAPWordlistHarvester LDAPWordlistHarvester是一款功能强大的字典列表生成工具,该工具可以根据LDAP中的详细信息生成字典列表文件,广大研究人员随后可以利用生成的字典文件测试目标域账号的非随机密码安全性。 工具特征 1、支持根据LDAP中的详细信…

CentOS 7 网络配置

如想了解请查看 虚拟机安装CentOS7 第一步:查看虚拟机网络编辑器、查看NAT设置 (子网ID,网关IP) 第二步:配置VMnet8 IP与DNS 注意事项:子网掩码与默认网关与 第一步 保持一致 第三步:网络配置…

初学者指南:如何搭建和配置 Nginx 服务器

初学者指南:如何搭建和配置 Nginx 服务器 Nginx 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。本文将详细介绍如何在 Linux 上安装、配置和管理 Nginx 服务器。 一、安装 Nginx Nginx 可以安装在多种操作系统上&#x…

Window -- redis 服务注册、Mysql 服务注册

Windows 服务注册 cd 进入 Redis 主目录 cd /d F:\Redis-x64-5.0.14.1注册 Redis 为系统服务,并指定配置文件 redis-server --service-install redis.windows.conf --loglevel verbose开启服务 redis-server --service-start停止服务 redis-server --service-s…

关于HDFS 和HBase

Apache HBase 被设计为在 Hadoop 分布式文件系统 (HDFS) 上运行的一个特殊类型的数据库。大白话: 想象一下,你有一个巨大的图书馆,这个图书馆就像 HDFS,它的架子上堆满了各种各样的书籍,每本书都非常厚,而…

安防监控视频平台LntonCVS视频融合共享平台智慧消防实现远程集中视频监控方案

近年来,电力系统内变电站着火事件频发,这对消防安全管理提出了严峻挑战。我国消防安全基础设施不完善、管理机制不健全、应急处置能力不足及公众消防安全意识淡薄等问题,严重制约了消防安全的提升。因此,加强变电站的消防安全管理…

HashMap源码解析

目录 一:put方法流程 二:get方法 三:扩容机制 一:put方法流程 public V put(K key, V value) {return putVal(hash(key), key, value, false, true); }final V putVal(int hash, K key, V value, boolean onlyIfAbsent,boolean evict) {No…

Qcom平台通过Hexagon IDE 测试程序性能指导

Qcom平台通过Hexagon IDE 测试程序性能指导 1 安装Hexagon IDE工具2 测试工程2.1 打开Hexagon IDE2.2 新建工程2.3 添加测试案例2.3.1 方法一:新建2.3.2 方法二:拷贝 2.4 配置测试环境2.4.1 包含头文件2.4.2 添加程序优化功能(需先bulid一下)2.4.3 添加g…

79. UE5 RPG 创建技能冷却和消耗

在这一篇里面,我们接着优化技能,现在角色添加的主动技能能够同步到ui上面。我们在这一篇文章里面,完善技能的消耗(释放技能减少蓝量)和冷却机制。 我们可以看到,在技能类默认值这里,可以设置它的…

分类题解清单

目录 简介MySQL题一、聚合函数二、排序和分组三、高级查询和连接四、子查询五、高级字符串函数 / 正则表达式 / 子句 算法题一、双指针二、滑动窗口三、模拟四、贪心五、矩阵六、排序七、链表八、设计九、前缀和十、哈希表十一、字符串十二、二叉树十三、二分查找十四、回溯十五…

LabVIEW红外热波图像缺陷检

开发使用LabVIEW开发的红外热波图像缺陷检测系统。该系统结合红外热像仪、工业相机和高效的数据采集硬件,实现对工件表面缺陷的自动检测和分析。通过LabVIEW的强大功能,系统能够实时采集、处理和显示红外热波图像,有效提高了检测的精度和效率…

Windows 11预览补丁KB5040527影响火绒驱动加载的解决办法

7 月 11 日,微软更新Windows 11 预览版本补丁 KB5040527,补丁安装后会影响火绒驱动加载导致火绒安全软件服务异常,补丁相关信息如下: https://blogs.windows.com/windows-insider/2024/07/11/releasing-windows-11-builds-22621-…

如何在Java中处理空集合和空指针

文章目录 概要示例代码详细解释如下正确处理集合的技巧总结 概要 在Java开发中,我们经常需要处理集合(如ArrayList)的情况。为了确保程序的稳定性和正确性,我们必须妥善处理空集合和空指针。 示例代码 public class Main {publ…

大语言模型(Large Language Model, LLM)——初步详细了解!!!

LLM 1.1 **基本概念**1.2. **主要特点**1.3. **主要应用**1.4. **著名大语言模型**1.5. **挑战和局限**1.6. **未来发展**2.1. 文献综述与资料收集2.2. 数据分析与预处理2.3. 实验设计与优化2.4. 结果分析与解释2.5. 科研写作与报告6. 知识扩展与创新2.7. 具体工具与平台2.8 示…

装修设计行业全屋定制类小程序源码系统 带完整的安装代码包以及搭建部署教程

系统概述 装修设计行业全屋定制类小程序源码系统是基于现代技术栈开发的,专为装修设计行业量身定制。该系统采用了模块化架构设计,使得开发者能够根据需要灵活选择和组合功能模块,从而快速构建出符合自己业务需求的小程序。 该系统主要面向…

【Qt 常用控件】基础的常用控件(下)

文章目录 1. QDateTimeEdit1.1 日期计算器 2. QDial3. QSlider3.1 通过滑动条来控制窗口大小3.2 给滑动条添加快捷键使用 1. QDateTimeEdit 1.1 日期计算器 2. QDial 3. QSlider 3.1 通过滑动条来控制窗口大小 3.2 给滑动条添加快捷键使用

DevOps工具链整合:打造高效的自动化工作流

DevOps工具链整合:打造高效的自动化工作流 DevOps是一种软件开发和运维的协作方法,旨在通过自动化和协作来提高软件交付的速度和质量。为了实现DevOps,我们需要整合各种工具,形成一个高效的自动化工作流。在本篇文章中&#xff0…

苹果(IOS)开发证书/发布证书申请

苹果开发者官网地址: 登录账号 找到【账户】下面有【证书……】 申请证书请求 (.certSigningRequest) 文件 不管是申请开发 (Development) 证书还是发布 (Distribution) 证书,都需要使用证书请求 (.certSigningRequest) 文件,证书请求文件…