功率电感生产厂家
联系我们
热门搜索
点击排行
推荐阅读
猜猜你喜欢的
技术知识 您所在的位置: 首页 > 技术知识

基于FPGA的抢答器设计与实现

来源:    作者:    发布时间:2015-07-24 10:47:57    浏览量:

  图注:Line(2:0)和row(2:0)分别表示参赛小组按键的输入阵列信号和输出扫描阵列信号;工字电感器start_key,add_key, sub_key,分别代表抢答开始命令,对各组成绩的加、减操作命令;dp,error,push_key 分别表示开始键按下后的信号,违规抢答信号以及参赛组有人按键的响应信号;hc_cp,hc_si 表示显示译码芯片74HC164 的串行时钟和数据信号。

  问题与解决

  1、状态机问题

  在整体调试的时候,当主持人按开始按钮后,程序就死在那里,不能接收抢答信息,由于抢答键盘已单独调试成功,因此怀疑是控制抢答过程的状态机除了问题,指示进入开始状态的红色LED灯一直亮着,说明程序的确死在开始状态。再次综合的过程中发现警告提示:状态机的状态量的赋值错误,把二进制标识“b”误写为“h”,这样由于状态机数据宽度小于时间数据数据长度,自动取较小位数据;如state_start = 4‘b0010误写为state_start = 4’h0010,实际就是state_start = 4’b0000,这肯定与前面状态冲突;同时调试过程中也遇到过复位时没有把状态机复位到初始状态的情况。经过此次设计,体会认识到状态机在实际控制中的重要性,以后设计中要学会看综合布线过程中警告信息。

  2、信号同步的问题

  在抢答器按下开始键后有一个等待抢答30s 的延迟时间,当30s 完成后如果三个小组都没有人按抢答键,那么此次比赛抢答塑封电感无效,系统自动回到主持人按开始前的系统等待状态;当计时完成30s 后生成一个高电平的脉冲信号(pulse),由于此脉冲信号高电平持续时间是整个系统的系统时钟(clk),这个时钟周期小于状态机的时钟周期(clk_4),直接用状态机的时钟是检测不到此脉冲信号,需要把此脉冲信号同步到与状态机时钟同步。

  采用的方法是:首先用一个锁存器(pulse_reg)锁存此脉冲信号(锁存器时钟也为系统时钟),通过锁存器的输出值和原脉冲信号寄存器值就可以检测到脉冲由低电平0 到高电平1 的跳变沿,同样用一个与系统时钟同步的锁存器(flag)锁电感器是什么存这个跳变沿,当出现这个跳电感生产厂家变沿时flag=1;而为了让状态机时钟(clk_4)检测到flag 信号,同时要在状态机时钟检测到后要把flag 清零,为下一次检测作准备,这时可以当状态机时钟(clk_4)检测到flag=1’b1 后,同时生成一个flag的清零信号(flag_rst)flag_rst=1’b1;当flag_rst 为1 时把flag 清零。

  调试信号同步的部分程序如下:

  reg flag_rst; //生成flag_rst 信号

  always @ (posedge clk_4 or negedge rst_n)

  begin

  if(!rst_n)

  begin

  flag_rst <= 1‘b0;

  end

  else

  begin

  if(flag == 1’b0)

  flag_rst <= 1‘b0;

  else

  begin

  flag_rst <= 1’b1;

  end

  end

  end

  always @ (posedge clk)

  begin

  pulse_reg <= pulse;

  end

  reg flag; //flag 用来检测pulse 上升沿

  always @ (posedge clk)

  begin

  if(!rst_n)

  flag <= 1’b0;

  else

  begin

  if((pulse_reg == 1‘b0)&&(pulse == 1’b1))

  flag &l电感器生产t;= 1‘b1;

  else if(flag_rst == 1’b1)

  flag <= 1‘b0;

  end

  end

  reg flag_reg; //生成与clk_4 同步的用于检测脉冲上升沿信号的flag 信号

  always @ (posedge clk_4)

  begin

  flag_reg <= flag;

  end

  用modesim6.0 仿真波形如下:

  

  图9.信号的同步的仿真波形

  从仿真波形中可以看出当pulse 高电平时的下一个时钟flag = 1’b1;为了让时钟clk_4 能够检测到flag = 1’b1,就插件电感器让flag 一直保存到clk_4 上升沿出现,然后在clk_4 上升沿把flag 的复位信号flag_rst 置1;然后flag, flag_rst都清零。改变pulse 脉冲出现的时间或者clk_4 的频率都能检测到pulse 的高电平。经过信号同步后,状态机能够检测抢答计时完30s 后生成的一个脉冲信号然后回到初状态。

  • 谐波治理在智能建筑电气中的应用1.谐波对智能建筑的危害智能建筑中谐波主要来自两方面:一是大量非线性负荷形成的谐波源,例如计算机系统、开关电源、电子式荧光整流器等导致配电系统的电压、电流发生畸变,产生谐波;二是公用电网本身具有一定的

  • 采用集成DC-DC转换器的分布式电源系统介绍传统的分布式电源架构采用多个隔离型DC-DC电源模块将48V总线电压转换到系统电源电压,如5V、3.3V和2.5V。然而该配置很难满足快速响应的低压处理器、DSP、ASIC以及DDR存储器的负载要求。

  • 光纤LED驱动电路的设计原理分析为了减少数据传输时间在整个系统处理时间指标中所占的比重,要求数据传输率应不小于E1(2.048Mb/s) 速率,同时要求通信链路安全、可靠。我们通过对各种数据通信技术的分析,最终选择了光纤键路,取得了

  •