74系列数字逻辑器件与序列检测设计 Verilog Vivado

名称:74系列数字逻辑器件与序列检测设计 Verilog Vivado

软件:Vivado

语言:Verilog

功能介绍

这是一个基于 Verilog 和 Vivado 的 74 系列数字逻辑器件综合练习工程,覆盖 74HC148 优先编码器、74HC138 译码器、CD4511 BCD 译码器、74HC151 数据选择器、74HC85 数值比较器、74HC245 双向缓冲器、74HC74 D 触发器、74HC112 JK 触发器、74HC573 锁存器和 74HC160 计数器等常用模块。工程同时提供奇偶校验、PWM 输出以及二进制序列检测功能,形成从基础门级功能到小型数字系统的完整练习内容。 各个器件模块均采用清晰的输入输出接口描述,并配套 `_tb` 测试文件用于仿真验证。以 HC85 为例,模块支持 4 位 A、B 输入及级联比较输入,可输出大于、等于、小于三种比较结果;当两组数据相等时,输出由级联信号决定,适合扩展多位比较器。该工程适合用于 Vivado 仿真学习、74 系列器件行为建模、测试平台编写以及组合和时序逻辑设计实践。

运行环境

开发环境为 Xilinx Vivado,设计语言为 Verilog。工程提供 Vivado 工程文件 `chip_74.xpr`、源代码和多个 Testbench,可在 Vivado Simulator/XSim 中建立仿真并查看各模块的输入输出变化。建议按模块打开对应测试文件运行,先验证基础器件,再观察 PWM、奇偶校验和序列检测等综合案例。

设计思路

本工程以 Verilog 对常见 74 系列逻辑器件进行功能建模,采用独立模块配合对应 Testbench 的组织方式。组合逻辑器件直接根据输入产生译码、编码、比较、选择或缓冲结果;时序器件则围绕时钟、置位、复位和使能信号描述触发器、锁存器及计数器行为。这样的划分便于单独验证每个器件,也方便在更大系统中复用。 工程还包含奇偶校验器、PWM 波形输出和 110110 序列检测器等典型数字电路案例。序列检测部分以状态转移记录输入历史,在检测到目标二进制序列后给出结果信号;PWM 模块用于说明计数比较方式生成脉冲波形。每个功能均配有独立测试文件,可按照模块边界观察输入激励与输出响应,适合学习组合逻辑、时序逻辑和有限状态机的 Verilog 写法。

模块结构

工程源码按功能拆分为多个 Verilog 模块,并以对应测试平台进行验证。基础器件模块包括 HC148、HC138、CD4511、HC151、HC85、HC245、HC74、HC112、HC573 和 HC160;扩展功能模块包括 parity_checker、PWM 和 sequence_detection。各模块的测试文件采用 `_tb.v` 命名,例如 HC85_tb、HC160_tb、CD4511_tb、HC138_tb 与 sequence_detection_tb,便于在 Vivado 中分别选择测试对象并运行仿真。

演示视频

配套演示视频展示工程中各个 74 系列数字逻辑模块的设计内容与运行过程,便于结合源码理解模块功能、输入输出关系以及测试文件的使用方式。

仿真图/仿真说明/设计文档图片

设计文档配有 74 系列器件功能说明及相关仿真资料,工程内的测试平台覆盖编码器、译码器、数据选择器、数值比较器、触发器、锁存器、计数器、PWM、奇偶校验和序列检测等模块。文档图片可用于对照模块功能、信号关系和仿真观察结果。

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image1.png

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image10.png

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image11.png

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image12.png

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image13.png

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image14.png

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image15.png

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image16.png

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image17.png

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image18.png

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image19.png

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image2.png

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image20.png

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image21.png

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image22.png

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image23.png

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image24.png

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image25.png

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image26.png

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image27.png

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image28.png

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image29.png

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image3.png

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image4.png

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image5.png

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image6.png

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image7.png

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image8.png

74系列数字逻辑器件与序列检测设计 Verilog Vivado 设计文档图片 image9.png

部分代码

以下展示顶层模块 HC85 的部分代码,完整源码请下载压缩包查看。

module HC85(
    input  [3:0] A,     // 4位输入A
    input  [3:0] B,     // 4位输入B
    input  IA_GT_B,     // 级联输入:A>B
    input  IA_EQ_B,     // 级联输入:A=B
    input  IA_LT_B,     // 级联输入:A<B
    output reg OA_GT_B, // 输出:A>B
    output reg OA_EQ_B, // 输出:A=B
    output reg OA_LT_B  // 输出:A<B
);

always @(*) begin
    if (A > B) begin
        OA_GT_B = 1'b1;
        OA_EQ_B = 1'b0;
        OA_LT_B = 1'b0;
    end
    else if (A < B) begin
        OA_GT_B = 1'b0;
        OA_EQ_B = 1'b0;
        OA_LT_B = 1'b1;
    end
    else begin
        // A == B,使用级联输入决定输出
        OA_GT_B = IA_GT_B;
        OA_EQ_B = IA_EQ_B;
        OA_LT_B = IA_LT_B;
    end
end

endmodule

代码文件(付费下载)

📥 付费后此处显示完整工程压缩包下载链接。
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 74系列数字逻辑器件与序列检测设计 Verilog Vivado

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员