【数字IC/FPGA】书籍推荐(2)----《那些年,我们拿下了FPGA》

        在下这几年关于数字电路、Verilog、FPGA和IC方面的书前前后后都读了不少,发现了不少好书,也在一些废话书上浪费过时间。接下来会写一系列文章,把一部分读过的书做个测评,根据个人标准按十分制满分来打分分享给大家。


概述

📖书名:《那些年,我们拿下了FPGA

内容Verilog语法

💎评分:7/10

📣评价:乍一看书名,还以为这是一本主讲FPGA的书,但实际上70%的内容在讲Verilog语法,剩余30%才是和FGPA开发直接相关。我对本书的定位是适用于新手的一本Verilog语法入门书。全书虽然有26个章节,但是只有350页左右,所以有很多地方都只是浅浅地提了一嘴,并没有深入。中规中矩的一本书,没太多出彩的地方,最大的优点是不像其他语法书那么喜欢堆概念,行文风格比较通俗,也就是“说人话”,对于新手来说理解算是比较简单。


第1部分:1~3章

这部分主要讲解了FPGA发展的历史,FPGA的结构和FPGA在各个行业的应用,是导读性质的一部分,对于直观地认识和理解FPGA在工业领域的应用很有帮助。

第2部分:4~5章

这部分主要讲了如何从整体上设计一个FPGA工程,以及详细概述了一个典型的FPGA开发过程,对每一个步骤都做了详细的解释。

第3部分:6~11章

这部分主要是对Verilog语法的介绍,没有单纯地堆砌概念,而是用通俗的语言加丰富的示例进行解释,对新手非常友好,理解起来也简单。

第4部分:12~14章

这部分算是对Verilog语法的补充,不过不是介绍语法细节,而是着眼于从宏观及总体层面上对Verilog语言进行FPGA设计,有助于理解如何进行大规模的FPGA设计,并对模块化等常用设计理念有一个直观的认识。

第5部分:15~16章

这部分是仿真Testbench相关的内容,包括如何编写一个简单的Testbench,并详细讲解了如何使用常用的仿真工具Modelsim。这里多说一句,其实对于初学者来说,FPGA自带的仿真工具已经是够用了的,而且更方便,不需要编译一些额外的库,比如Vivado自带的Simulator就挺好用的。

第6部分:17~18章

这部分介绍FPGA设计的两种电路形式:组合逻辑电路时序逻辑电路。组合逻辑实现函数功能,而时序逻辑则存储中间数值,二者相辅相成。理论上,这两种电路可以组合着实现所有电路。

第7部分:19~20章

函数Function和任务Task都是可以提高编码效率的语法,但不是必需,掌握了这些进阶技巧可以让你的编码效率上一个台阶,预编译指令同理。同时,这些语法还可以提高你的代码的可复用性和可读性。

第8部分:21章

image-20240719145020359

状态机实现是太重要了,只要你设计的逻辑稍微复杂一点,那肯定是离不开状态机FSM的,所以请一定要学好状态机!

第9部分:22~23章

image-20240719145305225

22章以Altera的综合工具Quartus II为例,详细讲解了一个FPGA开发的全部流程;23章则主要介绍了如何进行调试,包括线上的仿真和下载到FPGA后的调试。

第10部分:24章

IP核本质上就是FPGA厂商已经设计好了的电路模块,开发一些特定的接口给你去调用。因为FPGA厂商雄厚的技术实力以及对自身器件的了解,这些IP核往往比自己写出来的电路模块更好用,性能更好,所以作为一个FPGAer,一定要学会如何使用各种常见的IP核。

第11部分:25~26章

两个设计实例,但其实我觉得这两章写得一般,从设计思路到代码实现的介绍比较简单和突兀,不是很容易就能让人读懂,而且用现在(2024年)的眼光来看,这两个例子真的有点过时了。

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

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

相关文章

【C语言】全面解析冒泡排序

文章目录 什么是冒泡排序?冒泡排序的基本实现代码解释冒泡排序的优化冒泡排序的性能分析冒泡排序的实际应用结论 在C语言编程中,排序算法是一个非常基础且重要的概念。冒泡排序作为最简单、最易理解的排序算法之一,广泛应用于各种编程教学和实…

在VS Code上搭建Vue项目教程(Vue-cli 脚手架)

1.前期环境准备 搭建Vue项目使用的是Vue-cli 脚手架。前期环境需要准备Node.js环境,就像Java开发要依赖JDK环境一样。 1.1 Node.js环境配置 1)具体安装步骤操作即可: npm 安装教程_如何安装npm-CSDN博客文章浏览阅读836次。本文主要在Win…

使用NIFI连接瀚高数据库_并从RestFul的HTTP接口中获取数据局_同步到瀚高数据库中---大数据之Nifi工作笔记0067

首先来看一下如何,使用NIFI 去连接瀚高数据库. 其实,只要配置好了链接的,连接字符串,和驱动,任何支持JDBC的数据库都可以连接的. 首先我们用一个ListDatabaseTables处理器,来连接瀚高DB 主要是看这里,连接地址,以及驱动,还有驱动的位置 这个是数据连接的配置 jdbc:highgo://…

什么是上网行为审计系统?有哪些功能?

上网行为审计系统是一种网络安全与管理工具,用于监控、记录和分析组织内部网络用户的上网行为。 这种系统旨在帮助企业或组织了解员工如何使用网络资源,确保合规性,预防安全风险,并优化网络性能。以下是上网行为审计系统的主要功…

基于SpringBoot的招聘信息管理系统

你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:SpringBootMyBatis 工具:IDEA/Eclipse、Navicat、Maven 系统展示 首页 个人中心 用户…

JavaScript中==和===的区别

🧑‍💻 写在开头 点赞 收藏 学会🤣🤣🤣 前言 JavaScript 中的相等运算符无疑是新手开发者最容易混淆的知识点之一。 和这两个运算符的细微差别往往会在代码中造成一些令人困惑的行为 在本文中,我们将深入探讨这两个…

数据结构-冒泡排序

1 概念 冒泡排序属于一种常见的交换排序,根据序列中两个元素关键字的比较结果来对换这两个记录在序列中的位置。具体操作是按顺序(从前往后或从后往前)两两对比元素直至本次排序结束,每次排序确认一个固定值(末位或首…

Linux——远程连接服务器

sshd服务端 ssh客户端 ssh 服务配置 #ssh 服务安装包 openssh-server [rootserver1 ~] # vim /etc/ssh/sshd_config 17 . #Port 22 # 监听端口,默认监听 22 端口 【默认可修改】 18 . #AddressFamily any #IPV4 和 IPV6 协议家族用哪个, any 表示二者…

Ubuntu22.04:安装Samba

1.安装Samba服务 $ sudo apt install samba samba-common 2.创建共享目录 $ mkdir /home/xxx/samba $ chmod 777 /home/xxx/samba 3.将用户加入到Samba服务中 $ sudo smbpasswd -a xxx 设置用户xxx访问Samba的密码 4.配置Samba服务 $ sudo vi /etc/samba/smb.conf 在最后加入 …

浅谈Vue:text-align: center、align-items: center、justify-content: center三种居中的区别和用法

text-align: center、align-items: center 和 justify-content: center 是用于不同布局场景下的CSS属性。它们在水平和垂直居中元素方面有所不同,具体取决于你使用的布局模型(如块级元素、Flexbox、Grid)。以下是它们的区别和适用场景&#x…

Springboot集成Apollo后,更新Apollo配置成功但是程序里获取还是老的问题

上网搜了很多帖子,我的项目中集成了jasypt包,apollo包用的1.4.1版本的,官方说他俩有冲突,apollo spring的Value注解自动刷新机制,与jasypt 2.0 spring boot starter发生冲突,导致spring不能获取到最新的值&…

手机日历如何与Outlook同步

有很多人和我一样遇到手机日历与Outlook同步问题,如新版outlook与小米日历的同步问题 - Microsoft Community,outlook账号无法在手机端自带的电子邮件App以exchange模式登录 - Microsoft Community,在安卓手机端无法电子邮件App以exchange模式…

Pytorch学习笔记——线性层和非线性层的使用

文章目录 1. 前言2. 导入必要的库3. 加载数据集4. 定义线性层网络结构5. 实例化网络并打印输出6. 定义非线性层网络结构7. 总结 1. 前言 在深度学习中,线性层和非线性层是构建神经网络的基本单元。本文将通过PyTorch实现一个简单的网络,详细讲解线性层与…

园区AR导航系统构建详解:从三维地图构建到AR融合导航的实现

随着现代园区规模的不断扩大与功能的日益复杂,传统的二维地图导航已难以满足访客高效、精准定位的需求。园区内部错综复杂的布局、频繁变更的商户位置常常让访客感到迷茫,造成寻路上的时间浪费。园区AR导航系统以创新的技术手段,破解了私域地…

同三维T610UH2L2-4K60 USB双路高清HDMI采集卡:高清HDMI采集卡

采集2路4K60HDMI信号,带2路HDMI环出,带1路LINE IN1路MIC和1路LINE OUT,4K60,USB3.0免驱 来百度APP畅享高清图片 高清HDMI采集卡 一、产品介绍 同三维T610UH2L2-4K60是一款USB双路4K60HDM采集卡,可采集双路4K60超高清HDMI信号,分…

单例模式~

概要 确保一个类只有一个实例,并提供一个全局访问点来访问该实例。 主要解决的问题 频繁创建和销毁全局使用的实例,减少开销。 解决思路 如果有该实例就返回,没有就创建。 应用场景 数据库连接池、线程池、spring中service等 几种实现…

[web]-反序列化漏洞-easy入门

打开网站看到代码&#xff1a; <?php highlight_file(__FILE__); class easy{ public $cmd; public function __wakeup(){ system($this->cmd); } } unserialize($_GET[pop]); ?> 是一个简单的反序列化题目&#xff0c;在本地启动php_study,生成序列化字符串&…

fatal error解决方法的详细教程,电脑出现错误代码fatal error问题

电脑出现“fatal error”&#xff08;致命错误&#xff09;通常指的是操作系统、应用程序或电脑硬件在执行期间遇到了非常严重的问题&#xff0c;导致程序不能正常继续运行。这种错误往往需要立即关注和解决&#xff0c;因为它可能影响到数据完整性、系统安全或者用户体验。 导…

JVM(day2)经典垃圾收集器

经典垃圾收集器 Serial收集 使用一个处理器或一条收集线程去完成垃圾收集工作&#xff0c;更重要的是强调在它进行垃圾收集时&#xff0c;必须暂停其他所有工作线程&#xff0c;直到它收集结束。 ParNew收集器 ParNew 收集器除了支持多线程并行收集之外&#xff0c;其他与 …

手写简易版Spring IOC容器01【学习】

文章目录 BeanDefinitionbeanDefinition类 单例对象单例对象注册(SingletonBeanRegistry)DefaultSingletonBeanRegistry 模板方法 BeanFactoryBeanFactory接口AbstractBeanFactory 抽象工厂模板 (getBean)AbstractAutowireCapableBeanFactory (createBean 创建bean)DefaultList…