CPLDFPGA原理及应用课程上级实验报告六教程.doc

CPLDFPGA原理及应用课程上级实验报告六教程.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《CPLD/FPGA原理及应用 实验名称 自动售货机的设计 实验时间 实验地点 计算机房 实 验 人 姓 名 陈凯文 合 作 者 无 学 号 20101185066 实验小组 第 组 实验性质 □验证性 □设计性 □综合性 □ 应用性 实验成绩: 评阅教师签名: 一.实验要求 1)设计一个自动售货机 2)只能卖1.5,2,2.5三种商品只能投0.5,1,5元三种货币 3)用modelsim仿真观察波形验证程序 二.实验内容 Sa,sb,sc分别表示1.5,2,2.5三种商品 Ma,mb,mc分别表示0.5 1 5元三种钱 Ch1,ch2,ch3分别表示三种商品的出货 Zl代表找零 首先我这一次实验并不成功,由于对verilog语言不熟练很多语法规则都不知道,加之身体问题好吧这些都是我失败的借口吧。下面是我的状态图 状态图: 这个状态图画完我想可能我的设计可能存在很大的问题因为我从未在case你写过case编程如下 `timescale 1ns/1ns module zidong_tp; reg[3:0]c,t; reg rst,clk; reg sa,sb,sc,ma,mb,mc; wire ch1,ch2,ch3,zl; parameter CYCLE=100; always #(CYCLE/2) clk=~clk; initial clk=1; zidong u1(sa,sb,sc,ma,mb,mc,rst,zl,ch1,ch2,ch3,clk); initial begin sa=1;sb=0;sc=0;rst=1;ma=0;mb=0;mc=0; #100sa=1;sb=0;sc=0;rst=0;mc=0;ma=0;mb=0; #10sa=0;sb=0;sc=0;rst=0;mc=1;ma=0;mb=0; #90sa=1;sb=0;sc=0;rst=1;mc=0;ma=0;mb=0; #10sa=0;sb=0;sc=0;rst=0;mc=1;ma=0;mb=0; end initial $monitor($time,,,%d,%d,%d,%d,%d,%d,%d,%b,%d,%d,%d,%d,sa,sb,sc,ma,mb,mc,rst,zl,ch1,ch2,ch3,clk); endmodule module zidong(sa,sb,sc,ma,mb,mc,rst,zl,ch1,ch2,ch3,clk); input sa,sb,sc,ma,mb,mc,rst,clk; output zl,ch1,ch2,ch3; reg[3:0]c,t; reg zl,ch1,ch2,ch3; parameter c0=0,c1=1,c2=2,c3=3,t0=0,t1=1,t2=2,t3=3,t4=4; always @(posedge clk) begin if(!rst)begin c=c0;zl=0;ch1=0;ch2=0;ch3=0; t=t0; end else if(sa==1sb==0sc==0) c=c1; else if(sa==0sb==1sc==0) c=c2; else if(sa==0sb==0sc==1) c=c3; else c=c0; end always@(ma or mb or mc or rst) begin case(c) 0:begin zl=0;ch1=0;ch2=0;ch3=0; t=t0; end 1:begin case(t) 0:begin if(ma)begin t=t1;zl=0;ch1=0;end else if(mb)begin t=t2;zl=0;ch1=0;end else if(mc)begin t=t0; zl=3.5;ch1=1;end else begin t=t0;zl=0;ch1=0;ch1=1;end end 1:begin if(!rst)begin t=t0;zl=0.5;ch1=0;end else if(ma)begin t=t2;zl=0;ch1=0;end else if(mb)begin t=t0;zl=0;ch1=1;end

文档评论(0)

taotao0c + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档