草庐IT

【FPGA】Verilog 实践:半加器与全加器 | 半减器与全减器 | Code Converter

写在前面:本章主要理解加法器和减法器的概念,并了解Codeconverter的概念。使用Verilog实现多种加法器、减法器和代码转换器,通过FPGA验证Verilog实现的电路的行为。     本篇博客全站热榜排名:12Ⅰ.前置知识0x00半加器与全加器①半加器()有两个输入和输出:输入由2个1-bit 数组成,输出由 和 组成。当两个1-bit数相加大于可以用1-bit表示的数时,会生成进位(Carry)。②全加器()是Carry也是一个可加的加法器,用作实际的基础运算电路。0x01半减器与全减器减法器与加法器相反,是用于1-bit数减法的逻辑电路。半减器() 由 和 组成,分别表示两个1

【FPGA】Verilog 实践:半加器与全加器 | 半减器与全减器 | Code Converter

写在前面:本章主要理解加法器和减法器的概念,并了解Codeconverter的概念。使用Verilog实现多种加法器、减法器和代码转换器,通过FPGA验证Verilog实现的电路的行为。     本篇博客全站热榜排名:12Ⅰ.前置知识0x00半加器与全加器①半加器()有两个输入和输出:输入由2个1-bit 数组成,输出由 和 组成。当两个1-bit数相加大于可以用1-bit表示的数时,会生成进位(Carry)。②全加器()是Carry也是一个可加的加法器,用作实际的基础运算电路。0x01半减器与全减器减法器与加法器相反,是用于1-bit数减法的逻辑电路。半减器() 由 和 组成,分别表示两个1

Verilog基础知识(二) Testbench编写

        编写Testbench的目的是把RTL代码在Modsim中进行仿真验证,通过查看仿真波形和打印信息验证代码逻辑是否正确。下面以3-8译码器说明Testbench代码结构。         Testbench代码的本质是通过模拟输入信号的变化来观察输出信号是否符合设计要求!因此,Testbench的核心在于如何模拟输入信号,并把模拟的输入信号输入到功能模块中产生输出信号,如上图所示。解决方案为:通过随机数产生输入信号通过实例化模块把模拟输入信号传入功能模块中Testbench代码可自定义,也可自动生成!2自定义3-8译码器Testbench代码2.1 现有的功能模块为3-8译码器

Verilog基础知识(二) Testbench编写

        编写Testbench的目的是把RTL代码在Modsim中进行仿真验证,通过查看仿真波形和打印信息验证代码逻辑是否正确。下面以3-8译码器说明Testbench代码结构。         Testbench代码的本质是通过模拟输入信号的变化来观察输出信号是否符合设计要求!因此,Testbench的核心在于如何模拟输入信号,并把模拟的输入信号输入到功能模块中产生输出信号,如上图所示。解决方案为:通过随机数产生输入信号通过实例化模块把模拟输入信号传入功能模块中Testbench代码可自定义,也可自动生成!2自定义3-8译码器Testbench代码2.1 现有的功能模块为3-8译码器

异步FIFO的Verilg实现方法

写在前面    在上篇文章:同步FIFO的两种Verilog设计方法(计数器法、高位扩展法)中我们介绍了FIFO的基本概念,并对同步FIFO的两种实现方法进行了仿真验证。而异步FIFO因为读写时钟不一致,显然无法直接套用同步FIFO的实现方法,所以在本文我们将用Verilog实现异步FIFO的设计。1、什么是异步FIFO        异步FIFO有两个时钟信号,读和写接口分别采用不同时钟,这两个时钟可能时钟频率不同,也可能时钟相位不同,可能是同源时钟,也可能是不同源时钟。在现代逻辑设计中,随着设计规模的不断扩大,一个系统中往往含有数个时钟,多时钟域带来的一个问题就是,如何设计异步时钟之间的接

异步FIFO的Verilg实现方法

写在前面    在上篇文章:同步FIFO的两种Verilog设计方法(计数器法、高位扩展法)中我们介绍了FIFO的基本概念,并对同步FIFO的两种实现方法进行了仿真验证。而异步FIFO因为读写时钟不一致,显然无法直接套用同步FIFO的实现方法,所以在本文我们将用Verilog实现异步FIFO的设计。1、什么是异步FIFO        异步FIFO有两个时钟信号,读和写接口分别采用不同时钟,这两个时钟可能时钟频率不同,也可能时钟相位不同,可能是同源时钟,也可能是不同源时钟。在现代逻辑设计中,随着设计规模的不断扩大,一个系统中往往含有数个时钟,多时钟域带来的一个问题就是,如何设计异步时钟之间的接

一起学习用Verilog在FPGA上实现CNN----(一)总体概述

1总体概述为避免闭门造车,找一个不错的开源项目,学习在FPGA上实现CNN,为后续的开发奠定基础1.1项目链接大佬的开源项目链接:CNN-FPGA链接跳转界面如下:大佬的该项目已经发表论文,而且开源工程结构清晰,同时附带了硬件文档,所以对于咱们初学者来说,这个项目很友好发表的论文:硬件文档:1.2项目介绍用ZYNQFPGA搭建LeNet-5卷积神经网络(CNN),实现手写数字识别,数据集为MNIST。LeNet-5网络结构如图所示:图片来自附带的技术文档《HardwareDocumentation》1.2.1卷积(Convolution)LeNet-5网络有3个卷积层,每个层的卷积核大小均为5

一起学习用Verilog在FPGA上实现CNN----(一)总体概述

1总体概述为避免闭门造车,找一个不错的开源项目,学习在FPGA上实现CNN,为后续的开发奠定基础1.1项目链接大佬的开源项目链接:CNN-FPGA链接跳转界面如下:大佬的该项目已经发表论文,而且开源工程结构清晰,同时附带了硬件文档,所以对于咱们初学者来说,这个项目很友好发表的论文:硬件文档:1.2项目介绍用ZYNQFPGA搭建LeNet-5卷积神经网络(CNN),实现手写数字识别,数据集为MNIST。LeNet-5网络结构如图所示:图片来自附带的技术文档《HardwareDocumentation》1.2.1卷积(Convolution)LeNet-5网络有3个卷积层,每个层的卷积核大小均为5

Verilog 代码编写 DDS信号发生器(幅频相可调正弦波、方波、三角波、锯齿波)纯VIVADO编写仿真

    DDS(DirectDigitalSynthesizer)即数字合成器,是一种新型的频率合成技术,具有相对带宽大,频率转换时间短、分辨率高和相位连续性好等优点。较容易实现频率、相位以及幅度的数控调制,广泛应用于通信领域。    DDS的基本结构框图如下所示:       由图可以看出,DDS主要由相位累加器、相位调制器、波形数据表以及D/A转换器构成。本次实验仅在VIVADO平台上完成DDS的仿真,故设计流程不需要D/A转换器,在PC端完成仿真设计即可。若需要结合FPGA开发板使用,则需要再外接一个D/A转换模块,将产生的数字信号转换为模拟信号即可。    其中相位累加器由N位加法器与

Verilog 代码编写 DDS信号发生器(幅频相可调正弦波、方波、三角波、锯齿波)纯VIVADO编写仿真

    DDS(DirectDigitalSynthesizer)即数字合成器,是一种新型的频率合成技术,具有相对带宽大,频率转换时间短、分辨率高和相位连续性好等优点。较容易实现频率、相位以及幅度的数控调制,广泛应用于通信领域。    DDS的基本结构框图如下所示:       由图可以看出,DDS主要由相位累加器、相位调制器、波形数据表以及D/A转换器构成。本次实验仅在VIVADO平台上完成DDS的仿真,故设计流程不需要D/A转换器,在PC端完成仿真设计即可。若需要结合FPGA开发板使用,则需要再外接一个D/A转换模块,将产生的数字信号转换为模拟信号即可。    其中相位累加器由N位加法器与