11 2023 档案
FPGA入门笔记007_A——按键消抖模块设计与验证(状态机、$random、仿真模型、task语法)
摘要:实验现象: 每次按下按键0,4个LED显示状态以二进制加法格式加1。 每次按下按键1,4个LED显示状态以二进制加法格式减1。 知识点: 1、testbench中随机数发生函数$random的使用; 2、仿真模型的概念 1、按键波形分析: 按键未按,FPGA管脚检测到高电平。 按键按下,FPGA管脚
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入门笔记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入门笔记001
摘要:1、assign 赋值语法以关键字assign开头,后面是信号名,可以是单个信号,也可以是不同信号网的连接。 assign为连续赋值语句,通常用于组合逻辑电路,例如: assign led_out = (key_in == 0)? a : b; 语法结构如下: assign <net_express
Quartus II详细使用教程(以定时器设计为例)
摘要:设计一个定时器,能够支持以下功能: 1、该定时器的定时时间参数可以通过该模块的一个端口输入,通过调节端口上输入数据的值,就能修改其定时时间。 2、设置一个计数模式控制信号,当该信号为1时,设置为循环定时模式,当该信号为0时,设置为单次定时模式。 3、设置一个计数启动信号,在循环定时模式下,该信号为高