草庐IT

$verilog

全部标签

verilog设计技巧 (1) :复位技术(同步复位、异步复位、异步复位同步释放)

一、复位的类型和划分通常,芯片的复位信号分为两大类,全局复位和局部复位;全局复位:能够确保每个寄存器都处于可控的状态;局部复位:基于软件功能的需求而存在的独立复位,对于某一个模块的单独控制,建议使用局部复位;(等待完善)二、同步复位定义只有在时钟有效沿采样到复位信号的有效电平时,才会执行复位操作;代码always@(posedgeclk)begin  if(!rst_n)    out综合后电路可能一:可能二:优缺点优点:一般可以确保电路是同步电路,有利于静态时序分析;有利于仿真器的仿真;可以滤除复位信号频率大于时钟频率的毛刺;缺点:如综合电路图所示,因为逻辑器件库中的DFF只有异步复位端口,

Vscode环境下Verilog / System Verilog格式化工具推荐及安装配置方法

最近尝试了几款Verilog代码格式化工具,之前一直没有找到效果十分满意的工具,这次找到了谷歌推出的这款工具,同时支持Verilog和SystemVerilog,效果非常好,支持自定义的格式化参数也很丰富,在此做一个推荐。 1.首先在插件中心安装这款插件:SystemVerilogandVerilogFormatterSystemVerilogandVerilogFormatter-VisualStudioMarketplace2.下载verible。verible是谷歌提供的一块verilog工具,我们主要使用它的代码格式化工具。https://github.com/google/verib

Vscode环境下Verilog / System Verilog格式化工具推荐及安装配置方法

最近尝试了几款Verilog代码格式化工具,之前一直没有找到效果十分满意的工具,这次找到了谷歌推出的这款工具,同时支持Verilog和SystemVerilog,效果非常好,支持自定义的格式化参数也很丰富,在此做一个推荐。 1.首先在插件中心安装这款插件:SystemVerilogandVerilogFormatterSystemVerilogandVerilogFormatter-VisualStudioMarketplace2.下载verible。verible是谷歌提供的一块verilog工具,我们主要使用它的代码格式化工具。https://github.com/google/verib

Verilog实现DDS IP核

Verilog实现DDSIP核写本文的目的实际上是由于在研究这个问题的时候,发现网上很多dds核的Verilog实现模块都是储存了一个完整的sin波形,但实际上这样就出现了重复信息存储,浪费了存储空间,仅仅只需要1/4个周期即可存储完整的信息,但是如果采用1/4个周期的信号时就很容易出现对称点的错位问题,这样就会使得我们在进行matlab的pwelch验证时,功率谱出现了较大的倍频分量。一、DDS核简介首先我们来介绍一下DDS核DDS信号发生器采用直接数字频率合成(DirectDigitalSynthesis,简称DDS)技术,把信号发生器的频率稳定度、准确度提高到与基准频率相同的水平,并且可

Verilog实现按键消抖

目录1、实验平台2、实验目的2.1、实验要求3、实验流程3.1、实验原理3.2、系统架构3.3、功能模块划分3.3.1、按键消抖模块模块框图信号定义时序信号图设计文件仿真文件仿真图3.3.2、LED驱动模块模块框图信号定义信号时序图设计文件仿真文件仿真图3.3.3、顶层文件3.4、上板验证4、总结1、实验平台软件:PC、QuartusPrime18.1、Modelsim10.5b硬件:AlteraFPGA开发板(EP4CE6E22F17C8)2、实验目的1、通过延时方式实现按键消抖2、状态机demo熟悉3、状态机实现按键消抖(多位宽)2.1、实验要求使用经过消除抖动后的按键信号控制LED呈现两

FPGA-Verilog实现uart串口异步通信

文章目录前言一、Uart串口通信二、串口异步通信实现1.程序框图2.波特率设置模块3.串口发送控制模块4.串口发送控制模块三、结果1、仿真结果2、板级调试结果设计文件与仿真文件前言(完整代码在文末,包括仿真文件与设计文件,通过仿真与板级验证)本文利用verilog语言实现uart串口异步通信,FPGA接收串口发来的数据,并将接收到的数据通过tx端发送到PC端,在PC端串口打印显示数据开发板:SF-AT7软件平台:Vivado2016.2一、Uart串口通信uart串口通信是一种异步串行全双工通信方式,tx端用于数据发送,rx端用于数据接收。信号线空闲时为高电平。由于是异步通信方式,数据发送会包

优秀的 Verilog/FPGA开源项目介绍(三十五)- TinyML

绪论查看《为什么FPGA/ADC通信在工业领域下更喜欢用GPMC接口?》了解TinyML~今天介绍几个与TinyML相关的开源项目。TinyMLCookbookhttps://github.com/PacktPublishing/TinyML-Cookbook介绍这本书是关于TinyML的,TinyML是一个快速发展的领域,位于机器学习和嵌入式系统的独特交叉点,可以使AI在微控制器等极低功耗设备中应用。TinyML是一个充满机遇的激动人心的领域。只需很少的预算,我们就可以赋予与周围世界巧妙互动的物体生命,并让我们的生活方式变得更美好。本书想通过实例来扫除这些障碍,让没有嵌入式编程经验的开发者也

FPGA数字IC刷题58道Verilog题解代码及视频讲解【FPGA探索者】【同步/异步FIFO】【跨时钟】

牛客Verilog刷题入门篇1~24+进阶篇1~34题解代码,所有代码均能通过测试,配合视频讲解效果更佳。为避免内容冗余,本文只给出代码,部分题目给出必要说明。很多题目本身出题有些问题,着重理解题目,没必要钻牛角尖。本文作者:FPGA探索者目录文章目录视频讲解合集入门篇1~24题VL1四选一多路器解法一三目运算符解法二case语句三目运算符?:case语句VL2异步复位的串联T触发器VL3奇偶校验(实际上应该是奇偶检测)VL4移位运算与乘法VL5位拆分与运算VL6多功能数据处理器VL7求两个数的差值VL8使用generate...for语句简化代码使用generate...for使用forVL

用verilog编写按键消抖代码

本代码在按键按下和松开情况下均能消抖,消抖延时20ms(时钟频率为100MHz时)。代码如下modulekey3_led2(//fromsysteminput   input   clk,   input   rstn,//fromexternalinputtopl   input   ex_key1,      //按键从PL端输入//frompltops   output   reg   pl_key1   //处理后的按键信号传给PS端   );parameter   delay_t=21'd2_00;//0_000;   //时钟100MHz,延时20ms//按键输入信号异步转同步(消

System Verilog数据类型及系统函数

目录1.数据类型1.1四状态数据类型1.2 二状态数据类型2. 数组定义与初始化2.1 定宽数组定义及初始化2.3 动态数组2.4关联数组3.队列定义与操作4.枚举类型定义与操作5. 字符串类型定义与操作6. 创建新类型结构(typedef、struct)7. 数组系统函数8. 数组缩减处理函数9. 数组排序函数10. 数组定位符函数11. 数据类型转化赋值11.1显示转换            11.2 隐式转换1.数据类型1.1四状态数据类型包含0、1、Z(高阻态)、X(未初始化,缺省值)四种状态;Note:四状态变量驱动二状态变量时,Z和X状态转换成0状态。logic[3:0]a;