![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
FPGA学习篇
文章平均质量分 79
本专栏针对FPGA的新手,主要目标是进行简单的数字系统设计,能够驱动一些简单的外设,掌握简单驱动的编写调用。
Vuko-wxh
道阻且长 行则将至。
展开
-
GD(兆易创新)系列FLASH进行FPGA和ZYNQ配置固化相关操作
本文主要针对使用GD(兆易创新)系列的FLASH做启动配置片时,遇到的相关问题进行简单整理复盘,避免后人踩坑。本人操作固化芯片型号为:ZYNQ7045、690T(复旦微替代型号V7 690T)。原创 2023-04-19 13:32:59 · 5764 阅读 · 6 评论 -
FPGA-SDRAM设计学习(三)初始化、模式寄存器、激活和读命令
不多啰嗦,接着上文继续读文档吧:初始化SDRAM上电后必须初始化,初始化的过程:上电、时钟稳定、DQM高、CKE高100微秒等待,期间除了INHIBIT或NOP命令,其他命令都不能有。至少1个INHIBIT或NOPPRECHARGE命令两个自动刷新命令配置模式寄存器对照时序图操作:上面出现了一些定义的时间,我们也可以在文档中看到具体内容:配置模式寄存器The mode...原创 2019-12-02 22:37:43 · 1506 阅读 · 0 评论 -
FPGA-SDRAM设计学习(二)具体操作详细介绍(文档阅读)
学习内容SDRAM的具体操作详细介绍学习所需IS42S1_datasheet(给出网盘,失效留言)引脚说明A0-A11A0-A11是在活动期间采样的地址输入(行地址A0-A11)和读/写命令(a0 - a7与A10定义自动充电)。在预充电命令期间采样A10,以确定是否要对所有BANK进行预充电(A10高)或由BA0、BA1(低)选择BANK。地址输入还在加载模式寄存器命令期间提供操作代...原创 2019-12-01 22:49:21 · 1053 阅读 · 0 评论 -
FPGA-SDRAM设计学习(一)简单概念和操作介绍
之前学过DDR然后断更了,现在买了个明德扬的视频课来重新学习下,付费就是赚便宜,开源骚客的也挺好,大家自己看着选择吧,个人听明德扬比较习惯(没收广告费哈哈哈)SDRAM理解:下图可以帮助大家理解SDRAM是原理,个人理解很像程序语言的数组的概念,其实就是把一个存储器分成了几个bank,一个bank里面可以存储一些数据,这里对每个bank的读写存储是给出了行列地址进行索引。...原创 2019-11-20 22:36:18 · 926 阅读 · 0 评论 -
FPGA-利用SPI总线进行flash操作
first 感谢开源骚客Kevin的视频讲解,需要了解的话自行付费(不算广告吧,,)学习操作之前,要先清楚概念。要了解什么是flash:FLASH闪存是属于内存器件的一种,"Flash"。闪存则是一种非易失性( Non-Volatile )内存,在没有电流供应的条件下也能够长久地保持数据,其存储特性相当于硬盘,这项特性正是闪存得以成为各类便携型数字设备的存储介质的基础。各类 DDR...原创 2019-09-27 21:43:20 · 3419 阅读 · 3 评论 -
FPGA-控制舵机实现
1.舵机的工作原理舵机接出来有三根线,一根红色的是电源线,一根棕色的是地线,还有一根橘黄色的是信号线。舵机的工作电压在4.8V到6V,给它接的电源不同,会影响舵机转动的速率以及舵机的输出力矩。我们的板子上面的供电是5V电压。舵机里面是一个步进电机和一个基准电路以及其他的一些部件,信号线进来不同的信号时会和基准电路进行比较,从而来决定舵机的转动方向。对于舵机的工作...原创 2019-07-31 12:35:11 · 4363 阅读 · 10 评论 -
FPGA-SDRAM基本原理
SDRAM是做嵌入式系统中,常用是的缓存数据的器件。基本概念如下(注意区分几个主要常见存储器之间的差异):SDRAM(Synchronous Dynamic Random Access Memory),同步动态随机存储器。同步是指 Memory工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证存储的数据不丢失,因为SDRAM中存储数据是通过电...原创 2019-04-23 21:31:06 · 1707 阅读 · 0 评论 -
FPGA-LCD1602显示-第一次尝试使用task写可综合程序
先上接线图:VL:对比度,正常接一个1K的电阻就好了,如果电阻过大会出现一个个黑方块,而你要显示的就看不清楚了,反之如果电阻过小,就会根本显示不出东西,亮亮的一片。也可以接1K的电位器实现改对比度的功能。RS:数据指令选择端: 0 写指令 1 读指令RW:读写选择端 0 写指令/数据1 读状态/数据EN:使能端:下降沿使得指令数据生效这些都是控制端口,...原创 2019-04-11 15:13:38 · 637 阅读 · 0 评论 -
FPGA-DA模块demo
DA是数字信号转换为模拟信号的模块,应用的话,最近在准备电赛,可以通过主控芯片给的数字信号来模拟出信号源(后面博文会讲)(但是不推荐使用,因为信号的噪声太多,经过运放后基本不可以使用。。。准备比赛的话还是选高精度是DA/DA吧)DA百度百科DA这里用的是iic协议,在之前的博文中也讲过iic协议的一些编写方法,下面就直接贴代码,我的测试是用开发板的da进行呼吸灯的显示,比较简单,不多说了...原创 2019-04-03 18:43:23 · 2935 阅读 · 0 评论 -
FPGA-超声波测距数码管显示系列(包含进制转换、均值滤波)
首先在前文已经介绍过了超声波模块的原理和使用,之前没有介绍回响脉冲的计数问题,这次简单说一下吧,每隔一秒发一次触发信号,当触发信号来了后,每隔10Us进行一次脉冲的计数,计算出每秒的脉冲数,这时候就有一个问题,怎么根据回响信号进行计数呢?1、首先我们可以看到回响信号是根据距离成正比的,而且脉冲计数是每隔10us进行一次脉冲方便进行距离的计算(精度2mm 决定)2、当本次回响脉...原创 2019-03-27 00:33:31 · 1491 阅读 · 13 评论 -
FPGA-片内ROM FIFO RAM连用
我做了个利用rom进行同步fifo的读写并把读出的数据输出到ram里并读出数据检验数据的正确性直接贴代码吧,没什么难度:都是IP核的应用熟悉下流程`timescale 1ns / 1psmodule rom_fifo_controller(clk,rst_n,fifo_full,fifo_empty,ram_rddb ); input clk; input rst_n;/...原创 2019-03-14 00:49:34 · 879 阅读 · 0 评论 -
FPGA-FIFO核的调用
FIFO存储器FIFO( First Input First Output)简单说就是指先进先出。由于微电子技术的飞速发展,新一代FIFO芯片容量越来越大,体积越来越小,价格越来越便宜。作为一种新型大规模集成电路,FIFO芯片以其灵活、方便、高效的特性,逐渐在高速数据采集、高速数据处理、高速数据传输以及多机处理系统中得到越来越广泛的应用。中文名 FIFO存储器外文名 ...原创 2019-02-17 17:34:47 · 2076 阅读 · 0 评论 -
FPGA-炼狱传奇-三态门之战
我们的一些总线协议如IIC等,要求信号为三态类型,也就是我们所说的输入输出(inout)类型。接下来,我们就来看一下这类信号的具体用法,输入输出类型,顾名思义就是既可以作为输入,也可以作为输出,我们可以通过如下代码学习这类信号的赋值驱动方式。当开关关闭(flag==0),sda总线放开,处于高阻状态,此时外部数据可以输入,相当于我们模块的输入。当开关打开(flag==1),sda等于s...转载 2019-02-14 19:29:40 · 319 阅读 · 0 评论 -
FPGA-使用RTC时钟芯片进行时钟读取(数码管显示)
做时钟显示如果用单片机做,会产生很大的累积误差,本程序采用时钟芯片PCF8563 一:芯片主要电气特性: 1)大工作电压范围:1.0~5.5V 2)400KHz 的 I2C 总线接口(VDD=1.8~5.5V 时)。 时钟频率最大400KH 3)i2C 总线从地址:读,0A3H;写,0A2H . 二:管脚 电路接线图: top.v:mod...原创 2019-02-14 16:46:15 · 3350 阅读 · 1 评论 -
FPGA-RAM核的使用(详细)
我们学习了ROM,接下来我们一起来学习另一个IP核的使用—片内存储器RAM。首先,还是新建一个工程然后建立起顶层文件接下来我们需要调出RAM,点击TOOLS->点击NEXT在Memory Compiler中选择一个单口RAM,设置文件名称为my_ram点击NEXT设置存储空间为1024*8点击NEXT取消掉输出端的寄存器...转载 2019-02-09 21:12:06 · 12701 阅读 · 6 评论 -
FPGA-ROM存储器IP核使用
(转载至至芯科技的炼狱之战)首先,还是新建一个工程(赛灵思同样适用)然后建立起顶层文件由于ROM是一种只读存储器,所以我们需要一个初始化文件来配置ROM中的存储数据,因此接下来,我们需要首先建立这样的配置文件,在Quartus中,配置文件可以选择MIF文件,具体操作如下点击File->New弹出如下界面我们选择 ,点击OK,弹出如下界面通过该界...转载 2019-02-09 20:43:18 · 10435 阅读 · 14 评论 -
FPGA-RAM核的使用及调试
百度百科:RAM随机存取存储器(random access memory,RAM)又称作“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器。这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。...原创 2019-02-09 20:54:58 · 1790 阅读 · 0 评论 -
FPGA-基于chipscope的超声波测距调试
调整chipscope数据顺序:(引荐博文)https://blog.csdn.net/rill_zhen/article/details/8115756引言索性再破例一下,成个系列也行。 内容组织1.建立工程 2.插入及配置核 2.1运行Synthesize 2.2新建cdc文件 2.3 ILA核的配置 3. Implement and generate...原创 2019-02-08 23:15:18 · 547 阅读 · 0 评论 -
FPGA-基于ROM的静态图片的读取
模块设计思路:1、 ROM ip核2、qvga屏幕显示驱动module qvga_controller(clk,rst_n,lcd_light_en,lcd_clk,lcd_hsy,lcd_vsy,lcd_r,lcd_g,lcd_b,rom_db,rom_ab ); input clk; input rst_n; input [15:0] rom_db; ou...原创 2019-01-30 00:34:18 · 2920 阅读 · 2 评论 -
FPGA-SRAM读写测试
之前一直没太搞懂这个SRAM 是用来做什么的,现在做完了vga的觉得这个SRAM的作用很大,说白了这就是个储存器,而在我vga的字符的读取显示中,难度最大的也是在存储器上,之前有人建议我在做的时候改用ram可以实现字符的动态显示而不是局限于自己独自开辟的显示区域,下面我就先从SRAM入手,好好的介绍下这几个存储器(最近更ROM RAM SRAM )在有数据传输的地方就会有存储器SRAM...原创 2019-02-07 23:15:47 · 14344 阅读 · 5 评论 -
FPGA-基于UART的QVGA显示(二)(实现PC端发送字母数字汉字的分别显示通过按键可以删除字符)
基础:由PC通过UART发送数据在VGA显示。数据可以为字母,数字,汉字(任选10个字),VGA分为左右两个区域,输入字母或者数字时在VGA左边显示,输入汉字时在VGA右边显示。发挥:有删除功能,可通过按键删除显示的数字,字母或者汉字。左边的按键按下字母或者数字删除,右边的按键按下汉字删除。每次仅可删除一个字符。举例:VGA左侧显示FPGA 时,按下左边的键,VGA显示FPG,再按一下,显示F...原创 2019-01-29 15:51:24 · 1279 阅读 · 0 评论 -
FPGA-LCD字符显示驱动
显示字符驱动1.用字符取模软件取模00000000;00000000;00000000;00000000;00000000;00000000;00000000;00000000;00000000;00000000;00000000;0003C000;0003C000;0003C000;0007E000;0007E000;0006E000;0006E000...原创 2019-01-17 23:32:02 · 3015 阅读 · 2 评论 -
FPGA-LCD基础驱动
LCD的接口时序波形如图所示。VSYNC是场同步信号,低电平有效,从时序图可以看出,VSYNC是每一场(即也可以理解为每送一幅完整图像)的同步信号;与此类似,HSYNC是行同步信号,也是在每一行数据传输的开始产生几个时钟周期的低脉冲。这两个信号用于同步当前的数据信号,根据固定的脉冲约定,我们在某些时钟上升沿前将图像数据送到数据总线上供LCD内部锁存。LCD驱动时序波形这是L...原创 2019-01-16 00:12:08 · 4919 阅读 · 3 评论 -
FPGA-基于UART的QVGA显示(一)(实现PC端发送字母数字汉字的分别显示)
基础:由PC通过UART发送数据在VGA显示。数据可以为字母,数字,汉字(任选10个字),VGA分为左右两个区域,输入字母或者数字时在VGA左边显示,输入汉字时在VGA右边显示。发挥:有删除功能,可通过按键删除显示的数字,字母或者汉字。左边的按键按下字母或者数字删除,右边的按键按下汉字删除。每次仅可删除一个字符。举例:VGA左侧显示FPGA 时,按下左边的键,VGA显示FPG,再按一下,显示F...原创 2019-01-23 02:14:36 · 2104 阅读 · 0 评论 -
FPGA-VGA驱动Color Bar显示
学习VGA首先要了解VGA是什么:VGA百度百科(1)VGA接口协议:VGA端子_维基百科 、VGA视频传输标准_百度引脚1 RED 红色视频 引脚2 GREEN 绿色视频 引脚3 BLUE 蓝色视频 引脚4 ID2/RES 过去为屏幕ID比特2;自DDC2起保留 引脚5 GND 接地(水平同步) 引脚...原创 2019-01-14 21:48:57 · 1052 阅读 · 0 评论 -
FPGA-ip核的使用
IP核(IP Core) ISE中有很多IP核可以直接使用,例如数学运算(乘法器、除法器、浮点运算器等)、信号处理(FFT、DFT、DDS等)。IP核类似编程中的函数库(例如C语言中的printf()函数),可以直接调用,非常方便,大大加快了开发速度。1. 打开ISE软件,新建工程: File -> New project,然后填入工程名及工程路径2. 工程设置,...原创 2018-11-27 18:51:06 · 11951 阅读 · 0 评论 -
FPGA-串口通信的接收模块(发送接收模块)
接收模块和发送模块类似: 在接收的过程中为了保证接收数据的准确性对单个时钟波特率进行分频,单个时钟信号下分频16次,进行数据采集保证了数据的准确性,这里的代码思想借鉴了小梅哥的代码的编写思想。发送接收模块的验证: 这里发送接收的验证是通过PC端进行发送,由开发板先接收到数据,然后进行发送,这里如果要是验证些字符串或者是一些特殊的指令,用状态机或者类似状态机的思想进...原创 2018-11-27 17:25:04 · 4455 阅读 · 4 评论 -
FPGA-串口通信的原理和发送模块
了解串口通信首先要了解串口通信的原理:串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总长不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。典型地,串口用于ASCII码字...原创 2018-11-17 12:29:42 · 2873 阅读 · 0 评论 -
FPGA-篮球计分计时器的设计
这次的任务相对上次来说代码书写的更为规范和简洁任务一、篮球计分器功能:按照篮球赛赛制进行设计。须具有24秒倒计时功能,十二分钟计时功能,暂停功能,进球计分功能(1分,2分,3分)等。可再自由发挥。要求:比分与计时须在数码管实时显示,显示状态可通过按键或者拨码开关切换,计分可通过按键进行设计(不限制)。设计:sw1 暂停sw2 24秒倒计时sw3 显示计时或者得分k...原创 2019-09-26 14:55:57 · 11854 阅读 · 21 评论 -
FPGA-任务五、十字路口交通控制灯器系统设计(二)
完整功能:实现主干道和支干道的红绿灯,并实现时间显示功能;(前两位显示东西的 后两位显示南北的)实现绿灯,黄灯,红灯的持续时间固定的交通控制功能;(状态机切换三段的显示 )当东西或南北两路中任一道上出现特殊情况,交通控制系统应可由交警手动控制立即进入特殊运行状态的功能;(控制一个SW[0]----> en 计数器计数半秒使能半秒)实现绿灯,黄灯,红灯的持续时间可调...原创 2019-09-26 14:56:15 · 2798 阅读 · 3 评论 -
FPGA-状态机的实现实例(按键的消抖)
大致思路有了,如何设计实现呢?貌似这是一个很复杂的设计,实则不然,FSM的本质就是对具有逻辑规律和时序逻辑的事物的描述,采用FSM设计,问题迎刃而解! 1、从状态变量入手,分析状态变量: IDLE:按键空闲状态(由于上拉电阻的作用,按键未被按下时保持高电平); FILTER_DOWN:按下滤波状态; DOWN:按下稳定状态; FILTER_UP:释放滤...原创 2018-10-21 01:11:26 · 3628 阅读 · 4 评论 -
FPGA-独立按键的消抖(软件消抖未用状态机)
独立按键消抖在单片机和FPGA中都是个不可避免的问题,首先,解释一下什么叫做按键抖动,如图,按键在按下和松开的那个瞬间存在大概20ms的机械抖动: 下面就是本篇的第一个重点 —— 什么时候需要按键消抖设计?如果是像复位按键这样,短时间内可以多次触发,就完全不需要设计消抖,但是如果是要设计按下按键使LED状态翻转,或者按下按键计数一次的话,就必须要设计消抖模块,否则就会带来不可预...原创 2018-10-21 00:13:20 · 1259 阅读 · 0 评论 -
FPGA-任务五、十字路口交通控制灯器系统设计(一)
设计一个十字路口交通控制系统,其东西、南北两个方向除了有红、黄、绿灯指示是否允许通行外,还设有时间显示,以倒计时方式显示每一路允许通行的时间,绿灯、黄灯、红灯的持续时间分别是45、5和50秒。当东西或南北两路中任一道上出现特殊情况,例如有消防车,警车要去执行任务,此时交通控制系统应可由交警手动控制立即进入特殊运行状态,即两条道上的所有车辆皆停止通行,红灯全亮,时钟停止计时,且其数字在闪...原创 2019-09-26 14:56:23 · 4791 阅读 · 6 评论 -
FPGA-50秒倒计时的实现(特权XILINX spartan-6开发板)
工具 ISE14.7通过时间分频在4位7段数码管中显示2个数字,给人眼一个错觉是同时显示出两个数字。实验原理是轮流向各位数码管送出字形码和相应的位选信号,利用数码管闪烁的余晖和人眼视觉的暂留作用,使人感觉像各位管同时在显示就像单片机数码管的思想一样:这里也要做相同的事情。单片机步骤如下:动态显示:1)位选数码管; 2)段选数码管; 3)延时 d...原创 2018-10-18 15:48:59 · 3592 阅读 · 0 评论 -
FPGA-(任务01)设计一个三位二进制减法计数器
module jianfaqi(RST,//复位端CLK,//时钟输入端Q,//计数输出端 ); input RST; input CLK; output reg [2:0]Q; always @( posedge CLK or negedge RST ) begin if (RST==0) ...原创 2018-10-10 21:27:36 · 4881 阅读 · 4 评论 -
FPGA-实例化的通俗理解(3-8译码器为例)
实例化以下以3线8线译码器实现函数为例:首先设计一个3线8线译码器module decoder_3_8(input rst_n ,input [2 :0] data_in ,output ...原创 2018-10-10 15:38:42 · 3447 阅读 · 0 评论 -
FPGA-4人表决器
三人及以上通过表达式:卡诺图:真值表:代码如下:module vote_4_1( dina,dinb,dinc,dind,f ); input dina; input dinb; input dinc; input dind; output f; assign f =(dina&dinb&dinc)|(dina&dinb...原创 2018-09-23 12:24:21 · 9493 阅读 · 3 评论 -
FPGA-基本知识 设计一个一位(四位)半加器和一位(四位)全加器
使用ISE设计一个加法器(半加器):dina (输入)dinb(输出) co(进位输出)sum(和输出)代码如下:module adder_one(dina,dinb,sum,co ); input dina; input dinb; output sum; output co; assign {co,sum}= dina + dinb ;endmodule...原创 2018-09-23 00:51:50 · 11293 阅读 · 0 评论 -
FPGA-在ISE中错误总结(更新中)
1.procedural assignment to a non-register DATA_BUS is not permitted 这种报错一般是在always语句中使用了非reg变量,在always语句中所有信号必须是reg变量,低级错误,(语法不熟悉)2出现的错误如下: ERROR:Xst:880 - "mst_pulse_calculation.v" line ...原创 2018-09-27 21:06:23 · 4529 阅读 · 0 评论 -
FPGA-ISE 软件安装win8win10不兼容问题and license添加不上解决方案
1在安装目录下,我这里是D:\ISE_14.7\14.7\ISE_DS\ISE\lib\nt64中找到libPortability.dll和libPortabilityNOSH.dll两个文件夹,其中将原来的libPortability.dll重名为libPortability_bac.dll ,将原来的libPortabilityNOSH.dll重命名为libPortability.dll...原创 2018-09-21 13:51:32 · 1157 阅读 · 0 评论