草庐IT

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;   

【FPGA】Verilog编程实现SDRAM读写(一) ----- 初识SDRAM

文章目录一.存储器及SDRAM分类1.存储器分类2.半导体存储器分类3.SDRAM分类二.什么是SDRAM?1.SDRAM基本概念2.SDRAM存储阵列3.SDRAM基本存储单元4.BANK概念5.SDRAM容量计算6.SDRAM功能框图7.SDRAM信号引脚8.SDRAM操作命令8.1禁止命令(INHIBIT)8.2空操作命令(NOP)8.3加载模式寄存器命令(LOADMODEREGISTER)8.3.1突发长度(BurstLength)8.3.2突发类型(BurstTYPE)8.3.3列选通潜伏期(CASLatency)8.3.4运行模式(OperatingMode)8.3.5写模式(Op

基于MIPS的五级流水线微处理器(CPU)设计、modelsim仿真通过、verilog编写

基于MIPS的五级流水线微处理器(CPU)设计摘要本设计为一个五级流水线CPU,此CPU结构为MIPS结构。流水线CPU与单周期和多周期CPU相比较,提高了指令的执行速度,改善了CPU的整体吞吐率,提高了CPU的性能。流水线CPU相对单周期CPU和多周期CPU,硬件设计上也更复杂,并且还有许多使流水线断流的因素。在设计中,重点解决影响流水线的数据相关、结构相关、控制相关,做到充分流水。获取verilog源码程序源码:3270516346qq文章目录基于MIPS的五级流水线微处理器(CPU)设计摘要获取verilog源码程序源码:3270516346qq一、流水线概述1、设计内容2、流水线原理3

verilog实现I2C控制器 (小梅哥思路)----详细解析

i2c_bit_shift模块框图如下所示输入输出信号:整体的思路如下:通过输入的命令组合,完成一次8字节数据的传输。定义了6种命令,WR写数据请求(6’b000_001)STA起始位请求(6’b000_010)RD读数据请求(6’b000_100)STO停止位请求(6’b001_000)ACK应答位请求(6’b010_000)NACK无应答请求(6‘b100_000)采用了状态机里面套用序列机的思路,在每个状态里面分为四步完成一位数据的传输,使用计数器来控制。定义的状态如下(独热码编码):statediscriptionIDLE空闲状态GEN_STA产生起始信号WR_DATA写数据状态RD_