专栏前言本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网`timescale1ns/1nsmodulepulse_detect( input clk_fast , input clk_slow , input rst_n , input data_in , output dataout); regdata_level,data_level1,data_level2,data_level3; //脉冲信号转电平信号 always@(posedgeclk_fastornegedgerst_n)begin if(~rst_n)da
IIC模块Verilog实现–用IIC协议从FPGA端读取E2PROM下面是design设计I2C_dri.vmoduleIIC_CONTROL#(parameterSLAVE_ADDR=7'b1010000,//E2PROM从机地址parameterCLK_FREQ=26'd50_000_000,//50MHz的时钟频率parameterI2C_FREQ=18'd250_000//SCL的时钟频率)(inputclk,inputrst_n,//----------------------------------------------//input[15:0]i2c_addr,//地址inp
1.1简介复位指的是将寄存器中的值全部置成默认值,一般复位包括同步复位和异步复位,复位可以由硬件开关控制,也可以由软件逻辑控制。复位电路复杂是因为复位本身是对大规模的硬件单元进行一种操作,必须要结合底层的设计来考虑问题。相信大家在学习FPGA或者ASIC的时候都有如下的疑问:1、数字逻辑为什么需要复位?2、FPGA板上面没有复位按键怎么办?3、复位只有通过按键复位一个控制方式吗?4、同步复位好还是异步复位好呢?5、复位是高电平有效还是低电平有效好呢?1、数字逻辑为什么需要复位?数字电路中寄存器和RAM在上电之后默认的状态和数据是不确定的,如果有复位,我们可以把寄存器复位到初始状态0,RAM的数
文章目录前言异步FIFO的工作原理1.概述2.地址的跨时钟问题3.空满信号的判决条件异步FIFO的实现异步FIFO的仿真测试阅读本文前,建议先阅读下面几篇文章:同步FIFO二进制转格雷码的实现前言 在上篇文章同步FIFO中简要介绍了FIFO的基本概念以及同步FIFO的实现。本篇文章将重点介绍异步FIFO的工作原理以及硬件实现。异步FIFO的工作原理1.概述 异步FIFO的读写时钟不同,FIFO的读写需要进行异步处理,异步FIFO常用于多bit数据跨时钟域处理。异步FIFO一般有复位rst_n、读端口和写端口。读端口一般包括读时钟(rd_clk)、读使能(rd_en)、读数据(data_ou
名称:Quartus电子密码锁Verilog代码远程云端平台(文末获取)软件:Quartus语言:Verilog代码功能:电子密码锁通过开关控制是否开始输入密码可以通过按键控制输入密码密码输入错误则报警输入密码10秒内没有开锁则报警开锁后数码管显示OP内置初始密码4321本代码已在远程云端平台验证,远程云端平台如下,其他远程云端平台可以修改管脚适配:1.工程文件2.程序文件3.程序编译4.RTL图5.管脚分配6.Testbench7.仿真图整体仿真图分频模块仿真图按键上升沿检测模块Led流水灯控制模块状态控制模块显示模块部分代码展示://数字密码锁module mimasuo(input cl
您需要一块带视频输出的FPGA板。我们将在640x480下工作,几乎任何视频输出都可以在此像素工作。它有助于轻松地对FPGA板进行编程并相当熟悉Verilog。如果您没有开发板,请不要担心,您可以使用Verilator模拟器。材料LatticeiCE40即用型开发平台(XilinxArtix-7)视频板(XilinxArtix-7)使用SDL(简单直接媒体层)进行Verilator模拟屏幕是一个微型宇宙,有自己的空间和时间。从远处看,屏幕显示出平滑的二维图像。近距离观察,它会分解成许多单独的色块:红色、绿色和蓝色。我们将这种复杂性隐藏在像素的抽象概念后面:我们可以控制的屏幕的最小部分。典型的高
Verilog编码规范本文为自己研究实践与翻阅资料比如华为规范书等所得,主要关于编码问题以及综合电路映射问题,规范自己写出复用性更好、综合性能更好、便于仿真的代码和电路。文章目录Verilog编码规范第一部分VerilogRTL规范1、Module2、选择器(if-else、case、?:)3、宏参数Macro4、时钟5、复位第二部分设计方法规范1、设计优先2、可复用性编码2.1命名原则第三部分Verilog仿真规范第一部分VerilogRTL规范1、Module顶层模块应该只是模块间的互联,尽量避免再做逻辑。如不能再出现对reg变量赋值等,这样做的目是为了更有效的综合。因为在顶层模块中出现
目录1、前言2、JPG解码器详解3、设计思路和架构4、vivado工程详解5、上板调试验证程序调试方法6、福利:工程代码的获取1、前言jpg是一种压缩的图片格式,之所以压缩是为了减小图片所占空间,jpg压缩原理这里不罗嗦,可以自行百度或者b站,大佬讲的比我好,jpg解压缩就是逆向过程,用opencv啥的解压缩就是一句话的事儿,但对于fpga硬件来说就是大型工程了。本设计使用zynq7100位平台,将jpg图片的c语言数组写入PS侧DDR3中缓存作为jpg解码器的输入,使用自研的AXI4控制器从DDR3中读取出jpg图片数据,并转换为AXIS数据流送入jpg解码器解码为rgb数据输出,至此,jp
在使用FPGA的时候我们经常会遇到这样一个问题,这个信号我们到底是定义成wire类型还是定义成reg类型,如果定义不对编译软件也会通不过,有时候你通过编译软件的的提示将它改了回来,但你却并不明白是为什么会报错,而且下次还会再出现,当它再次出现时,我们又得重复的去修改,这样不仅耽误我们开发的时间,而且还影响我们学习的心情,所以这篇文章就是帮助你如何正确使用wire和reg来定义一个信号。1wire和reg的区别我们知道Verilog是硬件描述语言,就是通过描述构造底层的硬件电路来实现我们所需要的功能,那么当我们在设计数字电路的过程中经常需要将不同的芯片的引脚相互连接起来,而这一个过程其实就是wi
Verilog秒表计时器设计设计一个基于Verilog的秒表计时器,该计时器可以在嵌入式系统中使用。下面是详细的设计说明和相应的源代码。设计说明:秒表计时器是一种常见的计时工具,可以用于测量时间间隔。在嵌入式系统中,我们可以使用Verilog语言来实现一个简单的秒表计时器。该计时器将使用FPGA或ASIC等硬件设备来实现。以下是秒表计时器的设计要点:输入信号:start:开始计时的触发信号stop:停止计时的触发信号reset:重置计时器的触发信号输出信号:seconds:计时器的输出,以秒为单位内部信号:clk:时钟信号,用于驱动计时器count:计数器,用于保存经过的时钟周期数设计思路:在