EDA课程设计郑州航院.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EDA课程设计郑州航院

郑州航空工业管理学院 EDA课程设计报告 题 目: 秒表 指导教师:马鹏阁、张松炜、王春彦 姓 名 学 号 2011年 06 月25日 EDA课程设计报告 设计任务 秒表设计 基本功能: 1、四位数码管显示秒表,计时范围:00-00至59-99,前两位单位是秒。 2、有一个开始计时、一个停止计时、一个复位按键。 其他要求: 1.晶振为12 MHz 2. 采用CPLD 器件为ALTERA 的EPM7064SL-44 3.采用数码管显示 二、设计方案 基于CPLD的数字秒表设计,应用Verilog 语言编写源程序,用QuartusⅡ对程序编译、仿真。最终下载至已焊接组合好的电路中应用。 实物元件清单: 印制电路板一块 电阻(1KΩ的4个,10KΩ的7个,220Ω的11个) 三极管4个 芯片ALTERA 的EPM7064SL-44基对应插槽1对 按键3个 数码管(共阴极)1个 晶振1个 下载线,电源线若干 电路原理图: 核心控制部分: 功率放大显示部分: 电路工作原理: 印制板电路主要分为两部分,即核心控制部分和数码显示部分。通过QuartusⅡ软件将源程序下载至电路芯片中,接通电源,由晶振提供震源,在数码显示部分(功率放大部分)显示数字秒表,通过三个按键来控制秒表显示状态。 三、设计程序 系统总体框图 数字秒表主要有分频器、计数模块、功能控制模块、势能控制模块和显示输出模块组成。系统框图下图所示(只显示程序部分)。 各部分源程序及说明 (一)分频模块 设计所用晶振提供12MHz的震源,通过分频将其转化为要求的100Hz,程序如下: module int_div(clock,clk_out); //I/O口声明 input clock; //输入时钟 output clk_out; //输出时钟 //内部寄存器 reg clk_p_r; //上升沿输出时钟 reg clk_n_r; //下降沿输出时钟 reg[F_DIV_WIDTH - 1:0] count_p; //上升沿脉冲计数器 reg[F_DIV_WIDTH - 1:0] count_n; //下降沿脉冲计数器 //参数--分频系数 parameter F_DIV = 120000; //分频系数-----修改这里 parameter F_DIV_WIDTH = 32; //分频计数器宽度 wire full_div_p; //上升沿计数满标志 wire half_div_p; //上升沿计数半满标志 wire full_div_n; //下降沿计数满标志 wire half_div_n; //下降沿计数半满标志 //判断计数标志位置位与否 assign full_div_p = (count_p F_DIV - 1); assign half_div_p = (count_p (F_DIV1) - 1); assign full_div_n = (count_n F_DIV - 1); assign half_div_n = (count_n (F_DIV1) - 1); //时钟输出 assign clk_out = (F_DIV == 1) ? clock : (F_DIV[0] ? (clk_p_r clk_n_r) : clk_p_r); //上升沿脉冲计数 always @(posedge clock) begin if(full_div_p) begin count_p = count_p + 1b1; if(half_div_p) clk_p_r = 1b0; else clk_p_r = 1b1; end else begin count_p = 0; clk_p_r = 1b0; end end //下降沿脉冲计数 always @(negedge clock) begin if(full_div_n) begin count_n = count_n + 1b1; if(half_div_n) clk_n_r = 1b0; else clk_n_r = 1b1; end else begin count_n = 0; clk_n_r = 1b0; end end endmodule (二)计数模块 计数模块中,时钟信号是100 Hz作为秒表的百分秒输入,百分秒为100进制计数器,

文档评论(0)

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

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档