最近,我在给大学三年级本科电子信息类专业学生教授《EDA原理及应用》课程,包括我在外地竞赛培训,接触了很多学生和老师,他们总觉得FPGA比较的难入门。我把自己在学习FPGA方面的一些方面的体会总结了一下,希望对学习FPGA的入门的朋友有些帮助。
此处推荐东南大学汤勇明老师编写的《搭建你的数字积木——数字电路与逻辑设计》。这本书将Xilinx Vivado集成设计开发环境在第1章中就呈现给读者,让读者从一开始就能利用该开发工具学习具体逻辑设计。这本书的优点是采用了电路设计加VerilogHDL编写的方法,重点突出模块化编程思想并详细介绍了IP设计、封装和调用方法,并在书中给出了VGA控制器、数字图像处理设计等实际案例。
调试FPGA,大家常用的工具主要有以下几种:Quartus,ISE或Vivado ,而仿真工具则常用ModelSim,个别初学者甚至还拿ISE/Vivado或Quartus做过仿真。
所有这一切都源自一个学生实验项目:CPU Experiment(CPU 实验)。首先说说这个 CPU 实验是什么。
硬件描述语言HDL(Hardware Describe Language) HDL概述 随着EDA技术的发展,使用硬件语言设计PLD/FPGA成为一种趋势。目前最主要的硬件描述语言是 VHDL和Verilog HDL。 VHDL发展的显纾 锓ㄑ细瘢 鳹erilog HDL是在C语言的基础上发展起来的一种硬件描述语言,语法较自由。 VHDL和Verilog HDL两者相比, VHDL的书写规则比Verilog烦琐一些,但verilog自由的语法也容易让少数初学者出错。国外电子专业很多会在本科阶段教授 VHDL,在研究生阶段教授verilog。从国内来看, VHDL的参考书很多,便于查找资料,而Verilog HDL的参考书相对较少,这给学习Verilog HDL带来一些困难。从EDA技术的发展上看,已出现用于CPLD/FPGA设计的硬件C语言编译软件,虽然还不成熟,应用极少,但它有可能会成为继 VHDL和Verilog之后,设计大规模CPLD/FPGA的又一种手段。 选择VHDL还是verilog HDL? 这是一个初学者最常见的问题。其实两种语言的差别并不大,他们的描述能力也是类似的。掌握其中一种语言以后,可以通过短期的学习,较快的学会另一种语言。选择何种语言主要还是看周围人群的使用习惯,这样可以方便日后的学习交流。当然,如果您是集成电路(ASIC)设计人员,则必须首先掌握verilog,因为在IC设计领域,90%以上的公司都是采用verilog进行IC设计。对于PLD/FPGA设计者而言,两种语言可以自由选择。 学习HDL的几点重要提示 1.了解HDL的可综合性问题: HDL有两种用途:系统仿真和硬件实现。如果程序只用于仿真,那么几乎所有的语法和编程方法都可以使用。但如果我们的程序是用于硬件实现(例如:用于FPGA设计),那么我们就必须保证程序“可综合”(程序的功能可以用硬件电路实现)。不可综合的HDL语句在软件综合时将被忽略或者报错。我们应当牢记一点:“所有的HDL描述都可以用于仿真,但不是所有的HDL描述都能用硬件实现。” 2. 用硬件电路设计思想来编写HDL: 学好HDL的关键是充分理解HDL语句和硬件电路的关系。编写HDL,就是在描述一个电路,我们写完一段程序以后,应当对生成的电路有一些大体上的了解,而不能用纯软件的设计思路来编写硬件描述语言。要做到这一点,需要我们多实践,多思考,多总结。 3.语法掌握贵在精,不在多 30%的基本HDL语句就可以完成95%以上的电路设计,很多生僻的语句并不能被所有的综合软件所支持,在程序移植或者更换软件平台时,容易产生兼容性问题,也不利于其他人阅读和修改。建议多用心钻研常用语句,理解这些语句的硬件含义,这比多掌握几个新语法要有用的多。 HDL与原理图输入法的关系 HDL和传统的原理图输入方法的关系就好比是高级语言和汇编语言的关系。HDL的可移植性好,使用方便,但效率不如原理图;原理图输入的可控性好,效率高,比较直观,但设计大规模CPLD/FPGA时显得很烦琐,移植性差。在真正的PLD/FPGA设计中,通常建议采用原理图和HDL结合的方法来设计,适合用原理图的地方就用原理图,适合用HDL的地方就用HDL,并没有强制的规定。在最短的时间内,用自己最熟悉的工具设计出高效,稳定,符合设计要求的电路才是我们的最终目的。 HDL开发流程 用 VHDL/VerilogHD语言开发PLD/FPGA的完整流程为: 1.文本编辑:用任何文本编辑器都可以进行,也可以用专用的HDL编辑环境。通常 VHDL文件保存为.vhd文件,Verilog文件保存为.v文件 2.功能仿真:将文件调入HDL仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只在布线完成以后,进行时序仿真) 3.逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式和信号的连接关系。逻辑综合软件会生成.edf(edif)的EDA工业标准文件。 4.布局布线:将.edf文件调入PLD厂家提供的软件中进行布线,即把设计好的逻辑安放到PLD/FPGA内 5.时序仿真:需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。(也叫后仿真) 6.编程下载:确认仿真无误后,将文件下载到芯片中 通常以上过程可以都在PLD/FPGA厂家提供的开发工具(如MAXPLUSII,Foundation,ISE)中完成,但许多集成的PLD开发软件只支持 VHDL/Verilog的子集,可能造成少数语法
各种硬件描述语言 (HDL) 在过去几年中不断增强,确定哪种语言适合哪种设计的复杂性也随之增加。许多设计人员和组织正在考虑是否应该从一种 HDL 切换到另一种HDL。
HDL特别是Verilog HDL得到在第一线工作的设计工程师的特别青睐,不仅因为HDL与C语言很相似,学习和掌握它并不困难,更重要的是它在复杂的SOC的设计上所显示的非凡性能和可扩展能力。 在学习HDL语言时,笔者认为先学习VerilogHDL比较好:一是容易入门;二是接受Verilog HDL代码做后端芯片的集成电路厂家比较多,现成的硬核、固核和软核比较多。 小析VHDL与Verilog HDL的区别 学习完VHDL后觉得VHDL已非常完善,一次参加培训时需学习Verilog HDL,于是顺便“拜访”了一下Verilog HDL,才发现,原来Verilog HDL也是如此高深,懵懂中发现Verilog HDL好像较之VHDL要多一些语句,是不是Verilog HDL就要比VHDL高级些?
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。
硬件描述语言HDL(Hardware Description Language ) 类似于高级程序设计语言. 它是一种以文本形式来描述数字系统硬件的结构和行为的语言, 用它可以表示逻辑电路图、逻辑表达式,复杂数字逻辑系统的逻辑功能。用HDL编写设计说明文档易于存储和修改,并能被计算机识别和处理.
今天给大侠带来FPGA Xilinx Zynq 系列第二十六篇,开启十四章,讲述高层综合等相关内容,本篇内容目录简介如下:
例 (试探法)汽车尾灯发出的信号主要是给后面行驶汽车的司机看的,通常汽车驾驶室有刹车开关(HAZ)、左转弯开关(LEFT)和右转弯开关(RIGHT),司机通过操作这3个开关给出车辆的行驶状态。假设在汽车尾部左、右两侧各有3个指示灯,分别用LA、LB、LC、RA、RB、RC表示,如图所示。这些灯的亮、灭规律如下:
FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括 可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。
这里的面积指的是FPGA的芯片资源,包括逻辑资源和I/O资源等;这里的速度指的是FPGA工作的最高频率(和DSP或者ARM不同,FPGA设计的工 作频率是不固定的,而是和设计本身的延迟紧密相连)。
在使用Verilog HDL描述状态机时,通常用参数定义语句parameter指定状态编码。状态编码方案一般有三种:自然二进制编码、格雷(Gray)编码和独热码(one-hot编码)。对应于图所示的状态图的各种编码方案如表所示。
问:本人零基础,想学FPGA,求有经验的人说说,我应该从哪入手,应该看什么教程,应该用什么学习板和开发板,看什么书等,希望有经验的好心人能够给我一些引导。
⭐本专栏针对FPGA进行入门学习,从数电中常见的逻辑代数讲起,结合Verilog HDL语言学习与仿真,主要对组合逻辑电路与时序逻辑电路进行分析与设计,对状态机FSM进行剖析与建模。 🔥文章和代码已归档至【Github仓库:hardware-tutorial】,需要的朋友们自取。 文章目录 分层次的电路设计方法 设计方法 全加器电路设计举例 一位半加器的描述 一位全加器的描述 四位全加器的描述 模块实例引用语句 分层次的电路设计方法 设计方法 📷 📷 使用自下而上的方法(bottom-up) : 实
延迟格式描述了设计网表的单元延迟和互连走线延迟,无论设计是用两种主要硬件描述语言(VHDL或Verilog HDL)中的哪一种所描述的。
Verilog行为级描述用关键词initial或always,但initial是面向仿真,不能用于逻辑综合。always是无限循环语句,其用法为:
Verilog HDL 语 言 最 初 是 作为 Gateway Design Automation 公 司 ( Gateway DesignAutomation 公司后来被著名的 Cadence Design Systems 公司收购)模拟器产品开发的硬件建模语言。
今天给大侠带来如何写好状态机,状态机是逻辑设计的重要内容,状态机的设计水平直接反应工程师的逻辑功底,所以很多公司在硬件工程师及逻辑工程师面试中,状态机设计几乎是必选题目。本篇在引入状态机设计思想的基础上,重点讨论如何写好状态机。由于篇幅比较长,如何写好状态机分成三篇呈现。话不多说,上货。
大侠们,江湖偌大,有缘相见,欢迎一叙。又到了每日学习的时候了,近期很多人问我该如何去学FPGA,那么今天咱们就来聊一聊。
FPGA作为一种高新技术,由于其结构的特殊性,可以重复编程,开发周期较短,越来越受到电子爱好者的青睐,其应用已经逐渐普及到了各行各业。因此,越来越多的学生或工程师都希望跨进FPGA的大门掌握这门技术
今天给大侠带来FPGA Xilinx Zynq 系列第二十五篇,开启十三章,讲述IP包设计等相关内容,本篇内容目录简介如下:
结构级建模: 就是根据逻辑电路的结构(逻辑图),实例引用Verilog HDL中内置的基本门级元件或者用户定义的元件或其他模块,来描述结构图中的元件以及元件之间的连接关系。
锁存器和触发器是构成时序逻辑电路的基本逻辑单元,它们具有存储数据的功能。 每个锁存器或触发器都能存储1位二值信息,所以又称为存储单元或记忆单元。 若输入信号不发生变化,锁存器和触发器必然处于其中一种状态,且一旦状态被确定,就能自行保持不变,即长期存储1位二进制数。 电路在输入信号的作用下,会从一种稳定状态转换成为另一种稳定状态。
ESL (Electronic System Level)设计理念最早可追溯至2001年,其核心思想是通过高层次语言如C/C++或图形设计工具描述或搭建系统行为并对其进行仿真验证。于是,就形成了两个分支。分支一是从高层次语言角度出发,对应产生了如Xilinx Vitis HLS (High Level Synthesis)工具;分支二是从模块化设计角度出发,对应产生了如Mathworks的HDL Coder、Xilinx的Vitis Model Composer等工具。这些工具在其适用的场合可有效加速设计开发的进度,缩短开发周期。
大侠好,许久不见,近期由于疫情以及其他各种原因更新较慢,望各位大侠海涵。今天“宁夏李治廷”给各位大侠带来基于FPGA VHDL 的 FSK调制与解调,源码各位大侠可以在“FPGA技术江湖”知识星球内获取,如何加入知识星球可以查看如下文章欢迎加入FPGA专业技术交流群、知识星球!(交流群QQ、微信双向选择)。
网上有太多的VHDL和verilog比较的文章,基本上说的都是VHDL和verilog之间可以实现同一级别的描述,包括仿真级、寄存器传输级、电路级,所以可以认为两者是等同级别的语言。很多时候会了其中一个,当然前提是真的学会,知道rtl(寄存器传输级)的意义,知道rtl与电路如何对应,在此基础上,则很容易就可以学另外一个。从这个意义上,或许先学什么都无所谓。 学HDL无非要这么几类人: 1.学生 2.电子工程师 3.软件工程师 4.纯粹的爱好者 学生,两眼一摸黑,老师教什么学什么,
FPGA(Field-Program mable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD 等可编程器件的基础上进一步发展的产物。它是作为专用集成电路领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
大侠好,欢迎来到FPGA技术江湖。本次带来FPGA系统性学习系列,今天开始正式更新,之前更新过类似的郝旭帅FPGA零基础学习系列,由于时间久远,之前的系列所用开发操作软件、硬件设备及所涉及知识维度都有待更新及完善。
在ChatGPT的帮助下,他们不仅设计出CPU上的一个组件,甚至还通过了有效性验证环节。
一般使用Primitive(内部元件)、自定义的下层模块对电路描述。主要用于层次化设计中。
PS:笔者强烈建议诸位注册一个EETOP的账号,每天签到或者发贴、回贴就有积分了,里面的资源非常丰富,各种软件、资料都能找到。
从大学时代第一次接触FPGA至今已有10多年的时间,至今记得当初第一次在EDA实验平台上完成数字秒表、抢答器、密码锁等实验时那个兴奋劲。当时由于没有接触到HDL硬件描述语言,设计都是在MAX+plus II原理图环境下用74系列逻辑器件搭建起来的。
本系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的“傻瓜式”讲解,让电子、信息、通信类专业学生、初入职场小白及打算进阶提升的职业开发者都可以有系统性学习的机会。
对于基本单元逻辑电路,使用Verilog语言提供的门级元件模型描述电路非常方便。
System Generator是Xilinx公司进行数字信号处理开发的一种设计工具,它通过将Xilinx开发的一些模块嵌入到Simulink的库中,可以在Simulink中进行定点仿真,可以设置定点信号的类型,这样就可以比较定点仿真与浮点仿真的区别。并且可以生成HDL文件,或者网表,可以在ISE中进行调用。或者直接生成比特流下载文件。能够加快DSP系统的开发进度。
1.逻辑抽象:根据实际逻辑问题的因果关系确定输入、输出变量,并定义逻辑状态的含义;
产品要解决什么问题,预测未来3-5年的走势和趋向,确保芯片是有卖点和前瞻性,面向未来。
在此项目中,我们将使用 MATLAB Simulink 和 HDL 编码器创建自定义 IP -- AWB。
导读:最近几年,FPGA越来越火。微软甚至曾表示要数据中心里,使用FPGA“代替”CPU。FPGA英文全称是Field Programmable Gate Array,即现场可编程门阵列。本文就为你科普一下FPGA的一般设计流程。
项目期望:用户访问服务器获取注册页面,通过注册页面注册账号,注册成功后在登录页面进行登录。登录成功后进入游戏大厅,在游戏大厅中进行匹配对战,匹配成功,将进入游戏房间内与对手进行实时对战和实时聊天。
在数字电路前端设计流程中,前端仿真用于验证电路设计逻辑功能的正确性,常用的仿真软件有商业软件VCS和ModelSim(现在好像叫Questa了),国外大学里教学也常用一些开源软件,如iverilog和verilator。
这里的面积指一个设计消耗 FPGA/CPLD 的逻辑资源的数量,对于 FPGA 可以用消耗的 FF(触发器)和 LUT(查找表)来衡量,更一般的衡量方式可以用设计所占的等价逻辑门数。
本节讲解如何讲讲代码(Matlab、HDL、C/C++)导入到 System Generator 并使用。
Verilog HDL是一种硬件描述语言(HDL:Hardware Description Language),它是以文本形式来描述数字系统硬件的结构和行为的语言。 世界上最流行的两种硬件描述语言是Verilog HDL和VHDL。
领取专属 10元无门槛券
手把手带您无忧上云