草庐IT

Xilinx-FPGA

全部标签

【FPGA】Verilog:时序电路 | 触发器电路 | 上升沿触发 | 同步置位 | 异步置位

前言:本章内容主要是演示Vivado下利用Verilog语言进行电路设计、仿真、综合和下载示例:触发器电路  ​功能特性: 采用 XilinxArtix-7XC7A35T芯片 配置方式:USB-JTAG/SPIFlash高达100MHz的内部时钟速度 存储器:2MbitSRAM  N25Q064ASPIFlash(样图旧款为N25Q032A)通用IO:Switch:x8LED:x16Button:x5DIP:x8  通用扩展IO:32pin音视频/显示: 7段数码管:x8VGA视频输出接口 Audio音频接口 通信接口:UART:USB转UART  Bluetooth:蓝牙模块 模拟接口: D

FPGA学习笔记(五):DDS IP核的使用

笔记五是简单介绍DDS IP核的使用,它是可以产生任意频率正弦波的模块。此笔记同时输出波形和相位,一般可以不输出相位。 1.打开VIVADO,点击IPCatalog  2.搜索DDS,选择DDSCompiler  3.配置参数(1)设置主频频率50MHz (2)选择sine,并且勾选HasPhaseOut(相位输出)  (3)勾选OutputTREDAY (4)输入频率  (5)同上述步骤,再加一个DDSIP核4.测试文件 moduletb_dds;//时钟clkregclk;//数据准备信号regm_axis_data_tready_1;regm_axis_data_tready_2;//相

FPGA状态机(一段式、二段式、三段式)、摩尔型(Moore)和米勒型(Mealy)

1、状态机1.1、理论FPGA不同于CPU的一点特点就是CPU是顺序执行的,而FPGA是同步执行(并行)的。那么FPGA如何处理明显具有时间上先后顺序的事件呢?这个时候我们就需要使用到状态机了。状态机简写为FSM(FiniteStateMachine),也称为同步有限状态机,我们一般简称为状态机,之所以说“同步”是因为状态机中所有的状态跳转都是在时钟的作用下进行的,而“有限”则是说状态的个数是有限的。状态机的每一个状态代表一个事件,从执行当前事件到执行另一事件我们称之为状态的跳转或状态的转移,我们需要做的就是执行该事件然后跳转到一下时间,这样我们的系统就“活”了,可以正常的运转起来了。状态机通

FPGA状态机(一段式、二段式、三段式)、摩尔型(Moore)和米勒型(Mealy)

1、状态机1.1、理论FPGA不同于CPU的一点特点就是CPU是顺序执行的,而FPGA是同步执行(并行)的。那么FPGA如何处理明显具有时间上先后顺序的事件呢?这个时候我们就需要使用到状态机了。状态机简写为FSM(FiniteStateMachine),也称为同步有限状态机,我们一般简称为状态机,之所以说“同步”是因为状态机中所有的状态跳转都是在时钟的作用下进行的,而“有限”则是说状态的个数是有限的。状态机的每一个状态代表一个事件,从执行当前事件到执行另一事件我们称之为状态的跳转或状态的转移,我们需要做的就是执行该事件然后跳转到一下时间,这样我们的系统就“活”了,可以正常的运转起来了。状态机通

零基础学FPGA(八):可编程逻辑单元(基本结构,Xilinx+Altera)

目录日常·唠嗑一、概述二、基于多路选择器的逻辑单元1、基于多路选择器的逻辑单元(早期)2、基于PLD结构的逻辑单元(类CPLD)3、基于查询表的逻辑单元(目前主流)三、Xilinx基本结构四、Altera基本结构日常·唠嗑      在写这篇文章之前,对这个专栏做一个补充解释。本来按我之前的想法是,把这个专栏写成一个比较层次化,一层一层慢慢深入的系统化专栏。但是,在工作的时候,刚好在做某一件事,在这个时间段,对这个知识点比较深刻,所以就提前把这篇文章写了,导致此专栏可能没有按一步一步深入来写,会有些跳动,大家可以根据自己情况看文章。      在写零基础学FPGA(六):FPGA时钟架构(Xi

零基础学FPGA(八):可编程逻辑单元(基本结构,Xilinx+Altera)

目录日常·唠嗑一、概述二、基于多路选择器的逻辑单元1、基于多路选择器的逻辑单元(早期)2、基于PLD结构的逻辑单元(类CPLD)3、基于查询表的逻辑单元(目前主流)三、Xilinx基本结构四、Altera基本结构日常·唠嗑      在写这篇文章之前,对这个专栏做一个补充解释。本来按我之前的想法是,把这个专栏写成一个比较层次化,一层一层慢慢深入的系统化专栏。但是,在工作的时候,刚好在做某一件事,在这个时间段,对这个知识点比较深刻,所以就提前把这篇文章写了,导致此专栏可能没有按一步一步深入来写,会有些跳动,大家可以根据自己情况看文章。      在写零基础学FPGA(六):FPGA时钟架构(Xi

FPGA之IOBUF功能解释小结

目录一、序言二、IOBUF例化三、IOBUFverilog实现四、IOBUF综合结果一、序言        在verilog设计中,通常端口使用更多的申明为input,output,即输入到FPGA内部,以及FPGA输出到外部,都是单向传输,对于双向传输的场景需要使用到inout类型。二、IOBUF例化        在xilinx中例化使用双向端口是使用IOBUF,IOBUF定义如下,可看到有四个pin,O、I、IO、T,其中T为控制端口,控制IO为输入或输出IOBUF#(.IS_CCIO("FALSE"))IOBUF_inst(.O(O),//1-bitoutput:Bufferoutpu

基于FPGA的交通灯电路设计(含程序)

目录题目要求设计方法部分程序设计题目要求(1)以车为主体,绿灯、黄灯、红灯、绿灯依次点亮;(2)十字路口,具有两组红绿灯;(3)采用倒计时显示剩余时间,数码管动态显示;(4)红绿灯时间按键可调。设计方法用六位数码管显示,靠左和靠右两位数码管分别显示东西和南北方向的倒计时显示,我开发板刚好6个LED灯,但是是竖着的,上面三位表示南北方向的红黄绿灯,下面三位表示东西方向的红黄绿灯。平面图如下:首先需要一个1hz频率进行倒计时计数,然后对倒计时在不同时间段做出不同的判断即可,为了方便理解,我画出流程图如下:(需要注意的是红灯亮的时间应该是黄灯和绿灯时间之和)部分程序设计moduletraffic(i

FPGA 学习笔记:Vivado 生成的 Bitstream bit 文件 超大的解决方法

前言最近学习FPGA,使用Vivado,照着开发板例程,写了个流水灯的Verilog程序,配置好引脚约束后,下载到开发板,发现下载的速度有点慢,我一查看生成的bit文件,发现竟然接近11MB。开始以为是Vivado版本出了问题,我先后更换为Vivado2018.2Vivado2019.2Vivado2022.2,生成的bit文件,竟然惊奇的一致。开启查看写的代码,发现只写了简单的几句,依旧是接近11MB,这样生成的bin文件,固化到SPIFlash,会相当的慢bit文件瘦身因为之前的一个工程,生成的bin文件比较的小,并且代码量很大,所以我对比了一下工程,发现约束文件里,一个配置项没有开启,我

FPGA验证学习(七): FPGA原型验证是什么?

前言不得不说关于硬件的设计的文章内容关注度还是不如软件,哈哈哈,这里来看看FPGA原型验证到底是什么?我也是刚刚入门的小菜鸡,用白话文说说我的理解,如果有什么问题,欢迎大家指出。验证其实关于芯片的验证有几个步骤,但是在流出网表之前的我们叫前端,而前端设计相关的两个验证就是EDA验证和FPGA原型验证。1-EDA验证EDA验证,可以是正儿八经的芯片验证,会接触到verilog语言,并使用systemverilog语言写对应的测试。这个好处就是有什么问题或者bug出现,定位起来很快。有点像白盒测试,大多数是单元测试。这部分的EDA芯片测试必须要看一下SV(SystemVerilog)和UVM(UV