- 1
- 0
- 约3.32千字
- 约 18页
- 2017-02-02 发布于江苏
- 举报
CPLD实现系统电路课件精品
CPLD实现系统电路 电路设计要求 设计一个功能相对完善的抢答器电路: 抢答互锁电路:每个抢答者控制一个抢答开关,以控制自己的一个指示灯。抢先按动开关者能使自己的指示灯亮,同时封锁其余两人的动作。 抢答限时电路:抢答者抢答问题应在一定时间内(5秒)完成,过时无效。 回答限时电路:抢答者回答问题应在一定时间内(7秒)完成,过时无效。 时间显示电路:显示剩余的抢答时间和回答时间。 计分电路:记录各组的得分数。 …… 模块设计 抢答电路 预置数选择电路 秒脉冲电路 减计数器 秒脉冲清零信号生成电路 加法器电路 有限状态机设计(StateCAD) 设计流程: 分析控制器设计指标,建立系统算法模型图; 分析被控对象的时序状态,确定控制器有限状态机的各个状态及输入输出条件; 在StateCAD中输入有限状态机状态图,自动产生HDL模型描述。 抢答电路状态机设计 抢答电路描述: 外部输入: MainKey Play1Key Play2Key 输出状态: 复位状态 开始状态 回答状态 抢答电路StateCAD状态图 有限状态机设计(StateCAD) 设计步骤: 生成状态转移图模板(Draw State Machines) 编辑状态( Edit State ) 编辑状态转移线( Edit Condition ) 优化设计(Optimize) 生成HDL代码(Generate HDL) 预置数选择电路 输出 预置数TLD[3:0]:例如抢答可设置5秒,回答设置7秒。 输入 选择控制信号CompeteTime、Play1AnsTime、Play2AnsTime 预置数选择电路 module mux4of8(MainLED,Play1LED,Play2LED,out4); input MainLED,Play1LED,Play2LED; output [3:0] out4; reg [3:0] out4;always@(MainLED,Play1LED,Play2LED)begin case ({MainLED,Play1LED,Play2LED}) 3b011: ___________ 3b101: ___________ 3b110: ___________ default: ___________ endcaseendendmodule 秒脉冲电路 输出 秒脉冲Cp1Sec,占空比50% 数码管轮显控制信号shifter[1:0] 输入 振荡源输出脉冲clk11M; 秒脉冲复位信号Pulse100n:为了保证送给DecCnt计数的秒脉冲完整性,在抢答、回答倒计时开始时对秒脉冲复位; 秒脉冲输出使能信号DownCntEn:由低电平有效,驱动发光二极管亮的三个信号MainLED,Play1LED,Play2LED相与得到,低电平有效,可以输出秒脉冲,高电平时,仅输出高电平。 秒脉冲电路 module CpSec(CLK, enCnt, Pulse100n, Cp1Sec, shifter); input CLK, enCnt, Pulse100n; output Cp1Sec; output [1:0]shifter; reg [23:0] count;always@(negedge CLK or posedge Pulse100n)begin if _____________ //如果清零信号,count立即复位 else if (enCnt) //不允许倒计时计数 if _____ //在count[23]翻转到0之前,将其复位 else ___ //自加1,用于分时生成动态扫描数码管信号 else //允许倒计时计数 if __________ //在count完成1s分频时,将其复位 else _______//自加1, endassign Cp1Sec=______;//秒脉冲信号取自……assign shifter=_______;//动态扫描数码管信号取自……endmodule? 减计数器 输出 TimeOver信号:计数到0时TimerOver给出倒计时结束信号 倒计时显示数据Time[3:0] 输入 系统复位RESET 秒脉冲Cp1Sec:由于该脉冲高电平开始,所以上升沿触发计数。 预置数加载信号Pulse100n:脉冲宽度一个晶振CP周期,约100ns的窄脉冲 预置数TLD[3:0] 减计数器 mo
原创力文档

文档评论(0)