eda课设附录程序及仿真.doc_第1页
eda课设附录程序及仿真.doc_第2页
eda课设附录程序及仿真.doc_第3页
eda课设附录程序及仿真.doc_第4页
eda课设附录程序及仿真.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

附录一 分频模块及源程序module clk(clk_25M,clk1,reset);/ 端口的定义input clk_25M,reset;/ 总的时钟是25Moutput clk1;/分频后输的时钟 reg clk1;reg 31:0 count;/32位的计数器always (posedge clk_25M or negedge reset)/异步复位begin if(!reset) begin clk1=d0; count=32d0;endelse if(count=32d12500_000)/ 判断计时器记到了12500_000吗 begin count=32d0;/计到 12500_000计数器清零 clk1=clk1;/输出的时钟取反 end/end begin else count=count+1d1;/ 没计到25000_000计数器加一end/end alwaysendmodule / 结束分频模块 附录二 计程部分计程模块从波形图可以看出在时钟的控制下,当reset为高电平且start为高电平的时候distance开始计数,当计到大于三的时候输出了distance_enable为高电平。准备对第4公里以后的脉冲进行加计费。module jicheng(clk1,start,reset,distance,distance_enable);input clk1,start,reset;output 11:0 distance;reg 11:0 distance;output distance_enable;wire distance_enable;always(posedge clk1 or negedge reset)begin if(!reset) begin distance=11d0; end else if(start) begin if(distance3:0=9) begin distance3:0=4d0; if(distance7:4=9) begin distance7:4=4d0; if(distance11:8=9) distance11:8=4d0; else distance11:8= distance11:8+1d1; end else distance7:4= distance7:4+1d1; end else distance3:0=5)|(distance11:8!=0)&(distance3:0=0)|(distance3:0=5)?1d1:1d0;Endmodule 附录三 计时部分计时模块从波形图可以看出在clk的控制下当start为低电平reset为高电平的时候时间计数,当时间大于二分钟的时候,time_enable为输出高电平,每60s产生一个计费脉冲module jishi(clk2,reset,start,s,m,time_enable);input clk2,reset,start;output 7:0 s;output 7:0 m;output time_enable;reg 7:0 s;reg 7:0 m;wire time_enable; always(posedge clk2 or negedge reset)begin if(!reset) begin s=8d0; m=8d0; end else if(!start) begin if(s3:0=9) begin s3:0=4d0; if(s7:4=5) begin s7:4=4d0; if(m3:0=9) begin m3:0=4d0; if(m7:4=9) m7:4=4d0; else m7:4=m7:4+1d1; end else m3:0=m3:0+1d1; end else s7:4=s7:4+1d1; end else s3:08d0)&(s7:0=8d0)?1d1:1d0;endmodule 附录四 计费部分计费模块从波形图可以看出reset用于将费用计数器复位为起步价8.0元;由于本仿真select_clk信号并非是系统选择出来的公里脉冲和计时脉冲,通过认为设定,不影响其观察功能效果。module jifei(select_clk,reset,fei);input select_clk,reset;output11:0 fei; reg 11:0 fei;always(posedge select_clk or negedge reset)begin if(!reset) begin fei11:8=4d0; fei7:4=4d8; fei3:0=4d0; end else if(select_clk=1d1) begin if(fei3:0=4d5) begin fei3:0=4d0; if(fei7:4=4d9) begin fei7:4=4d0; if(fei11:8=4d9) fei11:8=4d0; else fei11:8=fei11:8+4d1; end else fei7:4=fei7:4+4d1; end else fei3:0=fei3:0+4d5; end end Endmodule 附录五 控制部分控制模块 控制模块分八种情况,从000111,从仿真结果上看,当rest为高时,start为1时为计程,start为0时为计时,通过start控制什么信号给计费模块module control(start,distance_enable,time_enable,select_clk,);input start,distance_e

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论