基于SOPC的数字钟.docVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(2013-2014学年) 重庆理工大学研究生课程论文 课程论文题目: 基于SOPC的数字钟设计 课程名称 SOPC技术及系统设计 课程类别 □学位课 □非学位课 任课教师 王先全 所在学院 电子学院 学科专业 仪器仪表工程 姓名 王小辉 学号 51307260101 提交日期 2014年7月7日 基于SOPC的数字钟设计 摘要:在EDA软件平台上,以硬件描述语言VHDL为系统逻辑描述手段完成的数字钟设计文件,完成逻辑优化和仿真测试。 关键词:计数器 模块 FLASH 一、设计要求 ①数字钟的秒计数器(用FPGA实现); ②数字钟的分计数器(用FPGA实现); ③数字钟的小时计数器(用FPGA实现); ④NIOS 的中断设计; ⑤NIOS读取数字钟的秒、分、小时的数据; ⑥NIOS 显示数字钟的秒、分、小时的内容 二、方案设计 ⒈根据设计要求,我们首先需在FPGA上完成数字钟的硬件设计,这里又可以细化为六个部分: ①将所选时钟信号转换为以秒为基准的信号,作为后面所需的秒时钟信号。这里我选的10Hz的时钟信号作为GPGA的输入信号,所以需做个十进制的计数器,即计数到10,full信号置1(full信号作为下个模块的时钟信号)。又因为计数值转换时不稳,会有跳变发生,接到数码管之后可能会有数值跳跃的现象,所以我在其中又添加了一个信号量INTEERUPT,当计数为2-8时INTEERUPT为1否则为0,将该信号接到NIOS中,编程实现INTEERUPT为1时输出时钟信号,就避免了跳变现象。 ②这部分需实现秒的计数,即前个模块的输出信号full作为它的输入信号clk,clk为1,计数值加1,加到59再来一个clk信号,计数值就自动清零,同时把输出信号full置1(full信号又作为下个模块的时钟信号)。 ③分模块跟秒模块计数功能一制,这里我偷懒把秒模块复用为分模块。 ④小时模块跟秒、分模块功能相近,只是清零值跟进位值不同(个位进位值9而清零值为4),这里要比秒、分模块多加一个变量,让它根据小时模块个位是否是4同时十位是否是2来置0置1,以此作为清零标志。 ⑤若以上模块在各自的工程中仿真成功,那接下来就需要把他们组合起来。新建了个工程a,把以上四个模块(其实只有三个,分、秒模块可以复用) 的vhdl文件添加进去,转换文件格式成电路图格式,然后在顶层文件中将他们组合连线,编译仿真成功之后,再将顶层文件转换成bsf文件,供后面使用(在FPGA与CPU系统符号结合时需调用)。 ⑥FPGA部分仿真成功之后,接下来就得新建一个工程b另做SOPC builder部分,把a中vhdl和bsf文件全复制并添加进来。 这里需注意,芯片选型与实验箱要匹配,本设计我添加了片上ROM、RAM及片外FLASH,片上ROM用来存储复位地址,片上RAM用来存储异常变量,片外FLASH具有掉电保持功能,用来存储程序(因为FLASH只识别pof文件,所以我们下硬件时要先把sof文件转换成pof文件,并在硬件下载界面中,把它加进去)。三态桥是连接FLASH和CPU的桥梁,这里我选的Avalon-MM Tristate Bridge。其次是输入输出端口的设置,这里的输入实际是与FPGA的输出对应的,即六个四位输入信号(秒个位、秒十位、分个位、分十位、小时个位、小时十位)外加一个一位的类似中断的选通信号(INTERRUPT)。设置并分配好之后,生成电路符号文件,在新建的顶层文件中加入刚生成的CPU系统符号和在FPGA中生成的bsf类型模块,在连线、添加输入输出口、注明网络标号之后,编译。我们做的硬件最终是要跟实物相连的,所以这里引脚分配很重要,不能重不能漏,qsf中引脚名称也必须bdf中引脚名与一致,参数设置完后再次编译,无误后,我们就可以开始编写软件部分。 ⒉软件部分,即NIOS部分,我们打开NIOS并新建工程c时需把前面工程b中的生成的ptf文件作为硬件设计文件。然后在工程中添加软件程序main.c文件,由于前面FPGA部分已经实现了时钟计数功能,这里就只需实现数码管显示功能,即位选段选,我们需根据实验箱的共阴或共阳写入对应段选码,又因为实验箱上有8个数码管,位选码对应为0-7。这里我们只用到六个,位选码为0-5。 这里需注意,用FLASH作程序存储时,我们需用USB BLASTER做下载线,软硬件下载接口也不一致。 三、Vhdl程序及bdf文件 ⒈实现1Hz的时钟信号转换。 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsign

文档评论(0)

kxiachiq + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档