自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 Xilinx FPGA:vivado fpga与EEPROM的IIC通信,串口显示数据,含使用debug教程

实现FPGA与EEPROM的通信,要求FPGA对EEPROM实现先“写”后“读”,读出的值给uart发送端并显示到电脑上,按下按键1让fpga对EEPROM写入数据;按下按键2让fpga读出对EEPROM写入过的数据。按下控制“写”的按键,再按下“读”的按键后,pc端返回45。XDC文件变成这样就是保存成功了。"4"对应后面几个cnt_bit。然后点set up debug。

2024-07-11 09:27:39 501

原创 Xilinx FPGA:vivado关于IIC的一些零碎知识点

接收数据的 I 在接收到 8bit 数据后,向发送数据的 I发出特定的低电平脉冲,表示已收到数据。注:在起始信号后必须传送一个从机的地址(7位),1-7位为7位接收器件地址,第8位为读写位,“0”表示主机发送数据,“1”表示主机接收数据,第9位为ACK应答位,紧接着的为第一个数据字节,然后是一位应答位,后面继续第二个数据字节。所有接到12C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上12C总线上的每个设备都自己一个唯一的地址,来确保不同设备之间访问的准确性。

2024-07-08 22:20:01 657

原创 Xilinx FPGA:vivado串口输入输出控制fifo中的数据

实现同步FIFO回环测试,通过串口产生数据,写入到FIFO内部,当检测到按键信号到来,将FIFO里面的数据依次读出。(4)fifo控制模块。

2024-07-06 23:22:06 431

原创 Xilinx FPGA:vivado关于同步fifo的两个小实验

一、实验一:在同步fifo里写一个读一个(写入是8个位宽,读出是16个位宽)二、实验二:在实验一的基础上完成“写完再读”

2024-07-06 17:20:18 257

原创 Xilinx FPGA:vivado关于fifo的一些零碎知识

tips:RAM和FIFO的主要区别是在于地址,RAM之所以被称为随机存储器就在于我们可以随时用RAM的地址去存储一些东西,ROM也是随时可以从地址中去读取一些数据,但是FIFO(first in first out)是没有地址线的。(2)build in FIFO :内嵌FIFO,使用专用的控制信号线(如满信号、空信号等)+BRAM资源生成FIFO,可以理解为一种内部集成的FIFO。(1)shift register FIFO : 移位寄存器FIFO,这种很少用,因为FPGA内部的移位寄存器资源很少。

2024-07-06 14:52:39 447

原创 Xilinx FPGA:vivado关于RAM的一些零碎的小知识

不过分布式RAM实现大规模的存储器会占用大量的LUT,可用来实现逻辑的查找表就会减少,因此建议仅在需要小规模的存储器时,使用分布式RAM。RAM----随机存取存储器:上电工作时可以随时从任何一个指定的地址写入(存入)或读出(取出)信息。(2)simple dual port ram 简单双端口(伪双端口):完整的两组数据和地址线,但是一个端口只能读,另一个端口只能写,而且不能同时进行。BRAM:block_ram由一定数量固定大小的存储器块构成,使用BRAM资源不占用额外的逻辑资源,并且速度快。

2024-07-04 21:53:10 287

原创 Xilinx FPGA:vivado关于真双端口的串口传输数据的实验

那么其他情况就是tx_start

2024-07-04 18:10:05 994

原创 Xilinx FPGA:vivado关于单端ROM的一个只读小实验

将生成好的voe文件里的数据使用rom读取出来,采用串口工具发送给电脑(当按键来临时)。

2024-07-03 17:05:22 341 3

原创 Xilinx FPGA:vivado实现乒乓缓存

2、先写buffer1,再写buffer2 ,在读buffer1的同时写buffer2,在读buffer2的同时写buffer1。3、写端口50M时钟,写入16个8bit 的数据,读出时钟25M,读出8个16bit 的数据。所以修改思路就是尽量让enb1和enb2之间没有空隙,在时序上是衔接着的。1、用两个伪双端口的RAM实现缓存。

2024-07-03 15:12:47 449

原创 Xilinx FPGA:vivado利用单端RAM/串口传输数据实现自定义私有协议

实现自定义私有协议,如:pc端产生数据:02 56 38 ,“02”代表要发送数据的个数,“56”“38”需要写进RAM中。当按键信号到来时,将“56”“38”读出返回给PC端。仿真的复位信号一定不要和数据的关键信号(使能/开始)重复。

2024-07-02 14:32:46 513

原创 Xilinx FPGA:vivado实现单端RAM存储 串口通信

但是我们还是尽量让tx_start是一个尖峰脉冲,因为此时tx_start不仅仅代替了rx_done的功能,也因为将第一个数据写入地址0是比较规范的写法。要求使用串口工具发送出去的数据存储到单端RAM中再读取数据,完成回环测试。四、几个非常需要注意的点。但连线图其实更复杂一些。

2024-06-30 23:27:16 311

原创 Xilinx FPGA:vivado单端RAM实现输出偶数(单端RAM的简单应用)

(2)调用IP资源找到RAMs&ROMs&BRAMs,选择其中的块资源。(1)先创建一个工程。

2024-06-26 15:16:03 361

原创 Xilinx FPGA:vivado这里记录一个小小的问题

我没有认识到rx_data信号只能由电脑产生发送给卡发版,我以为由超声波返回的echo信号计算出的distance也可以作为输入信号让rx接收。问题二:TOP模块中没有uart_data输入进来,我们仿真的是TOP模块,uart_data都没有输入进来,肯定是没有值的。问题一:首先我仿真例化了两个模块,并且,我选取了单独例化的rx模块中的uart_data 的值,所以在仿真中它是有值的。问题描述:uart_data从rx模块输入到ctrl模块后就没有值了。

2024-06-26 10:07:58 350

原创 Xilinx FPGA:vivado对串口的接收端和发送端增加校验位

接收端:一般由串口工具增加校验位,串口工具根据发送的数据和校验方式选择“0”或者“1”,在仿真中,我们只能选择固定的数字“0”或者“1”进行校验,所以串口中无论发送什么数字,都有返回值,但是在仿真中,只能返回部分符合筛选机制的值。前8位是数据位,第九位是校验位,数据位中1的个数是奇数个,则校验位是1,保证数据位和校验位异或的结果是0;前8位是数据位,第九位是校验位,数据位中的1是奇数个,则校验位是0,保证数据位和校验位异或的结果是1;数据位中的1是偶数个,则校验位为1,保证数据位和校验位异或的结果是1。

2024-06-25 15:43:33 261

原创 Xilinx FPGA:vivado用串口控制数码管

要求输入从千位到个位数字给4位数码管,要求分别输入的数字都能显示。这里注释掉了组合逻辑的写法,因为根据仿真,组合逻辑引发了时序问题。

2024-06-23 15:40:47 415

原创 Xilinx FPGA:vivado用串口实现点阵屏状态机

要求用串口实现状态改变,状态1:静态点亮点阵屏,分别输出数字“1”,“2”,“3”。状态2:动态点亮点阵屏,连续输出数字“1”,“2”,“3”,间隔为1s。根据项目要求分析出我们需要的模块和主要信号的流向。(图是比较高清的,可以放大看)ctrl_data的数据优化模块。时间太长了,大家慢慢跑吧。

2024-06-21 17:19:34 313

原创 Xilinx FPGA:vivado用串口传输的方式点亮LED

计算机只能识别ASCII码,我们根据ASCII码表决定输入,我的数据传输是8bit,但是我的输出led是4bit,所以我输入串口的值只能被读到低4位,如果低四位对应的二进制数是0000,那么led灯就会一个也不亮。在ASCII码中,字符3对应的十六进制数是33(从串口的输入的是字符),对应的二进制数是8'b0011_0011,串口识别了这个数字的低4位0011,所以亮两个led灯。),本篇文章在上一篇的基础上增加了LED的输出模块。串口接收端的代码在这篇文章(

2024-06-20 19:27:44 263

原创 Xilinx FPGA:vivado实现串口的接收端

补充一些串口里用到的数值的相关知识点。

2024-06-20 16:30:32 322 2

原创 Xilinx FPGA:vivado实现超声波测距

超声波模块测出的距离显示在数码管上。对echo信号高脉冲计时。产生trig信号的模块。

2024-06-19 17:17:29 269

原创 Xilinx FPGA:vivado实现点阵屏动画

之前有写过点亮一个点阵屏灯的博客,是这次实验的基础。项目要求:实现心碎小丑动画。顶层输出给74HC595。

2024-06-19 16:27:34 239

原创 Xilinx FPGA:vivado实现点阵屏点亮一个灯

行8个,列8个,所以只需要16个电平信号就可以控制点阵屏,需要点亮【R1,C1】那个灯的话,就需要[R1,R2,R3,R4,R5,R6,R7,R8]=[1,0,0,0,0,0,0,0],[C1,C2,C3,C4,C5,C6,C7,C8]=[0,1,1,1,1,1,1,1]8*8点阵内部由8行8列共64个LED灯组成。点阵也分为共阳极(BS)和共阴极(AS),行控制线接的 LED 阳极的点阵称为共阳极点阵,行控制线接的ID阴极的点阵称为共阴极点阵。采用IP的方式生成5M的SCK,具体方法参照我之前的文章。

2024-06-18 16:27:09 384

原创 用IP生成奇分频和偶分频

2024-06-17 16:07:58 107

原创 奇分频和偶分频

【代码】奇分频和偶分频。

2024-06-17 15:36:53 126

原创 Xilinx FPGA:vivado实现闹钟定时响铃

使用数码管完成1小时闹钟,完成按下按键1后进行定时模式,按下按键2后进行定时,按键2每按下一次增加一秒钟,然后再按下按键1后又转换到闹钟计时模式。当闹钟达到定时的时刻后蜂鸣器会响。数码管接触不良只能用自己的碗压住了。然后因为桌子上有别人的名字所以也让我用马赛克盖掉了。count模块:闹钟正常计时。alarm模块:闹钟定时模块。仿真代码:记得修改时间。

2024-06-14 19:52:50 281

原创 Xilinx FPGA:vivado实现秒表

项目要求:后两位到59的时候给前2位进1。

2024-06-13 17:10:44 201

原创 Xilinx FPGA:vivado实现数码管计数

【代码】Xilinx FPGA:vivado实现数码管计数。

2024-06-13 14:45:54 195

原创 Xilinx FPGA:vivado实现静态数码管点亮

【代码】Xilinx FPGA:vivado实现静态数码管点亮。

2024-06-12 11:35:46 183

原创 Xilinx FPGA:vivado测试Moore与mealy的区别 序列检测:“101“

【代码】Xilinx FPGA:vivado测试Moore与mealy的区别 序列检测:“101“

2024-06-11 21:02:28 84

原创 Xilinx FPGA:vivado状态机实现序列检测

一、项目内容:检测序列10010。

2024-06-11 21:00:37 167

原创 Xilinx FPGA:vivado状态机实现花式跑马灯

(1)两个按键分别控制led灯的样式和速度,样式分为流水灯和翻转灯,速度分为0.5s/1s/1.5s/2s四个挡位。(2)分别对两个按键进行按键消抖。四、block块设计。

2024-06-07 19:33:50 344

原创 Xilinx FPGA:vivado几种常见的写测试仿真的方法

【代码】Xilinx FPGA:vivado几种常见的写测试仿真的方法。

2024-06-06 11:42:12 102

原创 Xilinx FPGA:vivado实现流水灯、翻转灯结合按键消抖的设计,采用block块的方式

1、按下key_0的时候进行流水灯,并完成key_0的按键消抖。2、按下key_1的时候进行翻转灯,并完成key_1的按键消抖。(1)控制流水灯的按键进行消抖的模块。(2)控制翻转灯的按键进行消抖的模块。四、用block块进行模块拼接。

2024-06-05 20:47:16 242

原创 Xilinx FPGA:vivado用状态机写4位流水灯

【代码】Xilinx FPGA:vivado用状态机写4位流水灯。

2024-06-05 20:35:05 130

原创 Xilinx FPGA:vivado用状态机写按键消抖

【代码】Xilinx FPGA:vivado用状态机写按键消抖。

2024-06-05 20:30:49 201

原创 Xilinx FPGA 零基础系列(3)vivado实现反向流水灯 zynq7000

【代码】Xilinx FPGA 零基础系列(3)vivado实现反向流水灯 zynq7000。

2024-06-04 14:22:59 112

原创 Xilinx FPGA 零基础系列(0) 半加器的三种写法,以及一些重要的可以直接应用的语法知识

【代码】Xilinx FPGA 零基础系列(0) 半加器的三种写法,以及一些重要的可以直接应用的语法知识。

2024-06-03 21:26:13 67

原创 Xilinx FPGA零基础系列(2):采用block块的方式完成1s流水灯设计

最后绑定管脚,生成比特流,烧录进板子就可以了(后续这些步骤的详细操作可以看我的另一篇博客。三、采用block将流水灯和计数器链接在一起。先创建一个block。

2024-06-03 18:44:39 153

原创 Xilinx FPGA零基础系列(1):vivado调用IP完成LED点灯

IP catalog 相当于官方提供的一个文档库,里面有封装好的代码。

2024-06-03 16:18:18 69

原创 Xilinx FPGA:vivado用状态机写4位流水灯,含按键消抖 zynq7000

a.状态机的计数器:流水灯变换间隔是1s,由于zynq7000是50MHz,因此一个周期是20ns,一秒内一共有50000000个20ns,因此状态机计数器需要计数50000000次;b.按键消抖的计数器:按下按键后抖动时间大约为20ms,同理按键消抖计数器需要计数500000次;整体思路:状态机流水灯的模块设计调用按键按下的代码,即FMS.v调用例化的key.v文件。根据原理图绑定时钟信号和按键信号,复位信号随便绑一个可以用的IO口。(2)触发流水灯的条件是按下按键且按键消抖后。

2024-06-01 15:07:11 373

空空如也

空空如也

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

TA关注的人

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