- 博客(15)
- 收藏
- 关注
原创 视频压缩与编解码学习
RGB颜色空间常用于显示器系统。YUV 4:2:2 采样,意味着 UV 分量是 Y 分量采样的一半,Y 分量和 UV 分量按照 2 : 1 的比例采样。从映射出的像素点中可以看到,四个 Y 分量是共用了一套 UV 分量,而且是按照 2*2 的小方格的形式分布的,相比 YUV 4:2:2 采样中两个 Y 分量共用一套 UV 分量,这样更能够节省空间。YUV 4:4:4 采样,意味着 Y、U、V 三个分量的采样比例相同,因此在生成的图像里,每个像素的三个分量信息完整,都是 8 bit,也就是一个字节。
2023-12-08 17:03:11
850
原创 Linux系统下关于VITIS VISION库和OPENCV的使用
上网查询说hls_video.h这个库在2020.1之后的版本已经被弃用了,被Vitis Vision 所取代了,并给出了解决方法。最刚开始跟着正点原子的教程,使用hls_video.h这个库的时候,总会出现如图所示的状况,下面出现黄线。先要下载opencv,我下载的是opencv3.4.12,linux下下载source文件。刚开始这个问题困扰我好几天。我使用的是vitis hls 2020.1的版本。
2023-10-31 15:27:27
385
1
原创 SDRAM读写控制器设计
SDRAM(Synchoronous Dynamic Ramdom Access Memory),即同步动态随机存储器。DRAM,动态存储器,是异步的SDRAM特点:1.动态:即他是采用电容来存储数据的,电容会放电,为了保证数据的可靠性,需要不停的给电容冲电,即不断刷新。2.随机性,即有地址的,行地址和列地址共用一个端口,地址线要使用分时复用。SDRAM数据存取原理:N个存储单元构成一个存储阵列(N=行*列),存储阵列又称为逻辑BANK,4个逻辑BANK又构成了整个SDRAM的存储空间。
2023-03-29 17:42:27
201
原创 FPGA中的各个存储器资源
FPGA内部有个16位的计数器,以50MHZ的频率计数,此时,我们希望随机截取计数器连续256个计数周期的值发到电脑上进行分析处理。2.任意脉冲信号发生器:由电脑通过串口发送256个14位的数据到FPGA,FPGA再把这256个数据以50MHZ的输出速率送给DAC,产生脉冲信号。Simple dual port ram:有两个地址端口,一个地址对应读,一个对应写。对于FIFO来说,写入的数据是是16位,读出的数据可能是16位或者8位。对于FIFO来说,写入的数据可能是16位或者8位,读出的数据是16位。
2023-03-14 16:54:21
415
原创 VGA(小梅哥)
显示器扫描方式分为逐行扫描和隔行扫描:逐行扫描是扫描从屏幕左上角一点开始,从左向右逐点扫描,每扫描完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT对电子束进行消隐(从右边回到左边的过程中要消隐),每行结束时,用行同步信号进行同步;当扫描完所有的行,形成一帧,用场同步信号进行场同步,并使扫描回到屏幕左上方,同时进行场消隐,开始下一帧。隔行扫描是指电子束扫描时每隔一行扫一行,完成一屏后再返回来扫描剩下的行,隔行扫描的显示器闪烁的厉害,会让使用者的眼睛疲劳。CRT场扫描过程同理。
2023-02-06 11:19:07
536
原创 DDS的FPGA实现
假设要求1ms输出一个数值,那么输出一个完整的正弦信号需要32个点,则输出一个正弦信号需要32ms,可知输出信号的频率f为1000ms/32ms。答案:在第3ms的时候取2上面案:在第1ms的时候取1上面的值,在第2ms的时候依然取1上面的值,在第4ms的时候依然取2上面的值........此时F(out)= 1000ms/(2^5/0.5))而1ms就是工作时钟。答案:在第1ms的时候取1上面的值,在第2ms的时候取3上面的值,在第3ms的时候取5上面的值,即取1、3、5、7上面的值。
2022-11-08 17:17:17
143
原创 采用74HC595驱动数码管实验
编写程序时应注意工作时钟SHCP的得到方式:如果工作时钟DHCP采用分频的方式得到,且用分频的得到DHCP来触发各个触发器,那么会出现使用门控时钟的各种问题,此处采用一种新的方式来得到工作时钟的上升沿。图中所示SHCP是一个占空比位1\2且频率为12.5MHZ的信号,而SHCP_counter是在SHCP的上升沿和下降沿分别产生一个脉冲,频率为25MHZ。根据芯片手册的时序图来编写74HC595的驱动程序,用于产生HC595所需要的三个输入信号,即:SHCP、DS、STCP。
2022-11-07 19:27:01
874
原创 使能时钟和门控时钟
2.若当中的某个触发器是由其他时钟触发,如图四所示的触发器假如输出一个上升沿,会使得门控时钟的波形变差以及产生毛刺。门控时钟:触发器输出的一个二分频时钟,用该二分频时钟作为工作时钟来触发其他触发器。如图所示:用门控时钟来触发触发器,ENA(使能信号)一直有效。使能时钟:触发器继续使用全局的高质量时钟来触发,将使能时钟作为触发器的使能信号。1.由于门控时钟到达各个触发器所用时间不一样,会造成时钟延迟不确定,而且比较大。如图所示为门控时钟作为工作时钟触发其他触发器。上面为门控时钟,下面为使能时钟。
2022-10-19 10:56:29
646
原创 FPGA的按键消抖之初学状态机
那么如何解决这个问题呢?状态1:空闲状态:此时等待按下操作的来临,当按下操做的来临,当按下操作来临后,检测到下降沿即即开始计时,转移到状态2,否则保持状态1不变。状态2:按下抖动状态:20ms的计时状态,当计数小于20ms时检测到了上升沿,则返回状态1,当20ms内没有检测到上升沿时,则转到状态3。状态4:释放抖动状态:20ms的计时状态,当计数小于20ms时检测到了下降沿,则返回状态3,当20ms内没有检测到下降沿时,则转到状态1。理想状态下,按键的波形图如图所示,按下即变为低电平,释放即变为高电平。
2022-10-02 23:14:09
221
原创 FPGA串口接收学习
当波形2的第一个上升沿检测到波形 1的的值为1,第二个上升沿检测到波形1的值为0时,就说明其产生了下降沿。初步思路:除发送位和停止位外,在数据位的每一位数据的中间时刻进行采样,读取到高电平或者低电平,如图所示:图中读取到的数据位为0110(左至右)但是,倘若有外界干扰,忽然将某数据位的电平拉低了一瞬间,如图:此时再在各个数据位的中间时刻检测会检测到:0010(从左至右)很显然是错误的。解决办法:在每一位的数据位上进行多次采样,然后比较0和1的概率。1的概率大就为高电平,0的概率大就为低电平。
2022-09-25 20:50:52
591
原创 FPGA串口发送学习
因为串口通信协议只能完成8位比特的发送(8bit=1byte),因此发送5个字节的数据需要将5个字节的数据拆分成一个字节一个字节来依次发送。状态1:该模块接收到发送数据请求信号(Trans_Go),开始发送数据的第一个字节,第一个字节发送完成后,转移到状态2。状态5:发送数据[39:32],发送完数据的最后一个字节后,回到零状态,等待数据请求信号(Trans_Go)的来临。状态1:空闲状态,没有发送数据,当数据请求信号Trans_Go来临时,转为状态1。板级测试文件,实现1分钟发送一个数据。
2022-09-20 20:08:06
1543
2
原创 FPGA杂七杂八
2.时序约束和管脚约束:FPGA设计需要在工具中指定对应的IO引脚位置以及输入的时钟信息。即需要用户对IO进行约束以及进行时钟周期等时序约束。(RTL描述与分析阶段:该原理图网表是由与FPGA底层部件无关的逻辑符号来体现的。1.FPGA查看的原理图有3种,分别是RTL分析、综合、实现后的原理图。综合阶段:原理图中的逻辑器件是由FPGA中的底层部件来构建的。
2022-09-03 10:26:14
84
原创 FPGA开发流程
b.静态时序分析(可以得到布局布线后每一段路走过的时间,比如要求从输入到输出的时间是在10ns以内,经过静态时序分析可以得到全程时间,若时间为9ns,则说明设计成功了)a.时序仿真(模拟每一段信号的传输,可以查看每个逻辑器件布局布线后每一段的延迟,最终的输出是加了各种延迟的,观看延迟是否影响了输出)2.设计输入(编写逻辑(使用Verilog语言描述电路、画逻辑图、使用IP核)3.分析综合(分析所写的逻辑电路,得到逻辑门级别的电路)1.设计定义(想好自己要做的是什么)(有点迷惑时序仿真和功能仿真的区别)...
2022-08-26 21:14:43
76
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人