自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 从零开始的FPGA学习16-DDR3

FPGA DDR3读写控制

2022-07-13 19:51:09 695 1

原创 从零开始的FPGA学习14--基于 I2C 协议的 EEPROM 驱动控制

基于 I2C 协议的 EEPROM 驱动控制I2C物理层I2C协议层I2C 整体时序图I2C设备器件地址I2C设备存储地址I2C 读/写操作I2C 单字节写操作I2C 页写操作I2C 随机读操作I2C 顺序读操作实战演练I2C 驱动模块I2C物理层I2C协议层I2C 整体时序图图中标注①表示“总线空闲状态”,在此状态下串口时钟信号 SCL 和串行数据信号 SDA 均保持高电平,此时无 I2C 设备工作。图中标注②表示“起始信号”,在 I2C 总线处于“空闲状态”时,SCL 依旧保持高电

2022-07-09 16:32:13 546

原创 从零开始的FPGA学习13-串口RS232详解

从零开始的FPGA学习13-串口RS232详解原理RS232 通信协议工程整体框图串口数据接收模块波形图:原理RS232 通信协议RS232 是 UART 的一种,没有时钟线,只有两根数据线,分别是 rx 和 tx,这两根线都是 1bit 位宽的。其中 rx 是接收数据的线,tx 是发送数据的线。串口数据的发送与接收是基于帧结构的,即一帧一帧的发送与接收数据。每一帧除了中间包含 8bit 有效数据外,还在每一帧的开头都必须有一个起始位,且固定为 0;在每一帧的结束时也必须有一个停止位,且固定为 1

2022-07-06 18:28:46 3368 4

原创 从零开始的FPGA学习12-FIFO(同步FIFO、异步FIFO)

FIFO(First In First Out,即先入先出),是一种数据缓冲器,用来实现数据先入先出的读写方式。与 ROM 或 RAM 的按地址读写方式不同,FIFO 的读写遵循“先进先出”的原则,即数据按顺序写入 FIFO,先被写入的数据同样在读取的时候先被读出,所以FIFO存储器没有地址线。FIFO 存储器主要是作为缓存,应用在同步时钟系统和异步时钟系统中,在很多的设计中都会使用,后面实例中如:多比特数据做跨时钟域的转换、前后带宽不同步等都用到了FIFO。FIFO 根据读写时钟是否相同,分为 SCFIF

2022-06-05 17:22:20 921

原创 从零开始的FPGA学习11-ROM、RAM、FIFO合集(上)

从零开始的FPGA学习11-ROM、RAM、FIFO合集(详细版)(上)ROM简介波形RAM单端口 RAM简单双口RAM真双口RAM代码波形ROM简介ROM 是只读存储器(Read-Only Memory)的简称,是一种只能读出事先所存数据的固态半导体存储器。Xilinx 推出的 ROM IP 核分为两种类型:单端口 ROM(Single-Port Rom)和双端口ROM(Dual-Port ROM)。对于单端口 ROM 提供一个读地址端口和一个读数据端口,只能进行读操作;双端口 ROM 与单端口

2022-05-31 12:59:33 1240

原创 从零开始的FPGA学习5-同步复位D触发器、异步复位D触发器

从零开始的FPGA学习5-同步复位D触发器、异步复位D触发器原理同步复位的 D 触发器异步复位的 D 触发器特点代码原理同步复位的 D 触发器  同步复位的 D 触发器中的“同步”是和工作时钟同步的意思,也就是说,当时钟的上升沿(也可以是下降沿,一般习惯上为上升沿触发)来到时检测到按键的复位操作才有效,否则无效。  如图 14-5 所示最右边的三根红色的竖线表达的就是这种效果,sys_rst_n 被拉低后 led_out 没有立刻变为 0,而是当 syc_clk 的上升沿到来的时候 led_out

2022-05-24 09:08:26 7395 2

原创 使用pytorch进行参数量化

使用pytorch进行参数量化参考文章原理代码实现结果验证参考文章将参数量化为二进制补码定点数的形式原作者:皮皮宽原理如果首位为符号位,则4.5的补码为 0100.1-4.5的补码为1011.1FPGA中存储参数的格式必须一致,否则需要消耗大量资源去实现不同的解码方式,我们统一将参数n转换为,1位符号位,m位整数位和f位小数位,小数部分截断过小的位数如果选4位整数(m = 4), 4位小数(f = 4), 首位符号位,则4.5的补码为 00100 1000-4.5的补码为11011 1

2022-04-13 21:45:51 566

原创 Pycharm-Python报错合集(持续更新)

Pycharm-Python报错合集(持续更新)from torch.utils.tensorboard import SummaryWriter 时报错: cannot import name ‘_wsgi_decoding_dance’,安装不同版本的tensorboard、文件命名检查了都没问题。解决方案:from torch.utils.tensorboard import SummaryWriter替换为 from tensorboardX import SummaryWriter,之后成功

2022-04-13 12:24:20 1695

转载 计算机/数字ic基础知识

原文链接:https://blog.csdn.net/qq_28632639/article/details/97269103负数原码与补码之间相互转换背景:计算机内部用补码表示二进制数。符号位 1 表示负数,0 表示正数。正数:无区别,正数 的原码= 反码 = 补码重点讨论负数若已知 负数 -8,则其原码为:1000 1000,(1为符号位,为1代表负数,为0代表正数)反码为:1111 0111,(符号位保持不变,其他位置按位取反)补码为:1111 1000,(反码 + 1)即在计算机中

2022-04-06 17:41:13 245

原创 从零开始的LSTM网络FPGA/verilog实现0--python不调库搭建LSTM

从零开始的LSTM网络FPGA/verilog实现0--python不调库搭建LSTM调库实现自己搭建运行结果对比调库实现import torchimport torch.nn as nnfrom torch.nn import Parameterfrom torch.nn import initfrom torch import Tensorimport math### testdef reset_weigths(model): """reset weights ""

2022-04-06 13:13:48 1104

原创 从零开始的Vivado HLS视频处理(一)--HLS中视频的读入和播放

HLS中视频的读入和播放代码代码testbench,无需综合,直接仿真#include <cassert>#include <iostream>#include <stdio.h>#include <hls_opencv.h>using namespace cv;#define INPUT_VIDEO "D:/HLS_Pjt/object_tracking/source_code/ic1.avi"int main(){ //读取视频文件

2021-07-27 00:36:45 741

转载 从零开始的神经网络2-卷积神经网络

卷积神经网络–输入层、卷积层、激活函数、池化层、全连接层参考文章 卷积神经网络各层介绍

2021-07-02 22:53:01 70

原创 从零开始的神经网络--环境搭建

从零开始的神经网络1.Pycharm的下载与安装官网下载,可下载community版本,免费。2.安装python解释器在这一步之后,可以运行一些简单的hello world代码,来验证之前操作的正确性。3.安装Anoconda目的是使用conda安装第三方库,如接下来要安装的Pytorth。4.安装Pytorth首先要查看自己电脑显卡支持cuda的最高版本,然后安装相应的Pytorth。cuda下载在这个网页中,可以找到对应版本的下载指令。速度有点慢,可换源到国内。(阿里源…)5.安装

2021-06-13 22:48:21 1055 3

原创 安装Pycharm+Python

参考博客

2021-06-13 17:19:43 117 2

原创 Anaconda的安装与opencv库安装、升级

Anaconda的安装与opencv库安装Anaconda安装安装OpenCV库安装指定版本OpenCVAnaconda安装清华大学开源软件镜像站https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/安装OpenCV库pip install opencv-python -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.compip install

2020-12-28 14:39:14 1401 1

原创 python中利用matplotlib保存图片

已解决:利用matplotlib保存图片显示空白保存的时候出现保存空白图像的问题,是因为将plt.savefig(‘result.jpg’)放到了plt.show()之后,只要先保存在显示就可以正常保存了。import numpy as npimport matplotlib.pyplot as pltplt.imshow(frame[:,:,[2,1,0]])plt.savefig('result.jpg')plt.show()...

2020-12-17 13:27:22 1199

原创 FPGA数字图像处理2-图片旋转

FPGA数字图像处理2-图片旋转关键代码实现方法关键代码always@(posedge i_clk or negedge i_rst)begin if(!i_rst)begin rgb_data_o<=24'hffffff; address<=0; end else if(set_x_i>=Pic_X_Min&set_x_i<Pic_X_Max&set_y_i>=Pic_Y_Mi

2020-11-20 11:51:33 774

原创 FPGA的约束设计初步

FPGA的约束设计初步物理约束常用约束命令:图形化约束:时序约束静态时序分析– Static Timing Analysis物理约束常用约束命令:1、管脚约束:set_property PACKAGE_PIN 管脚号 [get_ports {引脚名称}]2、电平约束:set_property IOSTANDARD LVCMOS33 [get_ports {引脚名称}]3、上拉约束:set_property PULLUP true [get_ports 引脚名称]4、下拉约束:set_proper

2020-10-29 17:44:27 1394

原创 xilinx IOBUF的用法

转载自:博客园在vivado中,连接的管脚的信号一般都会自动添加OBUF或IBUF。但是对于inout类型的接口,不会主动添加IOBUF,因为in/out切换需要控制信号,需要用户自己分配好。在Language Template中能找到IOBUF的标准实例:// IOBUF: Single-ended Bi-directional Buffer// All devices// Xilinx HDL Language Template, version 2017.2 IOB

2020-10-26 19:34:30 1573

原创 FPGA数字图像处理1--RGB转灰度

RGB图转化成灰度图RGB图转灰度图经典的心理学公式:Gray = R*0.299 + G*0.587 + B*0.114 一般地,在程序中浮点型的运算较整型慢,特考虑用整型移位的方式进行色彩转化。不同的整型值大小对应不同的转化精度,2位至20位的精度转化公式如下:Gray = (R1 + G2 + B1) >> 2Gray = (R2 + G5 + B1) >> 3Gray = (R4 + G10 + B2) >> 4Gray = (R9 + G19 +

2020-09-22 11:19:06 956

原创 从零开始的FPGA学习10-UART串口/HC-05蓝牙模块接收数据

UART串口/HC-05蓝牙模块接收数据基本原理协议简介工作原理源代码基本原理协议简介协议简介:UART作为异步串口通信协议的一种,工作原理是将传输数据的每个字符一位接一位地传输。其中每一位(Bit)的意义如下:起始位:先发出一个逻辑”0”的信号,表示传输字符的开始。数据位:紧接着起始位之后。数据位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。从最低位开始传送,靠时钟定位。奇偶校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验

2020-09-17 17:02:23 6104 7

原创 从零开始的FPGA学习7-分频器

从零开始的FPGA学习6偶数分频器奇数分频器完整分频器代码仿真波形图结束语偶数分频器假设为 N 分频,由待分频时钟触发计数器计数,当计数器从 0 计数到 N/2-1 时,输出时钟进行翻转,并给计数器一个复位信号,使得下一个时钟从零开始计数。四分频原理图:奇数分频器实现占空比为 50%的 N 倍奇数分频进行上升沿触发进行模 N 计数,计数选定到某一个值进行输出时钟翻转,然后经过(N-1)/2 再次进行翻转得到一个占空比非 50%奇数 n 分频时钟。进行下降沿触发的模 N 计数,到和上升沿触发

2020-08-11 09:58:19 2499

原创 基于状态机的密码锁

基于状态机的密码锁原理图代码仿真波形图实验现象原理图Key1 按下为 0 信号,Key2 按下为 1 信号代码module lab( input clk, input key0, //按下代表0,按键值不按为1,按下为0 input key1, //按下代表1 output reg led

2020-08-11 09:57:35 1851

原创 从零开始的FPGA学习9-状态机实例

状态图Mealy 型有限状态机module lab( input clk, input rst, input A, output reg F, output reg G ); reg [3:0] state ; parameter Idle = 4'b1000; parameter Start = 4'b0100; parameter Stop = 4'b0010; parameter Cle

2020-07-18 16:05:32 586

原创 vivado综合常见报错(持续更新)

[Synth 8-434] mixed level sensitive and edge triggered event controls are not supported for synthesis错误原因:一个触发器不能同时是边缘触发和电平触发的,因此不可被综合。所以最好统一,上图的情况可以去掉negedge。...

2020-07-16 11:15:43 7247

原创 从零开始的FPGA学习8-有限状态机(FSM)简介

有限状态机FSM简介摩尔型状态机与米利型状态机简介:摩尔状态机:米利状态机:一个简单的状态图摩尔型状态机与米利型状态机注:文中部分图片来自CrazyUncle简介:有限状态机是由寄存器组和组合逻辑构成的硬件时序电路,其状态(即由寄存器组的1和0的组合状态所构成的有限个状态)只可能在同一时钟跳变沿的情况下才能从一个状态转向另一个状态,究竟转向哪一状态还是留在原状态不但取决于各个输入值,还取决于当前所在状态。(这里指的是米里Mealy型有限状态机,而莫尔Moore型有限状态机究竟转向哪一状态只取决于当前

2020-07-15 21:43:12 679

原创 从零开始的FPGA学习6-加法/减法计数器

从零开始的FPGA学习6-计数器加法计数器原理代码仿真波形RTL减法计数器原理代码仿真波形RTL结束语加法计数器原理每次时钟脉冲信号 clk 为上升沿时, 计数器会将计数值加 1。下图为模4计数器。代码module lab( input clk, output reg [3:0]Q=0 //模16计数器 ); always @(posedge clk) begin Q<=Q+1; end

2020-07-14 14:33:32 4184

原创 从零开始的FPGA学习5-D触发器合集(详细)

从零开始的FPGA学习5基本D触发器原理:基本D触发器原理:

2020-07-14 12:12:04 1871

原创 从零开始的FPGA学习4-比较器、全加器

从零开始的FPGA学习4-比较器、全加器比较器原理代码仿真波形图全加器真值表代码仿真波形图RTL图:结束语比较器原理注:这里的比较器引入了时钟,更丰富。引脚说明:A、B:输入信号,位宽为2CLK:时钟输入RST:为0时比较器正常工作,为1时复位AGTB :当 A>B 时,其值为 1,否则为 0AEQB :当 A=B 时,其值为 1,否则为 0ALTB : 当 A<B 时,其值为 1,否则为 0代码module lab( input [1:0]A,B, i

2020-07-13 15:58:01 3502

原创 从零开始的FPGA学习3-设计简单的组合逻辑电路

从零开始的FPGA学习3-设计简单的组合逻辑电路4-2线编码器4-2线编码器 真值表:D0-D3为输入,Q0-Q1为输出。代码:module encoder( input [3:0]D, output reg[1:0]Q ); always@* begin case(D) 4'b0111:Q=2'b11; 4'b1011:Q=2'b10;

2020-07-12 23:22:47 684

原创 从零开始的FPGA学习2-第一个实验

从零开始的FPGA学习2第一个程序--LED第一个程序–LED下面展示一些 内联代码片。// A code blockvar foo = 'bar';// An highlighted blockvar foo = 'bar';

2020-07-12 20:51:20 407

原创 从零开始的FPGA学习1-准备篇

软硬件准备下载vivado 2018.2,Xilinx官网上有,但下载速度慢,用的前辈百度网盘资源用的Xilinx公司的pynq-z2,还有一块便宜点的小板子;另外准备了一个Arduino UNO和其他外设,便于之后的SPI通信、IIC通信等。基础知识学习正好有 verilog数字设计教程-夏闻宇 和 搭建你的数字积木-数字电路逻辑设计的电子书,把最基本读语法、语句和结构过了一遍,然后准备上手软件写一些简单的代码,代码也会在下一个博客贴出来。...

2020-07-12 16:33:32 522

空空如也

空空如也

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

TA关注的人

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