- 博客(41)
- 收藏
- 关注
原创 Xilinx FPGA:vivado关于以太网的零碎知识点
以太网是遵守IEEE802.3标准组成的局域网,由IEEE802.3标准规定的,主要是位于参考模型的物理层(PHY)和数据链路层中的介质访问控制子层(MAC)。TCP/IP协议不仅仅指的是TCP和IP两个协议,而是指一个由FTP\SMTP\TCP\UDP\IP等协议构成的协议簇,只是因为在TCP/IP协议中TCP协议和IP协议最具有代表性,所以被称为TCP/IP协议。数据:包含MAC的上层和填充域,整个MAC包长度最少64字节,数据包最少46个字节,如果数据包不到46字节,在填充域会自动填充无效数据。
2024-08-13 10:40:58
2039
1
原创 Xilinx FPGA:vivado SPI实现FLASH通信
要求使用SPI协议实现对flash芯片的页编程、读操作、页擦除等功能。经过刚才的擦除操作,从000001这个地址里看能否读出来数,读不出来就表示擦除成功。向01这个地址里面写入22 返回FF。返回值02表示打开成功。返回刚才写入的数字22。返回FF,捕捉到波形。
2024-07-31 11:08:35
873
原创 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
1867
2
原创 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
1060
原创 Xilinx FPGA:vivado串口输入输出控制fifo中的数据
实现同步FIFO回环测试,通过串口产生数据,写入到FIFO内部,当检测到按键信号到来,将FIFO里面的数据依次读出。(4)fifo控制模块。
2024-07-06 23:22:06
879
原创 Xilinx FPGA:vivado关于同步fifo的两个小实验
一、实验一:在同步fifo里写一个读一个(写入是8个位宽,读出是16个位宽)二、实验二:在实验一的基础上完成“写完再读”
2024-07-06 17:20:18
425
原创 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
1412
1
原创 Xilinx FPGA:vivado关于RAM的一些零碎的小知识
不过分布式RAM实现大规模的存储器会占用大量的LUT,可用来实现逻辑的查找表就会减少,因此建议仅在需要小规模的存储器时,使用分布式RAM。RAM----随机存取存储器:上电工作时可以随时从任何一个指定的地址写入(存入)或读出(取出)信息。(2)simple dual port ram 简单双端口(伪双端口):完整的两组数据和地址线,但是一个端口只能读,另一个端口只能写,而且不能同时进行。BRAM:block_ram由一定数量固定大小的存储器块构成,使用BRAM资源不占用额外的逻辑资源,并且速度快。
2024-07-04 21:53:10
744
原创 Xilinx FPGA:vivado关于单端ROM的一个只读小实验
将生成好的voe文件里的数据使用rom读取出来,采用串口工具发送给电脑(当按键来临时)。
2024-07-03 17:05:22
492
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
1038
1
原创 Xilinx FPGA:vivado利用单端RAM/串口传输数据实现自定义私有协议
实现自定义私有协议,如:pc端产生数据:02 56 38 ,“02”代表要发送数据的个数,“56”“38”需要写进RAM中。当按键信号到来时,将“56”“38”读出返回给PC端。仿真的复位信号一定不要和数据的关键信号(使能/开始)重复。
2024-07-02 14:32:46
674
原创 Xilinx FPGA:vivado实现单端RAM存储 串口通信
但是我们还是尽量让tx_start是一个尖峰脉冲,因为此时tx_start不仅仅代替了rx_done的功能,也因为将第一个数据写入地址0是比较规范的写法。要求使用串口工具发送出去的数据存储到单端RAM中再读取数据,完成回环测试。四、几个非常需要注意的点。但连线图其实更复杂一些。
2024-06-30 23:27:16
494
原创 Xilinx FPGA:vivado单端RAM实现输出偶数(单端RAM的简单应用)
(2)调用IP资源找到RAMs&ROMs&BRAMs,选择其中的块资源。(1)先创建一个工程。
2024-06-26 15:16:03
469
原创 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
425
原创 Xilinx FPGA:vivado对串口的接收端和发送端增加校验位
接收端:一般由串口工具增加校验位,串口工具根据发送的数据和校验方式选择“0”或者“1”,在仿真中,我们只能选择固定的数字“0”或者“1”进行校验,所以串口中无论发送什么数字,都有返回值,但是在仿真中,只能返回部分符合筛选机制的值。前8位是数据位,第九位是校验位,数据位中1的个数是奇数个,则校验位是1,保证数据位和校验位异或的结果是0;前8位是数据位,第九位是校验位,数据位中的1是奇数个,则校验位是0,保证数据位和校验位异或的结果是1;数据位中的1是偶数个,则校验位为1,保证数据位和校验位异或的结果是1。
2024-06-25 15:43:33
489
原创 Xilinx FPGA:vivado用串口控制数码管
要求输入从千位到个位数字给4位数码管,要求分别输入的数字都能显示。这里注释掉了组合逻辑的写法,因为根据仿真,组合逻辑引发了时序问题。
2024-06-23 15:40:47
627
1
原创 Xilinx FPGA:vivado用串口实现点阵屏状态机
要求用串口实现状态改变,状态1:静态点亮点阵屏,分别输出数字“1”,“2”,“3”。状态2:动态点亮点阵屏,连续输出数字“1”,“2”,“3”,间隔为1s。根据项目要求分析出我们需要的模块和主要信号的流向。(图是比较高清的,可以放大看)ctrl_data的数据优化模块。时间太长了,大家慢慢跑吧。
2024-06-21 17:19:34
446
原创 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
448
原创 Xilinx FPGA:vivado实现点阵屏动画
之前有写过点亮一个点阵屏灯的博客,是这次实验的基础。项目要求:实现心碎小丑动画。顶层输出给74HC595。
2024-06-19 16:27:34
334
原创 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
767
原创 Xilinx FPGA:vivado实现闹钟定时响铃
使用数码管完成1小时闹钟,完成按下按键1后进行定时模式,按下按键2后进行定时,按键2每按下一次增加一秒钟,然后再按下按键1后又转换到闹钟计时模式。当闹钟达到定时的时刻后蜂鸣器会响。数码管接触不良只能用自己的碗压住了。然后因为桌子上有别人的名字所以也让我用马赛克盖掉了。count模块:闹钟正常计时。alarm模块:闹钟定时模块。仿真代码:记得修改时间。
2024-06-14 19:52:50
485
原创 Xilinx FPGA:vivado测试Moore与mealy的区别 序列检测:“101“
【代码】Xilinx FPGA:vivado测试Moore与mealy的区别 序列检测:“101“
2024-06-11 21:02:28
125
原创 Xilinx FPGA:vivado状态机实现花式跑马灯
(1)两个按键分别控制led灯的样式和速度,样式分为流水灯和翻转灯,速度分为0.5s/1s/1.5s/2s四个挡位。(2)分别对两个按键进行按键消抖。四、block块设计。
2024-06-07 19:33:50
708
原创 Xilinx FPGA:vivado实现流水灯、翻转灯结合按键消抖的设计,采用block块的方式
1、按下key_0的时候进行流水灯,并完成key_0的按键消抖。2、按下key_1的时候进行翻转灯,并完成key_1的按键消抖。(1)控制流水灯的按键进行消抖的模块。(2)控制翻转灯的按键进行消抖的模块。四、用block块进行模块拼接。
2024-06-05 20:47:16
543
原创 Xilinx FPGA 零基础系列(3)vivado实现反向流水灯 zynq7000
【代码】Xilinx FPGA 零基础系列(3)vivado实现反向流水灯 zynq7000。
2024-06-04 14:22:59
225
原创 Xilinx FPGA 零基础系列(0) 半加器的三种写法,以及一些重要的可以直接应用的语法知识
【代码】Xilinx FPGA 零基础系列(0) 半加器的三种写法,以及一些重要的可以直接应用的语法知识。
2024-06-03 21:26:13
102
原创 Xilinx FPGA零基础系列(2):采用block块的方式完成1s流水灯设计
最后绑定管脚,生成比特流,烧录进板子就可以了(后续这些步骤的详细操作可以看我的另一篇博客。三、采用block将流水灯和计数器链接在一起。先创建一个block。
2024-06-03 18:44:39
221
原创 Xilinx FPGA零基础系列(1):vivado调用IP完成LED点灯
IP catalog 相当于官方提供的一个文档库,里面有封装好的代码。
2024-06-03 16:18:18
116
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人