您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 06_03_020卡式电话计费器
北航计算机学院艾明晶2020/1/181《计算机EDA设计》实验教程实验九卡式电话计费器2020/1/182内容概要实验目的实验要求实验指导实验内容实验报告2020/1/183实验目的了解卡式电话计费器的工作原理。掌握卡式电话计费器的设计方法。2020/1/184实验要求设计一个卡式电话计费器计费器在话卡插入后,能将卡中的币值读出并显示出来;在通话过程中,根据话务种类计话费并将话费从卡值中扣除,卡值余额每分钟更新一次;计时与计费数据均以十进制形式显示出来。话务分为3类:市话、长话和特话。市话按每分钟3角钱计费,长话按每分钟6角钱计费,特话不收费。当卡中余额不足时产生告警信号,当告警时间达到15s时切断当前通话。实现设计的编程下载2020/1/185实验指导卡式电话计费器的接口示意图时钟clk卡插入信号card接通信号state话务种类decide[1..0]通话disptime卡值余额dispmoney写卡信号write读卡信号read告警信号warn切断通话cut卡式电话计费器2020/1/186信号定义输入信号•时钟信号(clk):频率为1Hz•卡插入信号(card)•接通信号(state)•话务种类(decide[1..0])•设置卡内金额的个位(set_money_low)•设置卡的金额的高位(set_money_high)2020/1/187输出信号•通话时间(disptime[7..0])•卡值余额(dispmoney[7..0])•写卡信号(write)•读卡信号(read)•告警信号(warn)•切断通话(cut)•接通信号(state_out)•话务种类(decide_out[1..0])2020/1/188中间变量•reg[7:0]money;//卡内余额•reg[7:0]dtime;//通话计时•regt1m;//分时钟,写卡的时刻•integernum1,temp;//num1——对通话时间计数;temp用于计告警时间设计思路整个设计account.v主要由3个always模块组成,分别完成产生分时钟,电话计费和计时以及在告警时间过长时切断通话的功能。2020/1/189(1)产生分时钟always@(posedgeclk)//在接通线路的情况下,计数器num1以clk(T=1s)为时钟进行计数,计到59s时,计数器清零,并产生分时钟信号t1m。未接通线路时,num1和t1m均为0。(2)电话计费和计时always@(negedgeclk)begin//首先设置卡内的金额初值//然后进行通话计费和计时2020/1/1810①在卡插入,并接通线路的情况下,当通话时间够1分钟时,采用case语句,根据话务种类(decide的值),进行通话计费②当卡已拔出,或线路未接通时,对一些信号进行复位(3)在告警时间过长时切断通话always@(posedgeclk)//当告警时间达15秒时,产生切断通话信号(cut),电话局根据此信号切断通话,则接通信号变为低电平。//若卡已拔出或线路已断,则复位切断通话信号cut。2020/1/1811实验内容1.用Verilog语言设计卡式电话计费器的逻辑模型(文件名为account.v)为很快观察到卡内余额不足的现象,本实验假定通话时间disptime最长为59分钟;采用LED中D1~D7分别显示输出信号write、read、warn、cut、state_out、decide[0]和decide[1]。2.对account.v进行编译与仿真2020/1/1812仿真要求Tclk=1s,GridSize=1s,仿真结束时间取1000s整体仿真波形图2020/1/1813(1)仿真电话卡插入后,线路接通,打市话的情况。观察各输出信号和中间变量的变化。尤其注意仿真卡中余额不足的情况。2020/1/1814电话卡插入后,设置卡内金额为2元2角,以及线路接通后的仿真波形2020/1/1815打市话,通话时间够1分钟的仿真波形2020/1/1816打市话,通话时间达到7分钟时,卡内余额不足、产生告警、切断通话的仿真波形2020/1/1817(2)再给电话卡充值,仿真线路接通,打长话的情况。观察各输出信号和中间变量的变化。尤其注意仿真卡中余额不足的情况打长话,卡中余额不足的仿真波形2020/1/1818(3)将电话卡拔出、再插入后,仿真打特话2020/1/18193.设计下载用顶层文件文件名为account_top.bdf为减少等待时间,使实验箱上的15秒表示现实电话机上的一分钟。首先用Verilog语言设计一个分频子模块,将实验箱的20MHz系统时钟信号分频到4Hz,则disptime每隔15s加1计数,表示通话的分钟数。然后创建一个顶层图形设计文件account_top.bdf;选择器件EP1C12Q240C8,进行编译。2020/1/1820下载用顶层文件account_top.bdf注:由于键9和键10输出为低有效,所以这里set_money_high和set_money_low信号分别要经过一个反相器后,再与account子块的相应端口相连。2020/1/18214.引脚锁定及编程下载对顶层图形设计文件编译,再进行引脚锁定引脚定义重新编译,生成编程文件.sof文件运行下载程序,将编程目标文件phone.sof文件下载到FPGA器件中2020/1/18225.在线校验首先用键9和键10设置电话卡的金额初值。验证电话卡插入后,线路接通,打市话的情况。•观察read信号何时有效,write信号何时有效,通话时间和卡内余额的变化是否正确。尤其注意观察当卡中余额不足3角时,何时产生warn信号,又在何时产生cut信号。注:7个发光二极管均为高有效2020/1/1823再用键9和键10设置电话卡的金额初值,然后验证线路接通,打长话的情况。•观察read信号何时有效,write信号何时有效,通话时间和卡内余额的变化是否正确。尤其注意观察当卡中余额不足6角时,何时产生warn信号,又在何时产生cut信号。模拟将电话卡拔出后再插入,将decide设置为“11”,验证在卡中余额不足6角时,打特话的情况。•观察read信号为什么状态,是否会产生write信号、warn信号和cut信号,通话时间和卡内余额是否变化,为什么?2020/1/1824操作说明采用模式5。按键9或键10设置卡的余额;按键1,表示电话卡插入;按键3或键4选择话务种类;按键2,表示线路接通。最右边两个数码管(数码2,数码1)显示通话时间的高位和低位;中间两个数码管(键6,键5)显示卡内余额的高位和低位。LEDD1~D7分别表示write、read、warn,cut、state_out、decide_out[0]和decide_out[1]信号。2020/1/1825实验报告详细写出完整的设计说明,并画出程序流程图。根据仿真结果分析卡式电话计费器的工作过程。
本文标题:06_03_020卡式电话计费器
链接地址:https://www.777doc.com/doc-3151663 .html