- 博客(16)
- 收藏
- 关注
原创 HDMI接口介绍及其代码
将图片转为coe文件存入ROM中,从ROM中读取24位真彩数据通过HDMI进行显示,显示的大小设置为1280*1024,
2022-09-12 22:00:53
3731
5
原创 vivado报错
Validation Failed:User configuration exceeds BRAM count in the selected device!
2022-09-12 16:23:32
3229
原创 RGB转YCbCr
太久没更新了,最近在整理以前的项目,今天随便写一下吧;这是项目的一个模块,由于数据是ov5640输入的RGB格式,但是我需要对数据转ycbcr进行处理,所以写了这个模块;我想你转ycbcr是有自己的作用,也了解了一些知识,在此,我不做讲解;RGB2YCbCr,需要了解以下公式:但是,如果直接带入公式进行计算,会消耗大量的资源;为此,我们需要进行流水线设计,在本设计中,我使用了三级流水,如下:流水线设计清楚后,需要进行小数乘法,在此,我们将定点小数转换成整数,我选择保留8位精度,即扩大2的8次方,
2022-07-09 23:18:54
1366
原创 verilog实现计算最大公约数和最小公倍数
设计一个时序电路,输入2个无符号数,位宽可以通过参数DATA_W确定,输出这两个数的最小公倍数和最大公约数。解:在求解最大公约数与最小公倍数时,通常使用辗转相除法计算得到最大公约数,然后利用两数之积除最大公约数得到最小公倍数;举例如下:34 与 20;(1)34 - 20 = 14;(2)20 - 14 = 6;(3)14 - 6 = 8;(4)8 - 6 =2;(5)6 - 2 = 4;(6)4 - 2 = 2;(7)2 - 2 = 0;所以最大公约数为2;则最小公倍数 = 34 * 20 /2 =340
2022-06-17 23:05:58
1545
7
原创 具有倍数关系的时钟切换
下图显示了防止源时钟相互倍数的时钟开关输出出现毛刺的解决方案。在每个时钟源的选择路径中插入一个负边沿触发的D触发器。 在时钟的下降沿采样选择控制(SELECT),以及仅在首先使其他时钟无效后使能选择(SELECT),可以提供出色的输出保护 :下面简单的解释下这个电路:当SELECT为0时,明显CLK1的那部分通路到输出无效,仅仅看下半部分电路即可,在CLK0的下降沿采样SELECT(取反后)信号,与CLK0相与之后输出;当SELECT为1时,同理上半部分电路有效;需要重点分析的是当SELEC..
2022-05-23 22:55:53
500
1
原创 vivado Please use ASCII characters for directory name or path
在我创建工程时出现了这个问题,解决方法:通过查找发现问题是因为选择的路径中存在括号,将括号去掉就可以了;
2022-05-15 20:19:29
3760
原创 可配置位宽的流水线乘法器
1.前言:关键词:流水线,乘法器硬件描述语言的一个突出优点就是指令执行的并行性。多条语句能够在相同时钟周期内并行处理多个信号数据。但是当数据串行输入时,指令执行的并行性并不能体现出其优势。而且很多时候有些计算并不能在一个或两个时钟周期内执行完毕,如果每次输入的串行数据都需要等待上一次计算执行完毕后才能开启下一次的计算,那效率是相当低的。流水线就是解决多周期下串行数据计算效率低的问题。2.什么是流水线流水线设计就是将组合逻辑系统地分割,并在各个部分(分级)之间插入寄存器,并暂存中间数据的方法
2022-05-03 16:29:16
822
4
原创 单端口RAM的实现以及 generate... for...语句
来自牛客的题:由于本人知识尚浅,只是想记录一下自己的刷题过程中遇到的问题以及想法,也行存在不对的地方,欢迎各位大佬指正;在此之前,我也会偶尔用到RAM,但并不清楚怎么设计它,如今好像明白了点;在RAM模块中,我们会定义一个寄存器,通过这个寄存器对读写数据进行处理,在这道题中,我们需要设计一个位宽为4,深度为128的单端口RAM;首先,我们定义一个存储器mem:前面的[3:0]指数据位宽,后面的[127:0]指数据深度,即存储的数据量;但是数据量太多,我们不可能一一赋值,因此,我.
2022-05-01 10:31:36
530
原创 脉冲同步电路
题目:跨时钟域提取一个单时钟周期宽度脉冲(从快到慢)我们可以利用一个过程值记录快时钟域下脉冲的次数,如图,当data_in == 1'b1时,令in_flag取反,如下所示通过in_flag的值来产生data_reg,如下所示,这里我们利用了移位的方式来为data_reg赋值;最后利用组合逻辑进行高两位异或赋值;波形图如下:完整代码:`timescale 1ns/1nsmodule pulse_detect(input clk_fast ,in...
2022-04-29 14:08:04
338
原创 实现同步FIFO,FIFO的位宽和深度可配置。
同步fifo的设计比异步fifo简单,不需要进行跨时钟域处理,主要难点在于空、满信号的判断;首先,我们需要先了解一下fifo的读写:可以通俗的理解为装水与取水,wr_addr便是向罐子里装水,而rd_addr便是取水,如果wr_addr的速度大于rd_addr速度,则一段时间后罐子便会装满,即fifo写满,反之,fifo读空,一般而言,装水与取水不同时进行,当罐子装满后,full信号拉高,通知rd_addr进行取水,当罐子里没水后,empty信号拉高,在装水;现在是如何判断空,满呢,我们可以..
2022-04-28 16:15:14
2248
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人