自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

贾小瑞的博客

数字前端设计入门级选手

  • 博客(23)
  • 收藏
  • 关注

原创 [FPGA入门笔记](十四):IIC总线控制原理与Verilog实现

简介今天购买了AXLINX AX7020的开发板,从今天开始每一个例程都要做文档记录,为自己加油。本实验,基于ALINX AX7020开发板,芯片为xc7z020clg400-2。开发板输入时钟为50MHz。参考文章本文主要参考了以下两篇文章,并在其基础上加以改进和完善,加入了作者自己的理解。博客一:【IIC协议原理以及主机、从机Verilog实现】博客二:【接口时序】6、IIC总线的原理与Verilog实现一、IIC协议介绍IIC(Inter-Integrated Circuit)总线是一

2020-12-09 21:01:47 2106 1

原创 [FPGA入门笔记](十三):SPI同步串行总线协议及控制器设计

简介今天购买了AXLINX AX7020的开发板,从今天开始每一个例程都要做文档记录,为自己加油。本实验,基于ALINX AX7020开发板,芯片为xc7z020clg400-2。开发板输入时钟为50MHz。一、SPI协议介绍**SPI(serialperipheralinterface)**是一种同步串行通信协议,由一个主设备和一个或多个从设备组成,主设备启动与从设备的同步通信,从而完成数据的交换。SPI是Motorola公司提出的一种同步串行数据传输标准,是一种高速的,全双工,同步的通信总线,在

2020-12-02 19:28:24 3056 4

原创 [FPGA入门笔记](十二):PS/2同步串口控制

简介今天购买了AXLINX AX7020的开发板,从今天开始每一个例程都要做文档记录,为自己加油。本实验,基于ALINX AX7020开发板,芯片为xc7z020clg400-2。开发板输入时钟为50MHz。参考文档:verilog语言的ps2键盘驱动设计PS2键盘控制及短按、长按概述PS2键盘也是一个经典的实验,可能很多人接触如何对通信协议、时序编程就是从这个实验开始学习的。USB键盘已经很普及,现在市场上还是有一些USB转PS2的转接头,还有一些转换芯片。这个实验虽然简单,不过不知道您有考虑

2020-12-01 14:56:13 1111

原创 Verilog中的奇偶校验

参考文章:Verilog中的奇偶校验在用Verilog写UART通信的逻辑代码时,遇到了"对数据做奇偶校验"的需求,网上一搜就得到了解决办法。感谢万能的网友之余,我还是想把Verilog中奇偶校验的原理用更加易于理解的方式描述一遍,故发此文。奇偶校验的定义如下图所示:对数据做奇偶校验的Verilog模块代码如下:module parity_check( input clk, input rst_n, input [7:0] d

2020-12-01 11:30:18 8291 2

原创 [FPGA入门笔记](十一):UART串口通信实验

简介今天购买了AXLINX AX7020的开发板,从今天开始每一个例程都要做文档记录,为自己加油。本实验,基于ALINX AX7020开发板,芯片为xc7z020clg400-2。开发板输入时钟为50MHz。1.UART协议介绍UART是一种通用串行数据总线,用于异步通信。UART能实现双向通信,在嵌入式设计中,常用于主机与辅助设备通信。UART包括RS232、RS449、RS423等接口标准规范和总线标准规范,即UART是异步串行通信口的总称。而RS232等式对应各种异步串行通信口的接口标准和总线

2020-12-01 11:23:51 2638

原创 [FPGA入门笔记](六):基本存储单元ROM学习

简介今天购买了AXLINX AX7020的开发板,从今天开始每一个例程都要做文档记录,为自己加油。本实验,基于ALINX AX7020开发板,芯片为xc7z020clg400-2。开发板输入时钟为50MHzFPGA本身是SRAM架构的,断电之后,程序就消失,那么如何利用FPGA实现一个ROM呢,我们可以利用FPGA内部的RAM资源实现ROM,但不是真正意义上的ROM,而是每次上电都会把初始化的值先写入RAM。本实验将为大家介绍如何使用FPGA内部的ROM以及程序对该ROM的数据读操作。ROM基本原

2020-12-01 10:31:27 810

原创 [FPGA入门笔记](十):按键消抖实验

简介今天购买了AXLINX AX7020的开发板,从今天开始每一个例程都要做文档记录,为自己加油。本实验,基于ALINX AX7020开发板,芯片为xc7z020clg400-2。开发板输入时钟为50MHz。按键消抖实验作为FPGA的初学者,完成加法器设计流水灯实验后,肯定有想过能否设计一个当某一个被按下后,相应的LED被点亮;再次按下后,LED熄灭,按键控制LED亮灭。最直观的想法就是去采按键的下降沿,当下降沿到来的时候就让LED亮起,再次采到下降沿的时候就对LED取反。然而,当试图去设计电路实现

2020-11-24 17:00:21 1429

原创 [FPGA入门笔记](九):序列检测实验,Moore和Mealy状态机对比

简介今天购买了AXLINX AX7020的开发板,从今天开始每一个例程都要做文档记录,为自己加油。本实验,基于ALINX AX7020开发板,芯片为xc7z020clg400-2。开发板输入时钟为50MHz。序列检测器设计序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。**关键步骤:**正确码的接收必须是连续的,要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位

2020-11-23 13:19:15 2364 1

原创 [FPGA入门笔记](九):有限状态机学习,三段式FSM代码编写

简介今天购买了AXLINX AX7020的开发板,从今天开始每一个例程都要做文档记录,为自己加油。本实验,基于ALINX AX7020开发板,芯片为xc7z020clg400-2。开发板输入时钟为50MHz。有限状态机可以实现对外部激励和当前状态的有效相应机制,在数字通信、自动化控制、指令集设计等方面均有重要作用,应用广泛。当前的程序化设计方法使得有限状态机的设计得以极大简化,从过去数字电路教学中较复杂的设计内容演变为基础教学内容,提升了设计效率,这也符合行业对于数字电路系统设计的需求。定义:有限状

2020-11-22 21:34:45 516

原创 [FPGA入门笔记](七):基本存储单元ROM学习

简介今天购买了AXLINX AX7020的开发板,从今天开始每一个例程都要做文档记录,为自己加油。本实验,基于ALINX AX7020开发板,芯片为xc7z020clg400-2。开发板输入时钟为50MHz单口和双口指的是地址线数据线的组数。单口RAM只有一组数据线和地址线,读写不能同时进行双口RAM有两组地址线和数据线,读写可以同时进行...

2020-11-22 21:09:27 570

原创 [FPGA入门笔记](八):基本存储单元FIFO学习

简介今天购买了AXLINX AX7020的开发板,从今天开始每一个例程都要做文档记录,为自己加油。本实验,基于ALINX AX7020开发板,芯片为xc7z020clg400-2。开发板输入时钟为50MHzFIFO是FPGA应用当中非常重要的模块,广泛用于数据的缓存,跨时钟域数据处理等。学好FIFO是FPGA的关键,灵活运用好FIFO是一个FPGA工程师必备的技能。本章主要介绍利用XILINX提供的FIFO IP进行读写测试。实验原理FIFO: First in, First out代表先进的数

2020-11-22 21:09:09 794

原创 [FPGA入门笔记](六):基本存储单元RAM学习

简介今天购买了AXLINX AX7020的开发板,从今天开始每一个例程都要做文档记录,为自己加油。本实验,基于ALINX AX7020开发板,芯片为xc7z020clg400-2。开发板输入时钟为50MHz单口和双口指的是地址线数据线的组数。单口RAM只有一组数据线和地址线,读写不能同时进行双口RAM有两组地址线和数据线,读写可以同时进行一、单端口RAM设计RAM存储器是一种可以暂时存储数据或信号的常用器件,它通常由锁存器阵列构成。在时钟上升沿,采集地址,输入数据,执行相关控制信息。如果写使

2020-11-20 09:50:36 753

原创 [FPGA入门笔记](五):时序逻辑基础

一、锁存器 latch—对脉冲电平敏感,在时钟脉冲的电平作用下改变状态锁存器是电平触发的存储单元,数据存储的动作取决于输入时钟(或者使能)信号的电平值,当锁存器处于使能状态时,输出才会随着数据输入发生变化。(简单地说,它有两个输入,分别是一个有效信号EN,一个输入数据信号DATA_IN,它有一个输出Q,它的功能就是在EN有效的时候把DATA_IN的值传给Q,也就是锁存的过程);D锁存器E=1时,Q=D;E=0时,Q不变。应用场合:数据有效滞后于时钟信号有效,这意味着时钟信号先到,数据信号后到。在某

2020-11-19 22:25:49 338

原创 [FPGA入门笔记](四):倍频器和分频器的实现

简介今天购买了AXLINX AX7020的开发板,从今天开始每一个例程都要做文档记录,为自己加油。本实验,基于ALINX AX7020开发板,芯片为xc7z020clg400-2。开发板输入时钟为50MHz先上代码``timescale 1ns/1psmodule frequency_m_d(input clk,output multiplier_clk,output reg divider_clk);//multiplier_clkreg temp_mul;ass

2020-11-19 22:20:43 8075 2

原创 Verilog使用组合逻辑求最小值

任务需求:用组合逻辑一拍求出最小值req_flag:标志系统正在执行的任务数,time_win:标志每一个任务所用时间值time_flag:标志各个任务中使用时间最短的任务设计思想:①求最小值,从二进制数的高位到低位依次比较;②标志位起到屏蔽作用;例如比较8个四位二进制数:1000;1010;0101;1100;0100;0001;0000;1000;假设有效位标志数req_flag=11110000,即前四个数位有效数据(正在运行的,参与最小值比较),后四位数据无效(不参

2020-11-19 14:54:12 5266 6

原创 vivado与modesim联合仿真

① 首先,在Modelsim安装路径中新建一个名为Vivado2018_lib的文件夹(路径和文件名可改),如图1所示。D:\Vivado\modelsim\vivado201803_lib② 在Vivado中设置Modelsim(即第三方仿真工具)的安装路径。在Vivado菜单中选择“Tools”——>“3rd Party Simulator”,在“Modelsim install path”栏中输入或选择Modelsim工具的安装路径,在“Modelsim Library Paths”中输入库

2020-11-18 16:11:00 450

原创 TimeGen 软件的使用

官网 http://www.xfusionsoftware.com/timegen 是一款实用的画时序图工具,软件提供了直观的用户界面和丰富实用的绘图工具,可以帮助用户轻松绘制各种序列图、顺序图、循序图等,同时timegen还拥有实用的快捷键操作功能,能够让你绘图时序图更加轻松,且可以自由设置各个文本框的属性字体样式、字体 大小和颜色等。下面简单介绍一下他的应用:主要参考:https://blog.csdn.net/qq_25144391/article/details/104423988?ops_

2020-11-18 16:10:50 1189

原创 [FPGA入门笔记](一):点亮LED灯和编写测试文件

#创建工程基于ALINX AX7020开发板,芯片为xc7z020clg400-2创建工程添加代码`timescale 1ns/1ps//////////////////////////////////版本v1,四个等同事闪烁,间隔1秒。//////////////////////////////module leds_v1( input clk, input [3:0] btns_i, output[3:0] leds_o );

2020-11-18 16:10:25 1230

原创 [FPGA入门笔记](一):LED灯添加ILA逻辑分析仪

一、在线逻辑分析仪(ILA)前面介绍了仿真和下载,但仿真并不需要程序烧写到板子,是比较理想化的结果,下面介绍 Vivado 在线调试方法,观察内部信号的变化。Vivado 有内嵌的逻辑分析仪,叫做 ILA,可以用于在线观察内部信号的变化,对于调试有很大帮助。在本实验中我们观察 count 和 leds的信号变化。如下图所示,ILA占用一部分FPGA内部逻辑资源,可看做一个模块,被设计模块所调用。ILA使用时需要与下载器连接,将FPGA的测试信号传回到vivadoIDE中,显示波形以供调试。运行过程如下

2020-11-18 16:10:16 763

原创 [FPGA入门笔记](二):LED呼吸灯实验

1、简介今天购买了AXLINX AX7020的开发板,从今天开始每一个例程都要做文档记录,为自己加油。本实验,基于ALINX AX7020开发板,芯片为xc7z020clg400-2。项目介绍:呼吸灯,就是想人们呼吸频率的一种led灯亮灭的一种表现形式。过程是慢慢变亮,然后变亮以后又慢慢变灭的一种过程。很多初学者会认为硬件逻辑语言怎么能控制电流的高低呢,让灯有多亮就调多亮,所以觉得不好实现,其实不用担心,呼吸灯捅破窗户纸就知道,其实是一个很简单的一个小项目,下面我将一步一步的讲解,并且实现。PWM

2020-11-18 16:10:07 2143

原创 [FPGA入门笔记](三):锁相环PLL 实验

简介今天购买了AXLINX AX7020的开发板,从今天开始每一个例程都要做文档记录,为自己加油。本实验,基于ALINX AX7020开发板,芯片为xc7z020clg400-2。很多初学者看到板上只有一个 50Mhz 时钟输入的时候都产生疑惑,时钟怎么才 50Mhz?如果要工作在 100Mhz、150Mhz 怎么办? 其实在很多 FPGA 芯片内部都集成了 PLL,其他厂商可能不叫 PLL,但是也有类似的功能模块,通过 PLL 可以倍频分频,产生其他很多时钟。本实验通过调用 PLL IP core

2020-11-18 16:08:43 2324

原创 锁相环(PLL)原理讲解

背景知识在通信机等所使用的振荡电路,其所要求的频率范围要广,且频率的稳定度要高。无论多好的LC振荡电路,其频率的稳定度,都无法与晶体振荡电路比较。但是,晶体振荡器除了可以使用数字电路分频以外,其频率几乎无法改变。如果采用PLL(锁相环)(相位锁栓回路,PhaseLockedLoop)技术,除了可以得到较广的振荡频率范围以外,其频率的稳定度也很高。此一技术常使用于收音机,电视机的调谐电路上,以及CD唱盘上的电路。PLL(phase-locked loop),即锁相环。是 FPGA 中的重要资源。由于一个复

2020-11-18 09:46:03 33949

原创 MD5是什么?为什么很多压缩文件上都有这个东西?

@MD5是什么?为什么很多压缩文件上都有这个东西?有时候我们在网上下载文件的时候,会碰到这样一种情况,网站不仅给出了文件的大小,还给出了一个MD5码,这个MD5码是什么东西。MD5是什么MD5是MD5消息摘要算法的简称(英语:MD5 Message-Digest Algorithm),是一种广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(即哈希值),用于确保信息传输的完整...

2020-01-04 18:32:39 22428

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除