FPGA实训报告DAY 1(Verilog HDL)

 实习日志与总结

日期: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.mzph.cn/bicheng/47267.shtml

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

相关文章

LeetCode-随机链表的复制

. - 力扣(LeetCode) 本题思路: 首先注意到随机链表含有random的指针,这个random指针指向是随机的;先一个一个节点的拷贝,并且把拷贝的节点放在拷贝对象的后面,再让拷贝节点的next指向原链表拷贝…

免分助手神器-交管12123学法减分模拟考试题目及答案 #经验分享#其他

“驾照学法减分”为驾驶人提供了一种积极参与交通安全事业、减缓驾驶证扣分的方式,有益于促进驾驶人形成遵守交通规则、规范驾驶行为的良好习惯,提高道路交通安全意识和素养。然而,持有人仍需严格遵守道路交通安全法律法规,减少交…

1.MQ介绍

MQ 消息队列,本质是一个队列,先进先出,只不过队列中存放的内容是message而已。 为啥学习MQ 1.流量消峰 如果一个订单系统最多每秒能处理一万次订单,正常情况下我们下单1秒后就能返回结果。但是在高峰期,如果有两万…

服务端正常启动了,但是客户端请求不到

服务端正常启动了,但是客户端请求不到有哪些原因?如何排查? 如果客户端请求的接口没有响应,排查的方式: 检查接口IP地址是否正确,ping一下接口地址。 检查被测接口端口号是否正确,可以在本机Telnet接口的IP和端口号…

VsCode远程ssh连接失败:Could not establish connection to XXX

一、问题描述 在VsCode中按下"F1",选择Remote-SSH:Connect to Host 选择一个已经配置好的SSH主机,比如我选择的是192.168.0.104: 结果提示:Could not establish connection to XXX 二、解决方法 观察VsCode的输出信息…

splunk编写自定义命令

1. 自定义命令简介 splunk有丰富的内置搜索命令,但也提供了编写自定义命令来实现个性化的搜索需求,以此方式扩展splunk搜索处理语言(SPL)。 自定义搜索命令是一个可执行文件,可读入和写出数据,它可以是一…

状态机和工作流的选择

结论 如果你的需求主要集中在状态管理和状态转换控制,并且你使用的是Spring生态系统,Spring State Machine 是一个非常合适的选择。 如果你的需求是企业级的业务流程自动化,涉及到跨系统、跨组织的业务协调,并且需要强大的流程设计…

办公效率翻倍!2024最适合办公电脑安装的系统推荐!

当前,电脑已成为我们日常办公最常用的工具。为了确保高效顺畅的办公体验,选择一款合适的操作系统至关重要。那么,如何找到并下载最适合办公电脑的操作系统呢?接下来系统之家小编为您推荐2024年最适合办公电脑安装的系统&#xff0…

递推算法及解题套路

数学归纳法 step 1: 验证k0成立 step 2: 验证如果ki成立,那么ki1也成立 step 3: 联合step1与step2,证明由k0->kn成立 如何解决递推问题 1.确定递推状态 一个函数符号f(x),外加这个函数符号的含义描述 一般函数所对应的值,就是…

Qt窗口程序整理汇总

到今日为止,通过一个个案例的实验,逐步熟悉了 Qt6下 窗体界面开发的,将走过的路,再次汇总整理。 Qt Splash样式的登录窗https://blog.csdn.net/castlooo/article/details/140462768 Qt实现MDI应用程序https://blog.csdn.net/cast…

基于单片机STC89C52和GSM实现的远程拨号开锁设计(含文档、源码与proteus仿真,以及系统详细介绍)

本篇文章论述的是基于单片机STC89C52和GSM实现的远程拨号开锁设计的详情介绍,如果对您有帮助的话,还请关注一下哦,如果有资源方面的需要可以联系我。 目录 摘要 仿真图 单片机系统流程图 实物图 代码 系统论文 资源下载 摘要 本文介…

ArduPilot开源代码之AP_DAL_InertialSensor

ArduPilot开源代码之AP_DAL_InertialSensor 1. 源由2. 框架设计2.1 类定义和成员变量2.2 公共方法2.3 构造函数和其他方法2.4 私有成员变量 3. 重要例程3.1 InertialSensor-like 方法3.1.1 get_loop_rate_hz3.1.2 get_imu_pos_offset 3.2 accel 方法3.2.1 get_accel_count3.2.2…

无人机监测的必要性及方法

为什么需要无人机探测? 无人机的快速发展和广泛使用为各个行业带来了巨大好处,包括送货服务、农业和监控。然而,这种扩散也导致滥用现象增多,造成非法入侵空域、侵犯隐私和安全威胁。监控和探测在特定空域盘旋的无人机的能力变得…

Linux C++ 058-设计模式之解释器模式

Linux C 058-设计模式之解释器模式 本节关键字:Linux、C、设计模式、解释器模式 相关库函数: 概念 解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。 解释器模式用于构建一…

python数据可视化(9)——绘制小提琴图

课程学习来源:b站up:【蚂蚁学python】 【课程链接:【【数据可视化】Python数据图表可视化入门到实战】】 【课程资料链接:【链接】】 python:3.12.3 所有库都使用最新版。 Python绘制小提琴图 小提琴图(violin plot…

理想主义者

我自认为不是一个理想主义者,可能更多的是一个实用主义者,做了这么多年的产品我更多的是关注产品的落地。但这并不妨碍我对理想主义者的敬重。 偏见只是偏见,微信之父张小龙的人生并不会被各种偏见左右。当所有人都在说张小龙迷茫时&#xf…

【经验总结】将markdown文档转换为word(swagger导出word)

工具准备: 任意markdown编辑器,以typora为例pandoc,官方下载地址 思路整理: 从swagger提取离线md文档将md文档转换为word格式 操作步骤: 一、安装pandoc (markdown编辑器安装略) 前往官网…

Yak与nuclei的深度融合:打造高效漏扫生态,解锁PoC管理新姿势

在Yakit中使用nuclei很简单,只需要几行代码。在Yak Runner中,使用下面代码,指定扫描的目标与选项,便能调用nuclei的漏扫能力: results:nuclei.Scan(target,opts...)~for result in results { dump(result)} 比如以…

UNiapp微信小程序Ucharts

效果图如下 以上为加载接口所得数据的玫瑰图与折线图 具体步骤如下 1,将插件导入Hbuiler 所需要的项目中(插件地址:秋云 ucharts echarts 高性能跨全端图表组件 - DCloud 插件市场) 2,导入成功是这样的 3&#xff0c…

java 根据当前时间获取 yyyy-MM-dd HH:mm:ss 标准格式的时间

在Java中,可以使用java.time包中的LocalDateTime类和DateTimeFormatter类来获取并格式化当前时间为yyyy-MM-dd HH:mm:ss格式。 代码示例 以下是如何获取当前时间并格式化为yyyy-MM-dd HH:mm:ss格式的完整示例: import java.time.LocalDateTime; impor…