我的FPGA自学笔记
文章平均质量分 78
南邮点灯工程师
自学FPGA的大学渣
展开
-
Verilog语法基础HDL Bits训练11:Counters
设计一个缓慢的计数值为10的从0到9的十进制计数器,要求在slowena信号为高电平的时候计数值进行计数,否则保持原来的计数状态。设计一个计数值为10的十进制计数器,计数值从1到10,且有同步复位。设计一个计数值为10的十进制计数器,从0计数到9,并且有同步复位。设计一个四位的计数器,从0计数到15,并且有同步复位。设计一个12小时计的时钟。...原创 2022-08-16 17:03:12 · 867 阅读 · 0 评论 -
Verilog语法基础HDL Bits训练10
是一个锁存器,一般在Verilog中不是故意设计出来的锁存器是错误的,要注意避免锁存器的出现,因为锁存器不仅仅会使设计出现意料之外的错误,也会大幅占用资源。在D触发器的基础上加一个同步复位控制,根据时钟的变化而起作用。在D触发器中加入同步复位,要求复位时数值为十六进制的34。一个简单的D触发器,输出q在每个时钟上升沿根据d变化。边沿检测,具体操作就是打一拍,然后做与运算。在D触发器中加入异步复位。一个门电路加一个D触发器。一个异步复位的D触发器。一个同步复位的D触发器。创建8个DFF触发器。......原创 2022-08-12 13:52:35 · 887 阅读 · 0 评论 -
Verilog语法基础HDL Bits训练 09
卡诺图化简为(要注意看外一行的数字,有陷阱)本小节讲通过卡诺图化简得出表达式。原创 2022-08-07 21:02:36 · 280 阅读 · 0 评论 -
Verilog语法基础HDL Bits训练 08
使用已经编辑好的一位BCD码加法器实例化进行四位BCD码加法器设计。设计一个全加器,相比较于半加器,全加器有一个进位输入。设计一个有符号数的加法器,同时判断是否溢出。设计一个一百位的二进制加法器。...原创 2022-07-29 21:56:16 · 895 阅读 · 0 评论 -
Verilog语法基础HDL Bits训练 07
256个这么多的选择项,case就不能用了,使用变量索引可以完成任务,同时在使用时注意变量和向量的位宽。使用位拼接法使选择更灵活。设计一个十六选一多路器。设计一个二选一多路器。原创 2022-07-29 19:25:25 · 851 阅读 · 0 评论 -
Verilog语法基础HDL Bits训练 06
本题可以硬解,即用case语句列出所有可能,当然,本题想要考察的是根据真值表列出逻辑表达式的知识点,推荐使用卡诺图法化简。本题需要使用前两题的语句做铺垫。看仿真波形图就可以看明白代码啦。制作一个恒温器的控制单元。...原创 2022-07-25 22:54:41 · 529 阅读 · 0 评论 -
Verilog语法基础HDL Bits训练 05
本次的几道例题重点使用到了for循环和generate&for循环语句,受益匪浅。原创 2022-07-24 21:27:24 · 563 阅读 · 0 评论 -
Verilog语法基础HDL Bits训练 04
这是锁存器的错误示范,一般情况下,锁存器使我们不想要的,因此在编写if语句时,要加上else语句保证输出不会被锁存。分别使用连续赋值语句和always块来实现与门。使用时钟控制的always块。建立一个二选一多路器。...原创 2022-07-22 16:42:33 · 355 阅读 · 0 评论 -
FPGA之红外遥控
红外遥控系统由红外发射部分和红外接收部分组成。发射部分由遥控案件、编码以及调制电路、红外发光二极管等组成。接收部分由光敏二极管、解调电路等组成,最后将解调的信号输入FPGA内进行解码输出。使用的红外接收头要购买一体化红外接收头...原创 2022-07-21 14:44:45 · 2200 阅读 · 2 评论 -
Verilog语法基础HDL Bits训练 03
实例化三个模块,并且使用always块和case语句进行选择输出。有选择性的输出,用case语句和二选一判断语句都可以。在代码内部实例化模块,这在顶层文件代码中尤为多见。实例化三个模块,注意端口的连线。...原创 2022-07-21 00:19:00 · 397 阅读 · 0 评论 -
Verilog语法基础HDL Bits训练 02
实现将a和b按位或赋值给out_or_bitwise,将a和b逻辑或赋值给out_or_logical,将a和b按位非、非b赋值给高三位out_not、非a赋值给第三位out_not。Vectors向量,定义一组向量,可以整体赋值给另一个变量,也可以拆分为单个位数据赋值。声明向量,需要说明的是[70]w表示最高位是w[7],而[07]w最高位是w[0];未打包和打包阵列,变量名前面是位宽,后面是深度,可以近似理解为c语言中的二维数组。实现将一个八位数据扩展为32位数据,数据符号不改变。...原创 2022-07-18 18:38:06 · 651 阅读 · 0 评论 -
Verilog语法基础HDL Bits训练 01
在我学习FPGA之前,看过好多up主讲解怎样学习FPGA,在他们的视频中,总是能不约而同地能看到一个网站的名字HDLBits,这是一个训练Verilog语法的网站,可以对语法基础起到很正向的作用,因此我在今天开始,每天都会将HDLBits中的练习题整理出来,并附上一些自己的理解,如有表述错误,请敬请见谅,并且在评论区告诉我~...原创 2022-07-17 17:43:16 · 1415 阅读 · 0 评论 -
Modelsim报错“Instantiation of ‘****‘ failed. The design unit was not found.”
使用Modelsim进行仿真时出现错误:Instantiation of ‘****’ failed. The design unit was not found.在进行仿真测试文件编写时,引用了除被仿真的主体文件之外的其他模块,比如IP核、仿真模型等,出现报错:Instantiation of ‘****’ failed. The design unit was ...原创 2022-07-13 16:08:36 · 5548 阅读 · 6 评论 -
FPGA之使用matlab生成正弦、方波、三角、锯齿(四种波形)并产生mif文件
使用matlab生成信号发生器所需要的rom的mif文件原创 2022-07-13 12:19:18 · 4561 阅读 · 1 评论 -
FPGA之简易DDS信号发生器设计
设计一个能产生频率可变、相位可调的能产生正弦波、三角波、方波、锯齿波的信号发生器。DDS 是直接数字式频率合成器(Direct Digital Synthesizer)的英文缩写,是一项关键的数字化技术。与传统的频率合成器相比,DDS 具有低成本、低功耗、高分辨率和快速转换时间等优点,广泛使用在电信与电子仪器领域,是实现设备全数字化的一个关键技术。作为设计人员,我们习惯称它为信号发生器,一般用它产生正弦、锯齿、方波等不同波形或不同频率的信号波形,在电子设计和测试中得到广泛应用。...原创 2022-07-13 12:12:39 · 16311 阅读 · 6 评论 -
FPGA之简易电压表设计
使用FPGA开发板及板载AD模块设计一个测量范围为-5V~5V的电压表,并使用数码管显示出来原创 2022-07-09 18:21:09 · 2401 阅读 · 2 评论 -
使用matlab使图片生成.mif文件
在使用fpga进行显示图片时,需要使用ROM IP核来进行图片的mif文件储存,本文将使用matlab生成图片的mif文件原创 2022-07-09 17:34:46 · 2774 阅读 · 1 评论 -
FPGA之简易频率计的设计
频率测量在电子设计领域和测量领域经常被使用,本篇文章将使用基于等精度测量的方法设计一个建议频率计,计算出输入信号的频率并显示在数码管上。原创 2022-07-07 11:41:49 · 5889 阅读 · 5 评论 -
FPGA基于串口RS232的数据收发及数据回环实验
在之前的文章中,我已经分别做过一次RS232的数据接收和数据发送了,本次用更容易理解的方式重新编写两种代码以及进行数据回环实验。以及学习使用In-System Sources & Probes Editor工具和串口调试工具进行调试。...原创 2022-07-06 12:16:01 · 2219 阅读 · 0 评论 -
FPGA之蜂鸣器播放音乐《花海》
蜂鸣器是我们常用的电子元器件,本文使用无源蜂鸣器进行音乐《花海》的播放原创 2022-07-04 22:05:48 · 15566 阅读 · 5 评论 -
FPGA按键消抖—两种按键消抖形式的对比
按键消抖是FPGA学习中的一个必备的基础知识模块,在我的学习过程中,共碰到过两种按键消抖模块,分别是在**《小梅哥FPGA自学笔记》**和**《FPGA Verilog开发实战指南》**之中,两种方式的实现有着略大的不同,下面分别列举两种方式。**如果赶时间,可以跳过第一种方式,之间看第二种。**...原创 2022-07-02 10:49:23 · 3691 阅读 · 0 评论 -
FPGA之阻塞赋值与非阻塞赋值的理解
对于阻塞赋值和非阻塞赋值,我在学校电工电子课上和之前的学习中有过粗浅的了解,在这之前的理解只是:组合逻辑只能用阻塞赋值,时序逻辑只能用非阻塞赋值。但经过学习,我对其有了更深的理解,并且我认为,深入了解其中的概念和用法是学习中必不可少的一步。对于概念可能初次接触会觉得云里雾里不知所云,上面(一、概念)部份可以不理解,但是加粗部分应该通透。下面进行实例分析,便可以更好的理解了。结果为:a=2;b=2;c=2;可以理解为是顺序执行。结果为:a=2;b=2;c=1;可以理解为是并行执行。RTL视图为原创 2022-07-01 12:18:12 · 2181 阅读 · 0 评论 -
FPGA之实现UART串行异步通信-一字节数据接收
使用FPGA自带USB转串口实现指定波特率的单个数据的发送。1、波特率:每秒钟可以发送或接收的数据比特的个数,发送和接收的设备需要波特率一致才可,常见的波特率有9600、19200、38400、57600等。2、一帧数据:包含一位起始位;1或1.5或2位停止位;5到8位数据位;1位或没有奇偶校验位。在RS232标准中,最常用的配置是使用8位数据位、1位停止位、1位起始位、无奇偶校验位进行,共十位数据。3、UART发送一字节数据时序图:串口接收和串口发送方式略有不同,工业情况下,常常有强电磁干扰,导致原创 2022-06-30 11:06:13 · 1141 阅读 · 0 评论 -
FPGA之实现UART串行异步通信-单个数据的发送
`使用FPGA自带USB转串口实现指定波特率的单个数据的发送。1、波特率:每秒钟可以发送的数据比特的个数,发送和接收的设备需要波特率一致才可,常见的波特率有9600、19200、38400、57600等。2、一帧数据:包含一位起始位;1或1.5或2位停止位;5到8位数据位;1位或没有奇偶校验位。在RS232标准中,最常用的配置是使用8位数据位、1位停止位、1位起始位、无奇偶校验位进行,共十位数据。3、UART发送一字节数据时序图:不工作情况下串口扫描到的为高电平,当检测到起始位(低电平)开始进行数据原创 2022-06-28 13:15:59 · 940 阅读 · 0 评论 -
FPGA仿真时使用任务及随机函数编写激励测试文件
有关按键的仿真激励模型原创 2022-06-26 22:06:01 · 1300 阅读 · 0 评论