欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    EDA地铁售票系统长沙理工.docx

    • 资源ID:10747797       资源大小:182.23KB        全文页数:19页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    EDA地铁售票系统长沙理工.docx

    1、EDA地铁售票系统长沙理工模拟地铁售票系统实验报告学院:计算机与通信工程学院 班级:通信工程参与人员:郭xx(组长) 2012xxxxx 吴xx 2012xxxxx 赵xx 2012xxxxxxxx 刘xx 2012xxxxxxx 徐x 2012xxxxxxx题目:模拟地铁售票系统。主要内容:利用VHDL语言设计地铁售票系统的核心功能MAXPLUSII软件作为发平台,设计城市地铁售票系统程序并进行仿真。使其实现选站、选择张数、出票、找零等功能。设计要求 功能描述:用于模仿地铁售票的自动售票,完成地铁售票的核心控制功能。 功能要求:售票机有2个进币孔,一个是输入硬币,一个是输入纸币,硬币的识别范

    2、围是1元的硬币,纸币的识别范围是1元、2元,5元,10元。乘客可以连续多次投入钱币。乘客可以选择的种类为25元,乘客一次只能选择一个出站口。购买车票时,乘客先选择出站名,然后选择所需的票数,再进行投币,投入的钱币达到所需金额时,售票机自动出票,并找出余额,本次交易结束,等待下一次的交易。在投币期间,乘客可以按取消键取消本次操作,钱币自动退出。课题分析1买车票时,乘客按“开始选择”按钮,接着选择出站口接着选择购票数量(根据提示,一次购票数限制在6张以内);然后按“开始投币”按钮,投入钱币;当投入的钱币达到所需金额时,售票机自动出票,并找出余额。考虑到控制整个售票机的物理体积,余额将全部采用1元硬

    3、币的形式找出。2选择出站口或投币过程中,乘客都可以按“取消”按钮取消该次交易。选择出站口的过程中,若按“取消”,则售票机直接回到初始状态;投币过程中,若按“取消”,则售票机将乘客已经投入的钱币全部退出,再回到初始状态。3客一次只能选择一个出站口,根据乘坐的站数确定票价。假设乘客购票所在站到终点站共有19站。若乘坐1-5站,则票价为2元张;若乘坐6-10站,则票价为3元张。19个站用长度位5的二进制向量编码表示,即00001表示乘坐1站,00010表示乘坐2站,依次类推,10011表示乘坐19站(到终点站)。4票机有1个进币端口。硬币口可识别1元硬币,用单独信号的上升沿方式表示,纸币口类似,用长

    4、度为4的二进制编码方式表示。乘客可以连续多次投入钱币,并且可以以任意顺序投入硬币和纸币系统流程图1 选站状态 当“确认”信号为高电平时,输入站点信号(0-19)被读入有效,确认票型,赋给相应暂存变量并进入选票数状态。当站点为前4站时,票为2元票,后每加5个站加一块钱。否则当“确认”信号为低电平,所处状态不变,系统没有录入有效信息。 直至用户按下“确认”键前,选择的站点后选的覆盖先选的。 选票数状态 当“确认”信号为高电平时,输入票数(1-6)信号被读入有效,赋给相应暂存变量,计算出应付总金额,并进入付款状态。这里需参考选站状态时确定的票类型计算总金额。否则当“确认”信号为低电平,所处状态不变,

    5、系统没有录入有效信息。直至用户按下“确认”键前,选择的票数后选的覆盖先选的。 付款状态 用户每投入钱币,系统更新“已付金额”。若“已付金额”不小于“应付金额”,系统进入找零及出票状态。若不足,系统任处于付款准备状态,直至金额足够。若中途用户按下“取消”键,系统进入退款准备状态。 退款准备状态 系统计算出应退金额,并按钱的面值从大到小的优先级算出每种面值的钞票应该付几张。系统进入结束状态。 找零及出票准备状态系统计算出应找金额,并按钱的面值从大到小的优先级算出每种面值的钞票应该付几张。系统计算出出票的种类和票数。系统进入结束状态。系统并将所有数据清除,进入下一个购票环节。程序代码:module

    6、subway_tb;reg rst; reg clk; reg get; reg cancel; reg 4:0sel_in; reg 4:0sel_out; reg 3:0count; reg ci_1; reg ci1; reg ci5; reg ci10; wire co1; wire co2;wire co3;wire co4; wire cak1; reg get_1; subway su( .rst (rst ) , .clk (clk ) , .get (get ) , .cancel (cancel ) , .sel_in (sel_in ) , .sel_out (sel_o

    7、ut) , .ci_1 (ci_1 ) , .ci1 (ci1 ) , .ci5 (ci5 ) , .ci10 (ci10 ) , .co1 (co1 ) , .co2 (co2 ) , .co3 (co3 ) , .co4 (co4 ) , .cak1 (cak1 ) , .get_1 (get_1) , .count (count ) ); initial begin rst = 1 ; / forever #10 clk =!clk; cancel =0; #100; rst = 0; sel_in = 5b00111; sel_out = 5b00001; #100; count =

    8、4b0011; #100; get_1= 1b1; get = 1b1; ci_1=1b1; ci10=1b1; ci5=1b1; #150; count = 4b0000; ci_1=1b0; ci10=1b0; ci5=1b0; #100; sel_in = 5b00000; sel_out = 5b00000; #3000 get = 1b0; get_1= 1b0; /- rst = 1 ; / forever #10 clk =!clk; cancel =0; #100; rst = 0; sel_in = 5b00111; sel_out = 5b00001; #100; coun

    9、t = 4b0011; #100; get_1= 1b1; get = 1b1; ci10=1b1; #150; count = 4b0000; cancel=1b1; ci_1=1b0; ci10=1b0; ci5=1b0; end endmodule module subway ( rst, clk, get, get_1, cancel, sel_in, sel_out, count, ci_1 , ci1, ci5, ci10, co1,co2,co3,co4, cak1, ); input rst,clk; input get,cancel; input ci_1,ci1,ci5,c

    10、i10; input 3:0 count; input 4:0sel_in ; input 4:0sel_out ;input get_1; output co1,co2,co3,co4; output cak1; wire 7:0cout; wire finish; wire finishp; wire 3:0sel;wire en;wire clr;wire 7:0mount; module zhan ( rst, clk, clr, get_1, sel_in, sel_out, sel );input rst; input clk; input clr;input get_1; inp

    11、ut 4:0sel_in;input 4:0sel_out;output reg 3:0sel; reg 3:0a;always (posedge clk & get_1 ) begin if(!rst = 0) a = 4b0000; else if (!clr = 0) a = 4b0000; else if( sel_in = sel_out) a = (sel_in - sel_out) / 5 )+1 ; else if ( sel_in sel_out) a = (sel_in - sel_out) / 5 )+ 2;end always (posedge clk ) begin

    12、begin case(a) 4b0001:sel = 4b0010; 4b0010:sel = 4b0011; 4b0011:sel = 4b0100; 4b0100:sel = 4b0101; default:sel=4b0000; endcase end end endmodule module count ( clk, rst, clr, ci_1, ci1, ci5, ci10, cout ); input rst; input clk; input clr; input ci_1,ci1,ci5,ci10; output 7:0 cout; reg 2:0 q1,q5,q10,q_1

    13、; assign cout = q1 + 5*q5 + 10*q10 + 1*q_1; always (posedge rst or posedge clr or posedge ci1) begin if(rst=1) q1 = 0; else if(clr=1) q1 = 0; else begin q1 = q1 + 1; end end always (posedge rst or posedge clr or posedge ci5) begin if(rst=1) q5 = 0; else if(clr=1) q5 = 0; else begin q5 = q5 + 1; end

    14、end always (posedge rst or posedge clr or posedge ci10) begin if(rst=1) q10 = 0; else if(clr=1) q10 = 0; else begin q10 = q10 + 1; end end always (posedge rst or posedge clr or posedge q_1) begin if(rst=1) q_1= 0; else if(clr=1) q_1 = 0; else begin q_1 = q_1 + 1; end end endmodule module zhao ( rst,

    15、 clk, clr, finishp, mount, cak1 ); input rst; input clk; input clr; input finishp; input 7:0 mount; output cak1; reg regcak1; reg 7:0 q; assign cak1 = regcak1;always ( posedge clk & finishp =1) begin if (mount != 0 ) q = mount; if( q ) begin regcak1 = 1; q = q-1; end if( !q ) begin regcak1 = 0; end

    16、end endmodule module contrl ( rst, clk, get, cancel, sel, / count, / cout, / mount, / finish, finish_done, / finishp , clr, en / ); input rst; input clk; / input get,cancel; input 3:0 sel; input 3:0count; output reg finish_done; input 7:0 cout; input clr; output reg 7:0 mount; output reg finish,fini

    17、shp; output reg en; always (posedge rst or posedge clk) begin finish_done =0; if(rst=1 ) begin mount = 0; finish = 0; finishp = 0; en = sel*count ) begin finish = 1; finishp = 1; finish_done =1; en =1; mount = cout - sel*count ; end else if(cancel = 1)|(get = 1)&(cout sel*count ) begin finishp = 0;

    18、finish = 1; mount = cout; finish_done =1; en =1; end else begin finishp = 0; finish = 0; end end end endmodule module chupiao ( rst,clk,clr, en, sel, count, co1,co2,co3,co4 ); input rst,clk,clr; input en; input 3:0 sel; input 3:0count; output co1,co2,co3,co4; reg 3:0 q; /reg 3:0 qsel; reg 2:0 qcount

    19、; assign co1 = q0;assign co2 = q1;assign co3 = q2;assign co4 = q3; always ( posedge clk & en=1) begin if(rst=1) qcount = 0; if (count != 0 ) qcount = count; if( qcount & sel =2 ) begin q0 = 1; qcount = qcount-1; end if( !qcount ) begin q0 = 0; end end endmodule 结束语在此次课程设计中,我们收获了许多,不仅在知识学习方面,而且在动手能力方

    20、面、团结合作能力等方面都有了一定的成就。 首先,在知识学习方面,虽然我们开始有在计算机组成原理这一门课程中接触过verilogL这一门语言,但是我们都还不是很了解,只知道它由实体、结构体组成,其余的就不是很了解,但是在此次课程设计中,我们有了比较详细的了解,基本能够写出一个比较完整的程序。这两周的自学中,我们也体会到了自学得快乐。 其次,在动手能力方面,很多时候我们都是知识不能够结合实践,所以很多时候我们都不知道应该怎么样开始,不过此次由于有了老师的详细讲解,所以,我们能够很快知道接下来应该做什么,有什么作用,得出什么结果。 最后,在团结合作能力方面,虽然每个人有每个人的题目板块,但是我们还是充分发挥了我们的团结合作能力,找到程序的同学帮没找到的同学找,有什么错误的大家一起讨论,一起找资料解决,最后,实在不行还有我们坚强的后盾我们的指导老师,所以我们合作得很快乐。 在这次设计过程中,体现出团队设计的能力以及综合运用知识的能力,体会了学以致用、突出劳动成果的喜悦心情,从中发现平时学习的不足和薄弱环节,从而加以弥补。同时,也再次体会到了学习合作的快乐。


    注意事项

    本文(EDA地铁售票系统长沙理工.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开