一、任务
设计并制作一个 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给出的设计方案:
数字信号发生器
简单逻辑分析仪
逻辑状态检测
通过设计计数器和时序控制电路实现8路信号发生器,通过RAM完成数据存储,结合FSM进行数据采集控制,最终完成逻辑状态检测和波形显示。电路实现方法简单,控制逻辑清晰,能够满足设计要求。
信号发生器
简单逻辑分析仪
显示
数字信号发生电路
逻辑分析及存储电路
逻辑状态检测和显示
555计时器
74HC595移位寄存器
CY7C1041D RAM
FPGA
以下是实现数据采集和存储控制的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
这个题目考察的知识点: