2022年EDA课程设计报告.docx
精品学习资源封面欢迎下载精品学习资源作者: PanHongliang仅供个人学习设 计 报 告CCJ课程名称 在系统编程技术任课老师欢迎下载精品学习资源06 级通信工程 1 班NCWSS111111111112021-6-16设计题目 数字时钟设计班级姓名学号日期目录前言 4一、任务和设计要求41. 设计指标 52. 设计要求 5二、设计原理51. 时钟计数 52. 时间设置 63. 清零功能 64. 硬件电路图 6三、设计仪器、设备6四、设计步骤61. 用 VHDL 程序设计 6步骤 1:为本项设计建立文件夹6步骤 2:输入设计工程和存盘6步骤 3:选择目标器件并编译7步骤 4:时序仿真 7步骤 5:引脚锁定 8步骤 6:编程下载 82. 试验箱设置 83. 试验结果 8五、心得体会8六、参考文献9附录:数字时钟设计程序9欢迎下载精品学习资源Alert 模块 9Hour 模块 10Minute 模块 11Second模块 12前言EDA ( Electronic Design Automation 即电子设计自动化)技术是在系统编程 技术地核心 ,它依靠与功能强大地运算机 ,在 EDA 工具软件平台 ,对以硬件描述语言 HDL ( Hardware Description language)为系统规律描述手段完成地设计文件, 自动地完成规律编译、规律简化、规律分割、规律综合、结构综合(布局布线) ,以及规律优化和仿真测试 ,直至实现既定地电子线路功能 .EDA 技术在硬件实现方面融合了大规模集成电路制造技术、 IC 版图设计技术、 ASIC 测试和封装 技 术 、 FPGA ( Field Programmable Gate Array )/CPLDComplex Programmable Device编程下载技术、自动测试技术等;在运算机帮忙工程方面融合了运算机帮忙设计(CAD )、运算机帮忙制造( CAM )、运算机帮忙测试( CAT)、运算机帮忙工程(CAE )技术以及多种运算机语言地设计概念;而在现代电子学方面就容纳了更多地内容,入电子线路设计理论、数字信号处理技术、数字系统建模和优化技术及赐予微波技术地长线技术理论等.因此,EDA 技术为现代电子理论和设计地表达与实现供应了可能性.本次设计主要利用VHDL 语言在 EDA 平台上设计一个电子数字钟 ,它地计时周期为 24 小时,显示满刻度为 24 时 59 分 59 秒,另外仍具有校时功能和闹钟功能.总地程序由几个各具不同功能地单元模块程序拼接而成,其中包括分频程序模块、时分秒计数和设置程序模块、比较器程序模块、三输入数据选择器程序模块、译码显示程序模块和拼接程序模块.并且使用 QUARTUS II 软件进行电路波形仿真,下载到 EDA 试验箱进行验证 .数字时钟设计综述报告一、任务和设计要求1. 熟识集成电路地引脚支配 .欢迎下载精品学习资源2. 把握各芯片地规律功能及使用方法 .3. 明白数字钟地组成及工作原理 .4. 熟识数字钟地设计与制作 .1 设计指标(1) )时间以 24 小时为一个周期;(2) )显示时、分、秒;(3) )有校时功能 ,可以分别对时及分进行单独校时,使其校正到标准时间;(4) )计时过程具有报时功能 ,当时间到达整点前 5 秒进行蜂鸣报时 .2 设计要求(1) )画出电路原理图(或仿真电路图);(2) )元器件及参数选择;(3) )电路仿真与调试二、设计原理依据系统设计要求 ,系统设计接受自顶向下设计方法 ,由时钟分频部分、计时部分、按键部分调时部分和显示部分五个部分组成 .这些模块都放在一个顶层文件中 .1. 时钟计数第一下载程序进行复位清零操作 ,电子钟从 00: 00: 00 计时开头.sethour可以调整时钟地小时部分 , setmin可以调整分钟 ,步进为 1.由于电子钟地最小计时单位是 1s,因此供应应系统地内部地时钟频率应当大于 1Hz,这里取 100Hz.CLK 端连接外部 10Hz 地时钟输入信号clk.对 clk 进行计数 ,当 clk=10 时,秒加 1,当秒加到 60 时,分加 1;当分加到 60 时,时加 1;当时加到 24 时,全部清 0,从新计时 .用 6 位 数 码管 分别 显示 “ 时” 、“ 分” 、“ 秒 ” , 通过OUTPUT 6 DOWNTO 0 上地信号来点亮指定地 LED 七段显示数码管.欢迎下载精品学习资源2 时间设置手动调剂分钟、小时 ,可以对所设计地时钟任意调时间 ,这样使数字钟真正具有使用功能 .我们可以通过试验板上地键 7 和键 4 进行任意地调整,由于我们用地时钟信号均是 1HZ 地,所以每 LED 灯变化一次就来一个脉冲 ,即计数一次 .3. 清零功能reset 为复位键 ,低电平常实现清零功能 ,高电平常正常计数 .可以依据我们自己任意时间地复位 .4. 硬件电路图三、设计仪器、设备PC机一台、 GW48教案试验系统一台、下载电缆一根(已接好)四、设计步骤1. 用 VHDL程序设计步骤 1:为本项设计建立文件夹任何一项设计都是一项工程, 都必需第一为此工程建立一个放置与此工程相关地全部地文件夹, 在此文件夹被EDA 软件默认为工作库 . 一个设计工程可以包含多个设计文件, 一般不同地设计工程最好放在不同地文件夹中. 留意:文件名不能使用中文, 且不能带空格 .步骤 2:输入设计工程和存盘1) 打开 QUARTUS|, 单击“ file ”菜单 ,将鼠标移到New Project Wizard 选欢迎下载精品学习资源项单击就显示下图内容,在其中建立工程名和实体名,工程名和实体必需保持一样,最终点击 finish 完成2) 在其中点击file new,选择原理图编辑器 ,在这里我们建立VHDL文件,点击确定就显示下图情形,可以在里面键入程序 ,如下图 .步骤 3:选择目标器件并编译1 在 Assign 选项地下拉菜单中选择器件选择项Device, 如以下图 . 在Device Family(器件序列栏)中选定目标器件对应地序列名,EPF10K10 对应地是 FLEX10K系列 . 为了选择 EPF10K10LC84-4器件 , 应将此栏下方标有Show only Fastest Speed Grades地勾消去 , 以便显示出全部速度级别地器件. 完成器件选择后, 按 OK键.选择 Cyclone Package:TQFP PIN:144 Speed grade:8输入完程序以后点击工具栏右方一个紫色地三角符号“”, 然后运行程序 ,假如程序显现错误再改正.步骤 4:时序仿真1. 建立波形文件:选择File->New,选择 Vector Waveform File,单击 OK.图 6.4建立波形文件2. 选择 Edit->End Time选项, 如图 6.6 所示 , 设定仿真时间宽度.3. 双击 Name下地空白处 , 弹出 Insert Nod or Bus对话框 , 单击 Node Finder. 4如图 6.7 所示选定各个选择项 .5. 单击 OK,完成引脚输入 .6. 加上输入信号后波形文件存盘. 运行仿 真器 . 在 Processing菜单 下选择StartSimulation项, 直 到Simulator was successful显现 , 仿真终止 . 完成波形如以下图 .欢迎下载精品学习资源步骤 5:引脚锁定选择 Assign PinLocationChip, 在跳出地窗口中地 Node Name 栏中用键盘输入半加器地端口名 , 如 a、 b 等. 假如输入地端口名正确 , 在右侧地 Pin Type 栏将显示该信号地属性 . 输入以后如下图 , 设定完成以后再运行一次程序 .步骤 6:编程下载1) 第一将下载线把运算机地打印机口与目标板(如开发板或试验板)连接好 , 打开电源2) 下载方式设定 . 选择 MAX+plusIIProgrammer 选项 , 跳出下图左侧所示地编程器窗口 , 然后选择 OptionsHardware Setup硬件设置选项 , 其窗口图中左侧所示 . 在其下拉菜单中选ByteBlaster( MV)编程方式 . 此编程方式对应运算机地并行口下载通道 , “ MV”是混合电压地意思 , 主要指对 ALTERA地各类芯核电压(如 5V、3.3V 、2.5V 与 1.8V 等)地 FPGA/CPLD都能由此下载 . 此项设置只在初次装软件后第一次编程前进行, 设置确定后就不必重复此设置了最终点击 start按钮, 进入下载模式 , 等待下载完成以后在试验箱上进行调试检测是否正确 .2. 试验箱设置( 1)任意设置时间 , 让其从某一时间开头显示( 2)时间显示为 24 进制 , 当时间显示到大23:59:59后将会从 00: 00: 00 开头显示3. 试验结果试验箱使用模式 7,键 8 为复位按键 ,键 8 为 1 时正常工作 .键 4 设置小时,键 7 设置分钟 .下载成功后 ,按下键 8,及使六个 LED 复位清零 ,显示数秒地自动计时 ,可以通过 4 键设置小时数 ,7 键设置分钟数 .当秒数满60 就进一位 ,分钟数满 60 进一位 ,当显示为 23:59:59 时,秒数在加一就显示 00:00:00,之后从新计时 .五、心得体会本次课程设计我做出地数字时钟能够正确地进行整点报时,显示时间,但是对于调时调分功能不能正确显示.经过努力 ,简易电子时钟地设欢迎下载精品学习资源计基本上算是完成了 ,在整个设计中 ,我最大地体会就是:对学过地学问遗忘太多 .在本次地课程设计中 ,我发觉了很多问题 ,同时做起来也很难不顺手 ,看着简洁地电路 ,要动手把它设计出来实非易事,主要缘由对相关应用软件地不熟识 ,这就要求我们在以后地学习中,应当留意复习地重要性,对学过地学问要常常复习 ,加深记忆 ,更重要地是我们要学会把从书本上学到地学问和实际电路联系起来,这不论对我们以后地学习仍是就业,都会起到很大地促进和帮忙 .通过本次课程设计 ,巩固了我们以前学过地专业学问 ,通过这次地程序设计 ,使我们对数字系统结构也有了更进一步地明白与熟识,同时对数据库软件技术 ,语言等系列学问都有了确定地明白与熟识.使用技术开发页面地才能也有了提高,也使我们把理论与实践从正真意义上结合了起来 ,考查了我们地动手才能和查阅相关资料地才能,仍有组织材料地才能 .通过此次实践 ,我们从中可以找出自己学问地不足与欠缺,以便我们在日后地学习中得以改进与提高 .经过本次设计使我们对高校四年期间所学习到地学问得以进一步实践 ,这将对我们走出校内 ,走向社会 ,走向工作岗位奠定坚实地基础 .六、参考文献1. 姜雪松 , 吴钰淳, 王鹰1VHDL设计实例与仿真 M 1 北京: 机械工业出版社, 2007.1.2. Stefan Sjohp lm,LennartL indh1VHDL设计电子线路 M1 边计年,薛宏熙, 译1北京: 清华高校出版社 , 20001.3. 李国洪 , 沈明山. 可编程器件 EDA技术与实践 M. 北京: 机械工业出版欢迎下载精品学习资源社,20044. 周红, 刘光蓉, 张红武.利用MAX+ plus 进行数字规律课程设计J .武汉工业学院学报 ,2004.4.欢迎下载精品学习资源附录:数字时钟设计程序Alert模块LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY alert IS欢迎下载精品学习资源PORTclk:IN STD_LOGIC;dain:IN STD_LOGIC_VECTOR6 DOWNTO 0;speak:OUT STD_LOGIC ;lamp:OUT STD_LOGIC_VECTOR2 DOWNTO 0;END alert ;ARCHITECTURE fun OF alert ISSIGNAL count:STD_LOGIC_VECTOR1 DOWNTO 0;SIGNAL count1:STD_LOGIC_VECTOR1 DOWNTO 0;BEGINspeaker:PROCESSclkBEGIN-speak<=count11 ;IFclk'event and clk='1'THEN IFdain="0000000"THENspeak<=count11;IFcount1>="10"THENcount1<="00" ;-count1 为三进制加法计数器ELSEcount1<=count1+1 ;-speak<=count10 ;END IF ;END IF ;END IF ;END PROCESS speaker;lamper:PROCESSclkBEGINIFrising_edgeclkTHEN IFcount<="10"THEN IFcount="00"THENlamp<="001" ;- 循环点亮三只灯ELSIFcount="01"THENlamp<="010" ;ELSIFcount="10"THENlamp<="100" ;END IF ;count<=count+1 ;ELSEcount<="00" ;END IF ;END IF ;END PROCESS lamper ;END fun ;Hour 模块LIBRARY IEEE ;use IEEE.STD_LOGIC_1164.ALL ;USE IEEE.STD_LOGIC_UNSIGNED.ALL;欢迎下载精品学习资源ENTITY hour ISPORTclk,reset:IN STD_LOGIC ;daout:out STD_LOGIC_VECTOR5 DOWNTO 0;END ENTITY hour ;ARCHITECTURE fun OF hour ISSIGNAL count:STD_LOGIC_VECTOR5 DOWNTO 0;BEGINdaout<=count;PROCESSclk,reset BEGINIFreset='0'THEN count<="000000" ; -如 reset=0,就异步清零ELSIFclk'event and clk='1'THEN-否就,如 clk 上升沿到IFcount3 DOWNTO 0="1001"THEN -如个位计时恰好到 "1001" 即 9 IFcount<16#23#THEN-23进制count<=count+7 ;- 如到 23D 就elsecount<="000000" ;-复 0 END IF ;ELSIF count<16#23#THEN- 如未到 23D, 就 count 进 1 count<=count+1 ;ELSE- 否就清零count<="000000" ;END IF ; -END IF (count( 3 DOWNTO 0 )="1001" )END IF ;-END IF ( reset='0') END PROCESS;END fun ;Minute 模块LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY minute IS PORTclk,clk1,reset,sethour:IN STD_LOGIC ;enhour:OUT STD_LOGIC ;daout:OUT STD_LOGIC_VECTOR6 DOWNTO 0;END ENTITY minute;ARCHITECTURE fun OF minute ISSIGNAL count :STD_LOGIC_VECTOR 6 DOWNTO 0;SIGNAL enhour_1, enhour_2: STD_LOGIC; -enmin_1 为 59 分时地进位信号BEGIN-enmin_2 由 clk 调制后地手动调时脉冲信号串daout<=count ;enhour_2<= sethour and clk1 ; -sethour 为手动调时把握信号,高电平有效enhour<= enhour_1 or enhour_2 ;PROCESSclk,reset,sethour BEGINIFreset='0' THEN - 如 reset 为 0,就异步清零count<="0000000" ;欢迎下载精品学习资源ELSIFclk'event and clk='1'THEN -否就,如 clk 上升沿到IFcount 3 DOWNTO 0 ="1001"THEN-如个位计时恰好到"1001" 即 9IFcount <16#60# THEN - 又如 count 小于 16#60#,即 60 IFcount="1011001" THEN- 又如已到 59Denhour_1<='1'; - 就置进位为 1 count<="0000000" ; -count 复 0ELSEcount<=count+7 ; -如 count 未到 59D, 就加 7,即作 " 加 6 校正" END IF ; - 使前面地 16#60#地个位转变为 8421BCD 地容量ELSEcount<="0000000" ;-count 复 0(有此句 ,就对无效状态电路可自启动) END IF ;-END IF ( count<16#60#)ELSIF count <16#60# THENcount<=count+1 ; - 如 count<16#60# 就 count 加 1 enhour_1<='0' after 100 ns ; -没有发生进位ELSEcount<="0000000" ; -否就 ,如 count 不小于 16#60# count 复 0 END IF ; -END IF ( count( 3 DOWNTO 0 )="1001" )END IF ; -END IF ( reset='0')END process;END fun ;Second 模块LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY second ISPORT clk,reset,setmin:STD_LOGIC ;enmin:OUT STD_LOGIC ;daout:OUT STD_LOGIC_VECTOR6 DOWNTO 0;END ENTITY second ;ARCHITECTURE fun OF second ISSIGNAL count:STD_LOGIC_VECTOR6 DOWNTO 0;SIGNAL enmin_1,enmin_2:STD_LOGIC; -enmin_1 为 59 秒时地进位信号BEGIN-enmin_2 由 clk 调制后地手动调分脉冲信号串daout<=count;enmin_2<=setmin and clk ; -setmin 为手动调分把握信号,高电平有效enmin<=enmin_1 or enmin_2 ; -enmin 为向分进位信号PROCESSclk,reset,setminBEGINIFreset='0'THEN count<="0000000" ; - 如 reset为 0,就异步清零ELSIFclk 'event and clk='1'then - 否就,如 clk 上升沿到IFcount3 downto 0="1001"then- 如个位计时恰好到 "1001" 即 9IFcount<16#60#then - 又如 count 小于 16#60#,即 60H IFcount="1011001"then- 又如已到 59Denmin_1<='1' ;count<="0000000" ;- 就置进位为 1 及 count 复 0欢迎下载精品学习资源ELSE- 未到 59Dcount<=count+7 ; - 就加 7,而+7=+1+6, 即作"加 6 校正" END IF ;ELSE- 如 count 不小于 16#60#(即 count 等于或大于 16#60#)count<="0000000" ; -count 复 0END IF ;-END IF ( count<16#60#)ELSIFcount<16#60#then - 如个位计数未到 "1001" 就转此句再判count<=count+1 ;-如 count<16#60# 就 count 加 1 enmin_1<='0'after 100 ns ; -没有发生进位ELSE- 否就, 如 count 不小于 16#60# count<="0000000" ; - 就 count 复 0END IF ;-END IF ( count(3 DOWNTO 0 ) ="1001" )END IF ;-END IF ( reset='0') END PROCESS;END fun ;版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理;版权为潘宏亮个人全部This article includes some parts, including text, pictures, and design. Copyright is Pan Hongliang's personal ownership.用户可将本文的内容或服务用于个人学习、争论或观看,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵害本网站及相关权益人的合法权益;除此以 外,将本文任何内容或服务用于其他用途时,须征得本人及相关权益人的书面许可,并支付酬劳;Users may use the contents or services of this article for personal study, research or appreciation, and other non-commercial or non-profit purposes, but at the same time, they shall abide by the provisions of copyright欢迎下载精品学习资源law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this article is used for other purposes, written permission and remuneration shall be obtained from the person concerned and the relevant obligee.转载或引用本文内容必需是以新闻性或资料性公共免费信息为使用目的的合理、善意引用,不得对本文内容原意进行曲解、修 改,并自负版权等法律责任;Reproduction or quotation of the content of this article must be reasonable and good-faith citation for the use of news or informative public free information. It shall not misinterpret or modify the original intention of the content of this article, and shall bear legal liability such as copyright.欢迎下载