软件:Vivado
语言:VHDL
功能介绍
本设计实现一个基于 VHDL 的多位计数器模块,顶层模块名称为 counter。模块提供时钟 clk、使能 en 和复位 rst 输入,并输出 CNT1、CNT2、CNT3、CNT4 四组 4 位无符号计数结果,适合用于 FPGA 数字逻辑课程设计、计数显示前级逻辑、分级计数结构学习等场景。
计数输出采用 UNSIGNED(3 DOWNTO 0) 类型,每一路计数值均为 4 位宽度,便于后续连接数码管译码、状态显示、计数级联或其他数字系统模块。通过独立的使能和复位控制,设计具备常见同步逻辑工程所需的基本控制接口。
工程同时配套 Testbench,可用于在 Vivado 仿真环境中观察计数器在时钟、复位、使能条件下的行为变化,帮助理解计数逻辑的时序关系和输出变化过程。
运行环境
开发语言:VHDL
开发软件:Vivado
工程类型:FPGA/VHDL 工程
仿真文件:testbench.vhd
主设计文件:counter.vhd
顶层模块:counter
设计思路
设计以 counter 模块作为核心计数单元,外部通过 clk 提供时序基准,通过 rst 控制计数状态复位,通过 en 控制计数器是否工作。该接口形式清晰,便于在更大的 FPGA 系统中作为基础功能模块复用。
CNT1、CNT2、CNT3、CNT4 四个输出端口均定义为 4 位 UNSIGNED 类型,能够直接表达 0 到 15 范围内的二进制计数值。多路计数输出的结构适合扩展为多位十进制/十六进制计数显示,也便于在仿真波形中分别观察各级计数状态。
Testbench 用于构造仿真激励,对 counter 模块进行行为级验证。通过仿真可观察复位、使能和时钟作用下的输出变化,从而确认模块接口和基本计数逻辑是否符合预期。设计文档中包含工程文件、程序文件、程序编译、RTL 图、Testbench 和仿真图等内容,便于学习者对照工程结构理解完整开发流程。
模块结构
主要模块包括:
1. counter:计数器主模块,包含 clk、en、rst 输入,以及 CNT1、CNT2、CNT3、CNT4 四路 4 位计数输出。
2. test:仿真测试模块,用于对 counter 进行 Testbench 行为仿真。
主要工程文件包括 counter.xpr、counter.vhd、testbench.vhd,可在 Vivado 中打开工程并进行综合、RTL 查看和仿真。
仿真图/仿真说明/设计文档图片
设计文档包含工程文件、程序文件、程序编译、RTL 图、Testbench 和仿真图等内容。工程中包含 Vivado XSIM 行为仿真相关文件,可用于查看 testbench 对 counter 模块的仿真过程。
部分代码
以下展示顶层模块 counter 的部分代码,完整源码请下载压缩包查看。
ENTITY counter IS
PORT (
clk : IN STD_LOGIC;
en : IN STD_LOGIC;
rst : IN STD_LOGIC;
CNT1 : OUT UNSIGNED(3 DOWNTO 0);
CNT2 : OUT UNSIGNED(3 DOWNTO 0);
CNT3 : OUT UNSIGNED(3 DOWNTO 0);
CNT4 : OUT UNSIGNED(3 DOWNTO 0)
);
END counter;
32