合集-FPGA入门笔记
FPGA入门笔记001
摘要:1、assign 赋值语法以关键字assign开头,后面是信号名,可以是单个信号,也可以是不同信号网的连接。 assign为连续赋值语句,通常用于组合逻辑电路,例如: assign led_out = (key_in == 0)? a : b; 语法结构如下: assign <net_express
# FPGA入门笔记002——译码器
摘要:设计一个38译码器 项目文件编写: module my3_8( a, b, c, out ); input a; //输入端口A input b; //输入端口B input c; //输入端口C output reg[7:0]out; //输出端口 /* always块: '()'内部为敏感信号,
FPGA入门笔记006——状态机设计实例
摘要:状态分析: 状态1:等待“H”的到来,如果检测到“H”,进入状态2,检测“e”,否则一直等待“H”; 状态2:检测当前字符是否是“e”,如果是“e”,跳转到状态3,检测“l”,否则,回到状态1,重新等待“H”; 状态3:检测当前字符是否是“l”,如果是“l”,跳转到状态4,检测“l”,否则,回到状态
FPGA入门笔记005——阻塞赋值和非阻塞赋值的区别
摘要:定义一个示例模组,代码如下: module block_nonblock( Clk, Rst_n, a, b, c, out ); input Clk; input Rst_n; input a,b,c; output reg[1:0]out; //out = a + b + c,out最大为3,所
FPGA入门笔记004——BCD计数器设计与使用
摘要:1、设置一个最大值为10的四位计数器,Verilog代码如下: module BCD_Counter( Clk, Cin, Rst_n, Cout, q ); input Clk; //计数器基准时钟 input Cin; //计数器进位输入 input Rst_n; //系统复位 // outpu
FPGA入门笔记003——计数器IP核调用与验证
摘要:FPGA设计方式主要有三种: 1、原理图(不推荐); 2、Verilog HDL设计方式; 3、IP核输入方式 计数器IP核调用与验证步骤如下: 1、添加IP核文件 打开Quartus II,新建一个项目,名称为counter_ip。 选择Tools->MegaWizard Plug-In Mana
FPGA入门笔记013——嵌入式块RAM使用之FIFO
摘要:1、FIFO概述 FIFO(First In First Out),即先进先出。FPGA 或者 ASIC 中使用到的 FIFO 一般指的是对数据的存储具有先进先出特性的一个缓存器,常被用于数据的缓存或者高速异步数据的交互。它与普通存储器的区别是没有外部读写地址线,这样使用起来相对简单,但缺点就是
FPGA入门笔记012——嵌入式块RAM应用之ROM
摘要:1、实验现象 实现一组固定的数据(三角波形表)存储在 FPGA 中使用 IP 核构建的片上 ROM 中,开发板上电后,系统开始从 ROM 中读出数据,并将数据直接通过并口输出。通过使用 Signal Tap II 软件实时抓取并口上的数据,显示得到三角波形。然后使用 Quartus 软件中 提供
FPGA入门笔记011_B——搭建串口收发与存取双口RAM简易应用系统
摘要:1、实验现象 通过串口发送数据到 FPGA 中,FPGA 接收到数据后将数据存储在双口 ram 的一段连续空间中,通过 Quartus II 软件提供的 In-System Memory Content Editor 工具查看 RAM 中接收到的数据。当需要时,按下设计好的按键 ,则 FPGA
FPGA入门笔记011_A——嵌入式块RAM的使用
摘要:1、Cyclone-II系列FPGA内部结构 图1——Altera公司Cyclone-II系列FPGA内部结构 如上图所示是Altera公司Cyclone-II系列FPGA内部结构,个模块作用如下: PLL锁相环—对时钟进行管理。 IOEs—管脚单元,配置管脚,设置输入输出。 逻辑阵
FPGA入门笔记010——UART串口接收模块设计
摘要:1、串口接收模块原理 当对于数据线 Rs232_Rx 上的每一位进行采样时,一般情况下认为每一位数据的中间点是最稳定的。因此一般应用中,采集中间时刻时的电平即认为是此位数据的电平,如图 1 所示。 图1——串口接收时序图(图中 BPS_CLK 为采样时钟) 但是在实际工业应用中,现场往往有非
FPGA入门笔记009——UART串口发送模块设计
摘要:1、UART通信原理 如图1为UART通信连接图,其中tx为输入,rx为输出。通过tx连接rx进行数据间的发送和接收。 图1——UART通信连接图 UART 通信在使用前需要做多项设置,最常见的设置包括:数据位数、波特率大小、奇偶校验类型和停止位数: (1)数据位(Data bits):
FPGA入门笔记008——数码管动态扫描设计与验证
摘要:1、数码管动态扫描原理 8段数码管的结构图如图1所示: 图1——8段数码管结构图(a为共阴极,b为共阳极) 对于共阴数码管需要给对应段以高电平才会使其点亮,而对于共阳极数码管则需要给低电平才会点亮。AC620上板载的是共阳极数码管。 不考虑小数点也就是简化为7段数码管,其共阳极数码管编码
FPGA入门笔记007_A——按键消抖模块设计与验证(状态机、$random、仿真模型、task语法)
摘要:实验现象: 每次按下按键0,4个LED显示状态以二进制加法格式加1。 每次按下按键1,4个LED显示状态以二进制加法格式减1。 知识点: 1、testbench中随机数发生函数$random的使用; 2、仿真模型的概念 1、按键波形分析: 按键未按,FPGA管脚检测到高电平。 按键按下,FPGA管脚