草庐IT

FPGA学习笔记(2):半精度浮点数乘法器和半精度浮点数加法器的Verilog实现

开发环境1.Vivado2019.22.仿真:VivadoSimulater半精度浮点数介绍IEEE754-2008包含一种“半精度”格式,只有16位宽。故它又被称之为binary16,这种类型的浮点数只适合用于存储那些对精度要求不高的数字,不适合用于进行计算。与单精度浮点数相比,它的优点是只需要一半的存储空间和带宽,但是缺点是精度较低。半精度的格式与单精度的格式类似,最左边的一位仍是符号位,指数有5位宽且以余-16(excess-16)的形式存储,尾数有10位宽,但具有隐含1。具体半精度浮点数转换方法有兴趣的读者可以参考:半精度浮点数详解本文不再赘述半精度浮点数乘法器实现半精度浮点数乘法器的

FPGA学习——驱动WS2812B

FPGA驱动WS2812B近期准备复现紫光的视频氛围灯,现在学习了如何驱动WS2812B将实现任意灯的点亮以及流水实现。目录FPGA驱动WS2812B原理代码效果原理这个灯带每个灯珠里面都有一个芯片控制,只要按照一定的时序发送数据即可控制其亮灭。只要把24位RGB一位一位发送出去即可,也就是只要发送0码或者1码,按顺序发送24个即可。下面是发送时序。很明显0码和1码并不是说给个低电平或者高电平就行,而是给一个占空比不同的pwm波,比如0码就是给220ns380ns的高电平再给580ns1.6us的低电平即可。1码同理。而reset码就是280us的低电平。可以先发送N组24bit的数据再接一个

基于fpga的车牌识别系统(已上板实现,完整系统)

基于fpga的车牌识别系统(已上板实现,完整系统)modelsim仿真代码可以上板验证有完整文档开发板:正点原子达芬奇Artix-7FPGA开发板A7XilinxXC7A35T。1.设计概要针对车牌识别项目,车牌定位的准确与否直接影响到车牌字符的识别和提取。目前关于车牌定位的算法有很多种,其中比较成熟的有基于车牌边缘特征提取车牌的算法、基于彩色分割提取车牌的算法以及基于小波变换和数学形态等方法来识别车牌的位置。本设计基于色彩分量的灰度化方法,该方法不仅可以消除小型民用车牌图片的背景和车身信息,还可以较好的保留车牌区域信息,从而降低定位难度,简化定位步骤,提高小型民用车车牌定位的效率。其RGB各

FPGA时序分析与约束(8)——时序引擎

一、概述    要想进行时序分析和约束,我们需要理解时序引擎究竟是如何进行时序分析的,包括时序引擎如何进行建立分析(setup),保持分析(hold),恢复时间分析(recovery)和移除时间分析(removal)。二、时序引擎进行建立时间分析1、确定建立时间要求(建立时间的捕获沿-建立时间的发起沿)        发起沿(launchedge,源时钟产生数据的有效时钟沿),捕获沿(captureedge,目的时钟捕获数据的有效时钟沿)。        时序引擎会找出发起时钟和捕获时钟的最小公共周期,然后在最小公共周期内找到所有发起时钟沿和捕获时钟沿的所有可能的情况,并在所有可能的情况中挑选

基于FPGA的图像自适应阈值二值化算法实现,包括tb测试文件和MATLAB辅助验证

目录1.算法运行效果图预览2.算法运行软件版本3.部分核心程序4.算法理论概述4.1Otsu方法4.2AdaptiveThresholding方法4.3、FPGA实现过程5.算法完整程序工程1.算法运行效果图预览2.算法运行软件版本Vivado2019.2matlab2022a3.部分核心程序`timescale1ns/1ps////Company://Engineer:////CreateDate:2022/07/2801:51:45//DesignName://ModuleName:test_image//ProjectName://TargetDevices://ToolVersions

Verilog关键字【FPGA】

语法网址:1.1Verilog教程|菜鸟教程官方视频:  04-第四讲-初识Verilog_哔哩哔哩_bilibili 引脚状态:引脚状态:0(0或假)、1(1或真)、x/X(未知)、z/Z(高阻)输入inputwire//是bool类型,用于去绑定FPGA的引脚inputwire[7:0]//是byte类型输出outputwire//是bool类型outputwire[7:0]//是byte类型电线wire//导线wire[0:0]一根导线wire[7:0]八根电线寄存器reg//bool类型的寄存器reg[63:0]//long类型的寄存器,64bit使用always和initial语句时

5.2 FPGA:基于verilog的LED流水灯设计(多种方法)

目录设计目标:8个LED灯以每0.5s的速率进行循环闪烁方法1:移位法实现设计模块仿真代码实验结果 方法2:循环移位方法 设计模块方法3:使用三八译码器实现流水灯顶层模块底层模块设计目标:8个LED灯以每0.5s的速率进行循环闪烁当仿真时时间长,可以减小设计代码的计数次数,对分析移位功能没有影响。方法1:移位法实现设计模块moduleled_run(Clk,Reset_n,led);inputClk;inputReset_n;outputreg[7:0]led;reg[24:0]counter;always@(podedgeClkornegedgeReset_n)if(!Reset_n)cou

FPGA的verilog关于多路选择器(2选1)的设计

​​​​​​​实验目的实现一个多路选择器,进行“2选1”。也就是对2个信号进行1个特定条件的筛选,满足这个特定条件的话,其中一个的数值或信息就成为输出信号的数值或信息。不满足此条件的,就输出另一个信号的数值和信息。实验原理理论原理2个输入信号,选择其中一个作为输出。本项目当中,有输入信号in_1和in_2。当选通信号sel为高电平的时候,输出in_1;当选通信号sel为低电平时,输出in_2。硬件原理硬件使用:按键3个,led灯1个。原理设想:通过硬件设施来具体表现。Key1的按下,代表in_1输入高电平,反之意味着输入低电平。Key2按下,代表in_2输入高电平,反之意味着输入低电平。同理,

FPGA|跨时钟域

一、定义模块之间有数据交互但两个模块不是同一个时钟驱动。根据clk1与clk2是否为同步时钟,分为跨同步时钟域和跨异步时钟域。。根据信号是控制信号还是数据信号可以分为控制信号传输和数据信号的传输。解释同步时钟与异步时钟同步时钟:(1)同频同相位(2)同频不同相位,但相位固定(3)不同频,但存在整数倍的关系异步时钟:两时钟信号完全没有关系。二、单比特数据1、跨同步时钟域:(1)同频同相:该情况只要满足普通的同步电路设计的要求(建立和保持时间,信号的传输延时要在一定范围内)即可。一般不需要同步器。(2)同频不同相:相位为固定值,允许的传输时间小于一个时钟周期。但是只要满足控制信号的输出是在clk1

Sony索尼CMOS图像传感器SubLVDS与SLVS-EC接口FPGA开发方案

    索尼Sony公司的工业CMOS图像传感器主要有3种接口:Sub-LVDS、SLVS、SLVS-EC。目前主要通过FPGA芯片作为硬件采集方案。    Sub-LVDS接口的CMOS主要是IMX2XX系列和IMX3XX系列的一部分型号,例如IMX250,IMX252、IMX255、IMX392、IMX304等。    SLVS与SLVS-EC接口的CMOS主要是IMX3XX系列的一部分型号,IMX4XX系列和IMX5XX系列,例如IMX342,IMX387,IMX421,IMX422,IMX430,IMX437、IMX542等。    3种接口的主要参数指标及特点对比见下图。    3种