任务名称
2003年_D题:简易逻辑分析仪
任务要求
难度

一、任务
设计并制作一个 8 路数字信号发生器与简易逻辑分析仪,其结构框图如图 1 所示:

二、要求
1、基本要求
(1)制作数字信号发生器
能产生 8 路可预置的循环移位逻辑信号序列,输出信号为 TTL 电平,序列时钟频率为 100Hz,并能够重复输出。逻辑信号序列示例如图 2 所示。
(2)制作简易逻辑分析仪
a.具有采集 8 路逻辑信号的功能,并可设置单级触发字。信号采集的触发条件为各路被测信号电平与触发字所设定的逻辑状态相同。在满足触发条件时,能对被测信号进行一次采集、存储。
b.能利用模拟示波器清晰稳定地显示所采集到的 8 路信号波形,并显示触发点位置。
c.8 位输入电路的输入阻抗大于 50kΩ,其逻辑信号门限电压可在 0.25~4V 范围内按16 级变化,以适应各种输入信号的逻辑电平。
d.每通道的存储深度为 20bit。

2.发挥部分
(1)能在示波器上显示可移动的时间标志线,并采用 LED 或其它方式显示时间标志线所对应时刻的 8 路输入信号逻辑状态。
(2)简易逻辑分析仪应具备 3 级逻辑状态分析触发功能,即当连续依次捕捉到设定的 3个触发字时,开始对被测信号进行一次采集、存储与显示,并显示触发点位置。3级触发字可任意设定(例如:在 8 路信号中指定连续依次捕捉到两路信号 11、01、00 作为三级触发状态字)。
(3)触发位置可调(即可选择显示触发前、后所保存的逻辑状态字数)。
(4)其它(如增加存储深度后分页显示等)。

三、说明
1、系统结构框图中的跳接线必须采取可灵活改变的接插方式。
2、数字信号的采集时钟可采用来自数字信号发生器的时钟脉冲 clock。
3、测试开始后,参赛者不能对示波器进行任何调整操作。
4、题中涉及的“字”均为多位逻辑状态。如图 2 中纵向第一个字为一个 8 位逻辑状态字(00000101),而发挥部分中的 3 级触发字为 2 位逻辑状态。

评审标准

参考答案

GPT-4o给出的设计方案:


一、设计思路

  1. 数字信号发生器

    • 设计一个8路数字信号发生器,可生成固定频率和固定相序的8路周期信号,输出TTL电平。
    • 选用可编程计数器和时序控制电路产生指定的序列,确保频率稳定在100Hz。
  2. 简单逻辑分析仪

    • 设计一个存储及显示系统,实时采集并显示8路输入信号的逻辑状态,并能够联动显示。
    • 使用RAM进行数据存储,FSM(有限状态机)控制数据采集和存储,并在LCD上显示时序信息。
  3. 逻辑状态检测

    • 设计并实现逻辑状态检测电路,将8路输入信号的每个状态进行检测、显示,记录后续状态变化。

二、简单论证

通过设计计数器和时序控制电路实现8路信号发生器,通过RAM完成数据存储,结合FSM进行数据采集控制,最终完成逻辑状态检测和波形显示。电路实现方法简单,控制逻辑清晰,能够满足设计要求。

三、重要的指标和理论分析

  1. 信号发生器

    • 频率:100Hz
    • 波形:方波,TTL电平
    • 连续循环输出
  2. 简单逻辑分析仪

    • 逻辑状态变化捕获
    • 采样精度:与信号同步
    • 存储容量:至少20bit per channel
  3. 显示

    • 实时显示输入信号状态和变化
    • 逻辑状态的LED显示或通过LCD显示时序波形

四、电路原理图设计要点

  1. 数字信号发生电路

    • 使用555计时器和可编程计数器(如74HC595)产生8路数字信号,确保相位和频率一致。
  2. 逻辑分析及存储电路

    • 使用RAM(如CY7C1041D)和控制逻辑(FSM)实现信号捕获和存储。
    • 使用FPGA进行数据存储和读取控制。
  3. 逻辑状态检测和显示

    • 使用LED矩阵或LCD显示器显示信号的逻辑状态和时序波形。

五、核心器件设计要点

  1. 555计时器

    • 用于产生固定频率的时钟信号,保证频率稳定。
  2. 74HC595移位寄存器

    • 产生并控制多路数字信号输出,产生可编程相位和频率。
  3. CY7C1041D RAM

    • 数据存储器,存储捕获的信号数据,容量足够大以满足存储需求。
  4. FPGA

    • 控制整个系统数据采集和存储,通过Verilog编写逻辑控制代码。

六、FPGA重要功能的Verilog代码和介绍

以下是实现数据采集和存储控制的Verilog代码示例:

module logic_analyzer (
    input wire clk,
    input wire reset,
    input wire [7:0] signal_in,
    output wire [7:0] led_out,
    output wire [3:0] anodes,
    output wire [6:0] segments
    );

    reg [19:0] mem [0:7];  // 数据存储器
    reg [2:0] current_state;
    reg [19:0] counter;

    always @(posedge clk or posedge reset) begin
        if (reset) begin
            current_state <= 0;
            counter <= 0;
        end else begin
            current_state <= current_state + 1;
            counter <= counter + 1;
            mem[current_state] <= signal_in;  // 捕获信号状态
        end
    end

    assign led_out = mem[current_state];
    // 使用7段显示器显示多个信号状态
    display_controller display_inst (
        .clk(clk),
        .reset(reset),
        .data_in(mem[current_state]),
        .anodes(anodes),
        .segments(segments)
    );

endmodule

module display_controller (
    input wire clk,
    input wire reset,
    input wire [19:0] data_in,
    output reg [3:0] anodes,
    output reg [6:0] segments
    );

    // 显示逻辑

endmodule

 


这个题目考察的知识点:

  1. 8路数字信号发生器利用555定时器和74HC595移位寄存器产生稳定的TTL信号,并控制信号相序。
  2. 逻辑分析仪捕获并检测8路输入信号的逻辑状态,具备实时数据显示功能。
  3. 数据存储使用RAM进行信号状态数据的存储,确保能存储足够长时间内信号的状态。
  4. 逻辑状态与波形显示通过LED矩阵或LCD显示器来直观显示信号的逻辑状态及变化波形。
  5. 控制单元使用FPGA实现复杂控制逻辑,管理信号采集、存储和显示过程。
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号