自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 资源 (2)
  • 收藏
  • 关注

原创 --- Error: failed to execute ‘C:\Keil\C51\BIN\BL51.EXE‘

首先可以去查看keil安装路径下的TOOLS.INI文件,其中对应的路径是否跟安装的c51路径相同,如果不同,改正即可,但是我的这个配置文件里面的路径是对的。点击第二个选项,就可以看到路径和我们的安装路径不一样,我们可以选择点击use方框,也可以手动更改下面的路径,这里我选择直接点击use。所以要去改另外一个配置路径的地方,点击keil里面的 manage project item,即点击下面图标。在进行keil编程时,打开一个工程,进行编译,发现如下错误。再次编译就没有问题了。

2022-09-17 22:09:52 7797 3

原创 xilinx 除法ip核(divider) 不同模式结果和资源对比(VHDL&ISE)

所以就是当要使用多个运算ip核,进行级联运算时,可以使用nd核rdy配合,就可以使用。下面是该除法器ip核的资源占比情况:(可以看出当使用。如果把分数部分位宽改为0,那么又会减少很多资源。

2022-09-07 16:43:25 3255

原创 xilinx FPGA 乘法器 除法器 开方 IP核的使用(VHDL&ISE)

大家可以看到,乘法器是没有时延的,在数据输入的那个周期,就会产生结果。后面发现不是说乘法器没有延时,乘法器的输入是在ce为1时输入的,他算出来的结果是在ce的那个周期里面算出来的,但是要等到时钟上升沿来的时候才输出,比如下面第一组和第三组的数据,可以看到输入数据是在时钟上升沿的时候送进来的,那么刷出结果就是在下一个时钟的上升沿输出。但是第二组数据,是在时钟下降沿送进来的,那么算出的结果就会在紧接着的时钟上升沿输出的。...

2022-08-31 17:23:33 5349 1

原创 xilinx FPGA ROM IP核的使用(VHDL&ISE)

然后我看到深度那个范围很大,就把深度直接改成数据个数了,没有错误出现,但是宽度需不需要改 暂时不确定。放coe文件的路径不能有中文,并且xilinx系列的rom放coe文件,altera系列放mif文件。根据所存数据个数来设置数据深度(他这里的深度好像不用根据个数去换算,直接就是深度=数据个数)我本来以为我存700个数据 那么深度就是10,结果一直报错 不能生成ip核。这里可以先建立一个top文件,对rom进行例化,以及地址数据的产生。可以看到最开始的数据和吻合的(注意生成地址数据时,要符合时钟)

2022-08-25 15:37:03 4882 2

原创 matalb生成符合泊松分布的随机数,并进行测试是否符合

语句r = poissrnd()生成随机数,其服从参数为λ(lambda)的泊松分布。λ可以是标量、向量、矩阵或。一般来说,我们写成类似data = poissrnd(200,1,700);即可,表示生成1X700数组(即700个数)的符合λ=200的随机数。

2022-08-25 10:36:34 6072

原创 xilinx FPGA DCM IP核的使用(VHDL&ISE)

然后勾选上fx的输出,就可以调整输出频率,然后选择时钟输入 点击next。然后填写输出时钟,并点击计算 最后finish完成。(一定一定点击下面这个例化模板 去对ip核进行例化)可以取消rst 会有一个弹窗 点击ok即可。顶层代码如下:(VHDL)

2022-08-23 17:33:46 3280 2

原创 vhdl之n比特计数器(ISE&modelsim)

这是一个n比特计数器,可以向上向下计数,也可以设置计数值,采用异步低电平复位,并且使用generic语句设置参数。

2022-08-16 05:15:00 937

原创 【无标题】this signal is connected to multiple drivers.该信号连接到多个驱动器。

就是说add_q这个信号在两个进程里面都赋值了,但是是可以在两个进程里面使用的,所以可以用一个中间信号量去过度,比如 我在第一个进程里面写addr_i

2022-08-14 18:26:10 2236

原创 【无标题】Undefined symbol ‘alu_en‘. Undefined symbol (last report in this block)

报错是因为在vhdl的顶层文件中,除了端口外,各个模块之间的连线必须重新定义一个信号,比如我这里面,两个模块之间的alu_en,不能直接连接,可以先定义一个alu_en1,来当做媒介,在顶层结构体中定义信号,然后元件例化的时候,把模块的alu_en都连接到alu_en1上就可以了。...

2022-08-14 16:26:14 326

原创 parse error, unexpected TOKBEGIN, expecting AFFECT or SEMICOLON

就是缺少一个分号。

2022-08-14 12:32:28 368

原创 ISE的计数器模块(RAM&record)(vhdl)

创建一个包集合,里面包含自定义的record数据类型,然后用这个数据类型创建一个二维的存储器数组。2.创建一个包含记录(record)数据类型的包集合。3.创建一个二维存储器数组。

2022-08-14 11:38:19 1617

原创 ISE联合notepad++&modelsim使用教程

ISE新建VHDL工程

2022-08-13 12:52:54 1225

原创 fpga代码规范之GVIM编辑器

GVIM 是类似于记事本的代码编辑工具,但相比于记事本其输入效率更高,可以更好的提升工作 效率。由于 GVIM 具有丰富的代码补全、编译及错误跳转等便于编程的功能,其在 IC 开发领域得到 了广泛应用,也为学习 FPGA 工程提供了助力。GVIM 是一款 FPGA 工程师常用的软件,本文是基于明德扬的教程总结了一些常用且相对好用的命令。首先是GVIM分为三种模式:命令模式(打开gvim为默认模式,即光标闪烁时就是命令模式);插入模式(左下角显示“插入”);列操作模式(左下角显示“可视块”)...

2022-07-06 16:25:40 1341

原创 测量正弦电压信号之自制并行比较型ADC(TINA仿真)测量正弦电压之VFC模块(电压转频率,proteus仿真)

要求:对一个连续电压信号进行测量,该信号为正弦电压信号,频率是100KHZ,峰峰值为2V。 思路1:选择一些器件根据AD转换原理去搭建一个系统,进 行测量。思路2:将电压转化成频率,再进行测量。ADC(Analog to Digital Converter)是一类将模拟信号(连续信号)转换为数字信号(离散信号)的器件, 按原理可分为:并行比较型A/D转换器(FLASH ADC)、逐次比较型A/D转换器(SAR ADC)和双积分式A/D 转换器(Double Integral ADC)。 模拟信号,.

2022-04-28 07:55:29 3255

原创 《原子教你玩FPGA》读书笔记以及quartus和modelsim安装包

FPGA简介FPGA是工程师可以通过传统的原理图输入或硬件描述语言自由地设计一个数字系统。FPGA=I/O单元(是芯片与外界电路的接口,完成对信号的驱动与匹配)+可编程逻辑单元(改变内部连接与配置,完成不同逻辑单元)+嵌入式块RAM(根据地址读写数据的存储单元)+丰富的布线资源(全局布线资源,长线布局资源,短线布局资源,分布式布局资源)+底层嵌入功能单元(eg.PLL,DSP,CPU)+内嵌专用硬核(指通用性相对较弱,不是所有FPGA都有)FPGA设计流程:设计输入(HDL)、RTL仿真(...

2022-02-24 10:11:38 637

原创 基于matlab的车牌识别

系统设计MATLAB中的设计一个完整的车牌号识别系统要完成从图像采集到字符识别输出,过程相当复杂,基本可以分成硬件部分跟软件部分,硬件部分包括系统触发、图像采集,软件部分包括图像预处理、车牌定位、字符分割、字符识别四大部分,一个车牌识别系统的基本结构如图:图形预处理:扫描原始图像,并得出其对应的hsv图片车牌定位:根据hsv算法,对图像像素点进行遍历,取出蓝色部分字符分割:根据二值图像对字符进行分割字符识别:根据字符模板,对分割后的字符进行匹配I=imread...

2022-02-23 10:24:33 22791 22

原创 基于FPGA的数字滤波器设计(IIR滤波)

基本原理1. IIR数字滤波器设计的基本原理基本原理和结构。IIR滤波器,即无线脉冲响应滤波器,其答案为脉冲响应是无限长的,传递函数可以表示为式。IIR滤波器有直接I型,直接II型,级联型及并 联型4种常用的结构形式,其中级联型结构便于实现,且受参数量化影响较小,因此使用较为广泛。由差分方程可得,输出信号由两部分组成:第 一部分∑M i=0 x(n-i)b(i)表示将输入信号进行延时,组成M节延时网络,相当于FIR滤波器得横向网络,实现系统的零点。第二部分∑N l=1y(n-l)..

2022-02-23 10:18:09 12886 12

原创 基于FPGA的低通数字滤波设计

1、filter solution中的设计第一步,在滤波器界面中选择数字滤波,然后选择FIR滤波。因为系统时钟仿真的100M所以对应采样频率设置为100M。阶数为32阶的低通滤波器,通带频率为4M。频谱宽度是0.1M到100M。第二步,可以看到离散频率响应。Hanning在10M频率处为-44.5db:Bartlett在10M频率处为-30.6db:Hamming在10M频率处为-58.03db:所以...

2022-02-23 09:54:44 5375 3

原创 基于FPGA和ZLG7289实现按键

有8个7段码LED扫描显示,另外有8×8阵列按键需要识别,采用单片机或FPGA如何实现?请从设计一个人机交互设备的角度出发,设计该人机交互设备,计算设计参数,描述设计方案,完成程序流程图。以文件的形式提交,文件名格式:学号+姓名+题目内容。请参考周立功网站的ZLG7289或7290芯片设计文档。该系统可以实现对按键的识别以及段码的扫描显示。主要由ZLG7289常用电路以及FPGA控制电路组成,首先当时钟上升沿来临时,判断ZLG7289的INT引脚是否降低,来判断是否有按键按下,如果有的话...

2022-02-23 09:42:35 911

原创 lcd显示彩条实验

分频模块module clk_div( //时钟分频模块 input clk, //50Mhz input rst_n, input [15:0] lcd_id, //LCD屏ID output reg lcd_pclk );reg clk_25m;reg clk_12_5m;r...

2021-11-09 09:49:19 878

原创 matlab产生混频信号,quartus通过ROM进行数据存储,及信号处理

1.matlab产生混频信号x = 5*sin(2*pi*200*t) + 5*sin(2*pi*1000*t) + 5*sin(2*pi*2000*t)clear;clc;fs = 8000;N=1024;n=0:N-1;t=n/fs;x = 5*sin(2*pi*200*t) + 5*sin(2*pi*1000*t) + 5*sin(2*pi*2000*t);%混频信号% c = min(x); %得出信号的最小值% f1 = x + 5;f = round(x+14)';%根据所

2021-11-06 15:27:01 3137 1

原创 VGA彩条显示(可以在显示屏上看到白黑红绿蓝的彩条)

VGA ,视频图形阵列,使用模拟信号进行视频传输的标准

2021-11-02 11:03:17 1624

原创 RS485串口通信实验(使用两块开发板通过RS-485串口通信,由各自开发板上的四个按键分别控制对方开发板上四个LED灯的亮灭。)

RS485只有两根数据线,只能实现半双工传输系统框图1.按键模块module key_debounce( //按键消抖 input sys_clk, //外部50M时钟 input sys_rst_n, //外部复位信号,低有效 input [3:0] key, //外部按键输入 output reg k.

2021-10-26 10:26:24 3449

原创 串口通信原理

并行通信是指数据的各个位用多条数据线同时进行传输优点:传输速度快缺点:占用引脚资源多串行通信是将数据分成一位一位的形式在一条传输线上逐个传输优点:通信线路简单、占用引脚资源少缺点:传输速度慢同步通信:带时钟同步信号的数据传输;发送方和接收方在同一时钟的控制下,同步传输数据。异步通信:不带时钟同步信号的数据传输。发送方与接收方使用各自的时钟控制数据的发送和接收过程。串行通信的传输方向:单工 :数据只能沿一个方向传输半双工:数据传输可以沿两个...

2021-10-22 18:35:48 4175

原创 FIFO读写实验

FIFO一般用于不同时钟域之间的数据传输,也常用来实现不同位宽的接口的数据匹配。(可以避免两个模块时钟不一致,造成的亚稳态状态,也可以进行数据缓存,也可以解决数据发送时两边时钟不一致)利用FIFO在不同位宽的接口之间作数据匹配:(可以将fifo输入端设计为8位,输出端设计为16位,就可以解决该问题)下面是本次实验的系统框图1.fifo ip核的设计在ip catalog中搜索fifo,双击fifo然后在工程文件夹中创建IPcore文件夹,然后再在里面建fifo文件夹,最.

2021-10-21 17:44:18 1945

原创 RAM读写实验(用Altera RAM IP核生成一个单端口的RAM,然后对RAM进行读写操作,并通过Modelsim软件进行仿真)

RAM(Random Access Memory),即随机存取存储器,它可以随时把数据写入任一指定地址的存储单元,也可以随时从任一指定地址中读出数据, 其读写速度是由时钟频率决定的。RAM主要用来存放程序及程序执行过程中产生的中间数据、 运算结果等。1.新建ram ip核,在ip catalog中搜索ram 选择如图选项然后新建ip core文件夹,将其存为ram_1port开始设计ip 核,将深度设为8,宽度设为32,ip核用什么单位搭起来选择auto,然后输入输出数据的时钟选..

2021-10-20 11:10:42 3523

原创 pll锁相环(可以根据系统时钟进行倍频、分频、相位偏移等等,而普通的计数器只能分频)

1.PLL是一种反馈控制电路,其特点是利用外部输入的参考信号控制环路内部震荡信号的频率和相位。2.Quartus II软件提供了锁相环PLL的IP核,对时钟网络进行系统级的时钟管理和偏移控制,具有时钟倍频、分频、相位偏移(就相当于时钟的上升沿和下降沿可以移动,换位置等)和可编程占空比(一般是50%)的功能。3. PLL IP核的使用在ip catalog中搜索altpll,然后双击第一个然后点击...在文件夹中新建ipcore文件夹然后命名为pll_clk...

2021-10-19 17:27:13 5058 1

原创 FPGA学习之UART串口通信(当UART控制器从上位机接收到数据后,立即将数据输出,并发送回上位机,完成“回环测试”)

​FPGA需要控制的仅为两条信号线:RXD和TXD,即数据接收线和数据发送线,因此我们只需要关注数据接收和发送时的时序图。传送的一帧数据里面包括起始位(0),8位数据位,奇偶校验位,停止位(1)。当空闲时,10位数据均为高电平,在检测到起始位低电平时,开始传输。波特率是衡量数据传输速率的指标,表示每秒传输的二进制位数,在此例中设为9600,所以50M/9600==5207,所以分频时要计数到5207.1.串口接收数据的速率控制模块:用于控制串口接收的速率module bps_rx(.

2021-09-29 08:46:41 4456 3

原创 FPGA学习之数模转换(TLC5620)(通过4个按键输入,输出数模转换需要的数据和数码管显示需要的数据)

​1.数模转换器即DAC,一般情况下由四个部分组成,权电阻网络,运算放大器,基准电源和模拟开关。是一种以二进制显示的数字量转换成以参考电压为基准的模拟量转换器。2.设计原理:TLC5620是一个拥有4路输出的数模转换器,时钟频率最高可以达到1MHZ,在本实例中它可以将输入的数字量转换为实际的模拟量(电压),并通过4个按键控制4路输出电压,每按一次,电压随之上升,同时数码管上依次显示相应的值:A1,A0,RNG,以及输入的数字量,采用开发板的基准电压2.5v。芯片端口图:点击此处添加图

2021-09-25 10:35:49 6520 3

原创 FPGA学习之模数转换(TLC549)(调节电位器改变ADC的模拟输入量,读取采样值后,数码管显示,并比较两个值)

点击此处添加图片说明文字TLC549是模数转换芯片,只需要对外接时钟(clk),芯片选择(cs)和输入模拟信号(ANIN)进行控制,当cs被拉低时,ADC前一次转换数据的最高位立即出现在数据线DAT上,之后的数据在时钟下降沿来时改变因为ADC的位宽为8bits,所以采样电压为v=(D*V(ref))/256(D为ADC转换后读取的8位二进制数,V(ref)为参考电压)1.TLC549芯片的驱动模块:点击此处添加图片说明文字module tcl549_Dr...

2021-09-23 17:57:39 7560 4

原创 FPGA学习之状态机的多种描述方式(一段式,二段式,三段式)

​1.状态机的设计思路:一是从状态变量入手,分析各个状态的输入,状态转移和输出二是先确定电路的输出关系,再回溯规划每个状态的条件,输入等2.状态机的三要素是状态,输入和输出,根据状态机状态是否和输入条件相关,可以分为摩尔型状态机(与输入条件相关)和米勒型状态机(与输入无关)3.一段式描述:将用于状态转移判断的组合逻辑和用于状态寄存器转移的时序逻辑写在同一个always里面,在描述当前状态时还要考虑下一个状态的输出(这样写代码不清晰,难以维护)二段式描述:输出使用的是组合逻辑,很容易产生毛

2021-09-23 09:37:51 1240

原创 FPGA之异步复位同步释放信号产生(综合同步复位和异步复位的优点)

​1.同步复位:只有在时钟上升沿来的时候,复位信号才有有效。(当时钟上升沿以外的时刻都检查不到复位信号)表示:always @(posedge clk)异步复位:无论时钟上升沿是否到来,复位信号都有效。(当时钟上升沿或者复位信号有效时,都可以判断是否复位)表示:always @(posedge clk or negedge rst)2.同步复位:他只在时钟上升沿去判断是否复位,所以降低了亚稳态出现的概率,但会消耗FPGA更多的资源异步复位:因为FPGA有自带的异步复位专用端口,所以节约资源。但是

2021-09-22 18:22:48 528

原创 基于FPGA的按键计数(通过按键实现对FPGA板子的数码管显示数进行控制)

​1.项目要求:数码管显示范围为0~999 999,当数码管显示999 999,若此时按下加的按键,则数码管显示数清零,若数码管显示为0 ,若按下减的按键时,数码管为999 9992.编写分频计数模块,用1KHz(系统时钟为5Mhz)作为驱动时钟。将分频出来的时钟输出给key_jitter模块点击此处添加图片说明文字代码如下:(仿真时可以把T设小一点,不然跑不完)module freq( //系统时钟是50M,产生一个1KHZ的慢时钟input clk,input rst_n,

2021-09-22 16:55:08 13872 8

原创 炫“库”行动——人大金仓征文大赛FPGA学习之按键消抖(verilogHDL)以及二进制数转BCD实战演练和数码管显示

当按键按下时,对按键状态进行计数,如果没有达到就不认为按下按键,并且对按键按下的次数进行计数1.按键模块代码编写代码如下module key_pluse(input clk,input rst_n,input key_in,output reg [3:0] sum //记录按键按下的次数);reg [10:0] counter; //按下计数寄存器reg pos_flag; //按键按下成功标志位reg state; //状态寄存器always @(pos

2021-09-17 14:58:17 420

原创 FPGA之边沿检测电路(检测信号由高到低或者由低到高的跳变)

1.电路原理分析1)当系统复位时,也就是rst为0时,寄存器inst的清零端失效,即输出端Q为0,那么经过两个与门后,系统输出端posedge和negedge为0,则系统处于复位状态2)复位结束后,假设输入信号signal在某一时刻由0变为1,因为寄存器的特性,输出端Q只能在下一个时刻发生跳变,所以此时端口1和2为0,所以negedge为0,而端口3连接的是signal信号为1,而端口4是Q端之后取反,所以也为1,故此时posedge为13)下降沿原理与上面上升沿原理类似...

2021-09-16 13:57:20 1977

原创 FPGA之FIFO读写数据(发送接收模块,当发送模块检测到FIFO为空时,开始写入数据,当FIFO为满时,读出数据)

1.c创建FIFO的IP核在IP catalog里面搜索FIFO并双击,保存为my_fifo然后一直点击next读和写的full和empty都要√上,不然后面定义要出错勾选inst文件2.对FIFO进行写入操作3.对FIFO进行读出操作4.顶层文件的编写及rtl结构图5.测试文件的编写6.仿真结果...

2021-09-16 13:57:01 2679

原创 FPGA只读存储器IP核----ROM的设计方法(用来存储数据,可以节约成本,也可以保护数据)

1.创建新的文件(rom ip核的创建,以及.mif文件的创建)创建一个工程后,选择如图的文件设置位宽和深度右击想要填充的数据,选择custom fill cells然后如图配置开始地址等信息配置完成后,就会出现如图的数据在右侧的IP catalog中搜索rom 就双击如图的rom:1保存ip核如图点击browse ,加入之前的.mif文件一直next到如图,勾选inst后缀的文件,完成rom设置2.编写rom的控制模块,用于产生递

2021-09-16 13:56:44 1474

原创 FPGA学习之锁相环生成不同频率时钟(quartus中用锁相环分频或者倍频能够有效减少时钟发生部分的代码量,也可以实现任意时钟频率。)

1.创建锁相环测试文件点击IP Catalog图标,如图选择到ALTPLL双击ALTPLL命名为my_pll,并选择verilog,然后点击ok系统时钟为50M,所以这里改为50,然后点击next一直点击next到这个界面,并且配置如图,选择外部时钟频率,并改为25M,然后点击next这里是设置第二个时钟频率,设置为100M,然后点击next一直点击next到这个界面,选择my_pll_inst.v文件,这个是调用IP核的端口,然后点击finish2.编写

2021-09-16 13:50:04 5682 2

原创 FPGA项目之分模块流水灯

此项目中需要分频和LED驱动两个模块以及顶层模块1.时钟分频模块如下:开发板的系统时钟频率是50MHz,流水灯要每秒变化一次,那么分频模块就要变成1/(1s)=1Hz,所以要计数50 000 000次才是一秒,所以该项目要计数25 000 000次为0.5s,那么一秒内就可以变化一次。分频代码如下:2.led驱动模块,是状态机来判定led的状态,初始state为0,当复位后,判定状态为0,则点亮一个灯,状态加一,后面反复。程序代码如下:3.最后是顶层模块程序以及rtl图:

2021-09-14 15:28:59 1474 3

原创 FPGA软件quartus和modelsim的问题集合1

1.问题:quartus和modelsim软件联合仿真不成功报错信息中指明为这样的一个情况,你选择了modelsim作为仿真工具,但是quartus找的却是modelsim altera 这样的一个可执行文件。建议更改仿真工具,改为modelsim_altera 作为你的仿真工具即可,更改路径在assignment 》settings》simulation》。解决办法:tools——options——EDA tool options里面两个地址都选上,modelsim和modelsim-alte

2021-09-14 15:14:09 1252

ccsv5仿真文件及操作指南

在使用ccs v6版本以上是,软件不会自带纯软件的仿真,所以如果要脱离板子进行一些算法验证时,可以根据该文件配置一个纯软件仿真环境

2023-03-23

ccs6.1.3安装包

ccs6.1.3安装包

2023-03-11

xilinx FPGA ROM IP核的使用(VHDL&ISE)

xilinx FPGA ROM IP核的使用(VHDL&ISE)

2022-08-25

matalb生成符合泊松分布的随机数,并进行测试是否符合

matalb生成符合泊松分布的随机数,并进行测试是否符合

2022-08-25

xilinx FPGA DCM IP核的使用(VHDL&ISE)

fpga 时钟ip的使用

2022-08-23

VFC电路的proteus仿真工程文件,可以看到频率随电压变化而变化

VFC电路的proteus仿真工程文件,可以看到频率随电压变化而变化

2022-04-27

自制并行ADC的仿真工程,以及TINA安装包和芯片手册等

自制并行ADC的仿真工程,以及TINA安装包和芯片手册等

2022-04-27

空空如也

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

TA关注的人

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