《基于vhdl微波炉课程设计》说明书_第1页
《基于vhdl微波炉课程设计》说明书_第2页
《基于vhdl微波炉课程设计》说明书_第3页
《基于vhdl微波炉课程设计》说明书_第4页
《基于vhdl微波炉课程设计》说明书_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

1 微波炉控制器的 FPGA 实现 2 目 录 第一章 绪 论.1 第一节 课题背景介绍1 第二章 电子设计自动化概述2 第一节 VHDL 简介2 第三章 总体设计5 第一节 课题的主要内容及基本要求5 第二节 设计思路5 第三节 设计方案6 第四章 模块分析8 第一节 状态控制电路模块9 第二节 数据装载电路模块10 第三节 计时器模块11 第五章 程序设计及仿真12 第一节 程序简要说明12 第二节 仿真时序图13 第六章 硬件调试13 总 结 .16 致 谢 .17 参考文献.18 附录一 原理图19 附录二 源程序20 3 摘摘 要要 该设计用语言在软件平台上通过编译、模 拟仿真,完成了微波炉控制功能,实现了微波炉的测试、时间设置、烹调计时、 完成提示等设计,并对时钟分频作了一定的探讨。此设计采用了现场可编程逻 辑器件的 设计,由控制模块、装载模块、计时模块和显示 模块四大模块组成,而且它可以将所有器件集成在一块芯片上,体积大大减小, 且外围电路很简单,易于实现。 关键词:;微波炉控制器;仿真 第一章 绪 论 第一节 课题背景介绍 一、产品背景介绍 Percy L.Spencer 在 1946 年构想出微波炉的概念,在 1950 年取得专利。 微波炉的运作机制为微波在水中能产生摩擦热的原理。早期微波炉尺码庞大, 重量超过 300 公斤和高度超过 1.5 米,所以主要在大型餐厅和食物市场使用。 第一部家用微波炉是在 1965 年由 Raytheon 集团生产。 二、国内产品发展现状 现在,中国已成为全球最大的微波炉生产基地,据估计,中国微波炉年产 量已达 2000 万台左右,从 2001 年中国市场的需求量来看,约在 700 万台左右。 中国微波炉市场经过前几年的洗牌,已由前几年的 300 多家减少至目前的 100 多家,其中在市场上可统计的仅 30 多家。 洋品牌在早期的微波炉市场份额,几乎占据了绝大部分的市场。但初期由 于微波炉市场属于导入期,价格高,消费者接受的少,自 1996 年以后,惠而浦、 松下等大部分都退出了中国市场,主要以出口为主。1998 年后,外资品牌中以 韩国品牌 LG、三星表现较为突出,逐渐跨入第 2、第 3 名,微波炉第一品牌为 格兰仕。2000 年,美的介入,迅速崛起成为行业第三,三星也逐渐退出市场。 经过 60 年的发展,微波炉已经成为人们日用生活中的必不可少的厨房电器, 大大降低了家庭妇女的工作量和工作强度。据统计,微波炉目前在日本、美国、 西欧等发达国家地区的普及率高达 98%,在中国城镇的普及率也已近 90%。这个 数字甚至超过了彩电和洗衣机的普及程度。 三、产品发展趋势 随着人们生活水平的提高和信息化的发展,家用电器层出不穷,各种功能 也越来越完善,其中微波炉是现代家庭的必备产品,它的质量和性能的高低,将 4 会极大的影响人们的生活水平和质量。为此,设计一个高质量的微波炉控制系 统是非常有必要的。 微波炉开始进入越来越多的家庭,他给人们的生活带来了极大的方便。微 波炉由 2450MHz 的超高频来加热食物。他省时、省电、方便和卫生,作为现代 的烹饪工具,微波炉的控制器体现着他的重要性能指标。目前大部分微波炉控 制器采用单片机进行设计,带南路比较复杂性能不够灵活。本文采用先进的 EDA 技术,利用 QuartusII 工作平台和 VHDL 设计语言,设计了一种新型的微波 炉控制器芯片,该芯片具有系统复位、时间设定和烹饪计时的功能,用一片 FPGA 芯片实现,所以能设计出一款方便安全操作的微波炉是非常有必要的。 第二章 电子设计自动化概述 第一节 VHDL 简介 随着VLSI、EDA( Electronic Design Automation )工具的迅速发展,用户系 统的设计从单纯的ASIC(Application Specific Integrated Circuit)设计向着系 统单片化SOC(System On a Chip)设计的方向发展。同时网络技术的发展,共享 IP 知识产权的开放式系统设计成为新模式,芯片工艺物理设计与系统设计相分 离,使用户系统设计人员可直接从事芯片设计。多种技术的融合,系统的功能 复合化程度越来越高;对系统设计方法学和工具的要求更高;系统设计日趋软 件硬化、硬件软化,并使两者得到了有机的融合,形成了更为强大的 ESDA( Electronic System Design Automation ) 。 VHDL(Very High Speed Integrated Circuit Hardware Description Language)是 IEEE(Institute of Electrical and Electronics Engineers)标准的硬件描述语言,是现代电子系统设计的首选硬件设计计算机 语言。本篇介绍 VHDL 的语法基础、用 VHDL 进行系统设计的基本方法、以及 VHDL 的设计实例等。 从宏观的角度看,VHDL 的语法构成了程序的各组成部分;微观上看 VHDL 的语法是各种语句的运用细节。本章在 VHDL 的特性之后,从这两个角度简要介 绍 VHDL 的语法基础。 硬件描述语言 HDL(Hardware Description Language)诞生于 1962 年。 HDL 是用形式化的方法描述数字电路和设计数字逻辑系统的语言。主要用于描 述离散电子系统的结构和行为。与 SDL(Software Description Language)相 似,经历了从机器码(晶体管和焊接) 、汇编(网表) 、到高级语言(HDL)的过 程。 20 世纪 80 年代美国国防部开发 Very High Speed Integrated Circuit VHSIC,用于描述集成电路的结构和功能。此后,硬件描述语言向标准化方向发 5 展,1987 年成为 IEEE Standard 1076,称为 VHDL 语言。它也是美国国防部标 准(MIL-STD-454L) 。1993 年该标准增修为 IEEE1164 标准。1996 年,再次加入 电路合成的标准程序和规格,成为 IEEE1076.3 标准。 1995 年 VerilogHDL 也成为 IEEE 标准。VHDL 与 VerilogHDL 一起成为业界 主选的硬件描述语言。 一、VHDL 的特点 应用 VHDL 进行系统设计,有以下几方面的特点。 (一)功能强大 VHDL 具有功能强大的语言结构。它可以用明确的代码描述复杂的控制逻辑 设计。并且具有多层次的设计描述功能,支持设计库和可重复使用的元件生成。 VHDL 是一种设计、仿真和综合的标准硬件描述语言。 (二)可移植性 VHDL 语言是一个标准语言,其设计描述可以为不同的 EDA 工具支持。它可 以从一个仿真工具移植到另一个仿真工具,从一个综合工具移植到另一个综合 工具,从一个工作平台移植到另一个工作平台。此外,通过更换库再重新综合 很容易移植为 ASIC 设计。 (三)独立性 VHDL 的硬件描述与具体的工艺技术和硬件结构无关。设计者可以不懂硬件 的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。程序 设计的硬件目标器件有广阔的选择范围,可以是各系列的 CPLD、FPGA 及各种门 阵列器件。 (四)可操作性 由于 VHDL 具有类属描述语句和子程序调用等功能,对于已完成的设计,在 不改变源程序的条件下,只需改变端口类属参量或函数,就能轻易地改变设计 的规模和结构。 (五)灵活性 VHDL 最初是作为一种仿真标准格式出现的,有着丰富的仿真语句和库函数。 使其在任何大系统的设计中,随时可对设计进行仿真模拟。所以,即使在远离 门级的高层次(即使设计尚未完成时) ,设计者就能够对整个工程设计的结构和 功能的可行性进行查验,并做出决策。 二、VHDL 的设计步骤 采用 VHDL 的系统设计,一般有以下 6 个步骤。 (1)要求的功能模块划分; (2)VHDL 的设计描述(设计输入) ; 6 (3)代码仿真模拟(前仿真) ; (4)计综合、优化和布局布线; (5)布局布线后的仿真模拟(后仿真) ; (6)设计的实现(下载到目标器件) 。 三、VHDL 的设计简述 VHDL 描述数字电路系统设计的行为、功能、输入和输出。它在语法上与现 代编程语言相似,但包含了许多与硬件有特殊关系的结构。 VHDL 将一个设计称为一个实体 Entity(元件、电路或者系统) ,并且将它 分成外部的可见部分(实体名、连接)和内部的隐藏部分(实体算法、实现) 。 当定义了一个设计的实体之后,其他实体可以利用该实体,也可以开发一个实 体库。所以,内部和外部的概念对系统设计的 VHDL 是十分重要的。 外部的实体名或连接由实体声明 Entity 来描述。而内部的实体算法或实现 则由结构体 Architecture 来描述。结构体可以包含相连的多个进程 process 或 者组建 component 等其他并行结构。需要说明的是,它们在硬件中都是并行运 行的。 VHDL 程序设计的基本结构如下: 库、程序包 实体 Entity 结构体 Architecture、 进程 process、 组件 component 等 配置 Configuration 表 1 VHDL 程序设计的基本结构 一个实体可以对应一个或者多个结构体。结构体可以包含一个或者多个进 程或者组件。 四、VHDL 的描述风格 设计实体的逻辑功能由 VHDL 的结构体具体描述。用户可以使用不同程度的 语句类型和抽象方式来描述不同程度的设计。例如系统级的、板级的、芯片级 的或者模块级的设计。对于相同的逻辑行为可以有不同的语句表达方式。在 VHDL 结构体中这种不同的描述方式或者说建模方法,通常可归纳为行为 (Behavioral)级描述、数据流(Dataflow)级描述和结构(Structural)级 描述。 (一)行为级描述 通过一组串行的 VHDL 进程,反映设计的功能和算法,而没有直接指明或涉 7 及实现这些行为的硬件结构,包括硬件特性、连线方式和逻辑行为方式。行为 级描述主要指顺序语句描述,即通常是指含有进程的非结构化的逻辑描述。 (二)数据流级描述 将数据看成从设计的输入端流到输出端,反映从输入数据到输出数据所发 生的立即变换。数据流描述主要是指非结构化的并行语句描述;是建立在用并 行信号赋值语句描述基础上的。数据流描述方式可比较直观地表达底层逻辑行 为。 (三)结构级描述 将设计看成多个功能块的相互连接,并且主要通过功能块的组件例化来表 示。结构级描述方式采用了结构化、模块化的设计思想,适合于大型复杂性设 计。 VHDL 通过这三种描述方法或称描述风格,从不同的侧面描述结构体的行为 方式。其中,行为描述的抽象程度最高,最能体现 VHDL 描述高层次结构和系 统的能力。正是 VHDL 语言的行为描述能力使自顶向下的设计方式成为可能。 在实际应用中,为了能兼顾整个设计的功能、资源和性能几方面的因素, 通常将以上三种描述方式混合使用。 第三章 总体设计 第一节 课题的主要内容及基本要求 要求采用 EDA 技术设计一个微波炉控制器,可完成以下功能: (1)可控制烹调的开关; (2)可设置烹调时间, (假设系统最长的烹调时间为 59 分 59 秒) ; (3)可显示烹调的剩余时间。 第二节 设计思路 现代数字系统设计一般采用自顶向下的方法,其过程大致可分为三个大的 步骤:系统调研;模块的划分;模块的实现。承接一个数字系统设计的课题后, 一般不要急于动手设计,而应对课题作充分的分析和调研,然后确定初步的方 案。 分析:课题的任务、要求、原理和使用条件等。 调研:课题现状并和相同或相近课题进行比较。 现代数字系统设计一般是将其划分为控制器和受控电路两大部分,控制器 由 ASM 图或 MDS 图决定,而受控电路则使用各种通用模块实现。 下面分析微波炉定时器的工作过程及基本要求: 上电后,系统处于复位状态。工作时首先进行烹调时间设置,并使用数码 管显示时间信息,设要求最长的烹调时间为 59 分 59 秒,时间设置完毕后系统 8 自动回到初始状态;按开始烹调按键进入烹调状态,时间显示数码管按每秒减 1 的倒计时方式显示剩余烹调时间;烹调结束后,系统回到复位状态。 系统要求分析及初步方案的确定: 根据系统的基本要求,着重应考虑如下问题: (1)计时电路的设计:芯片内部产生和外部提供。本例中由外部时钟电路 以 BCD 码的形式提供。 (2)时间设置出错及工作过程的取消等情况的处理:设置一个复位按键。 (3)数码管状态的检测:设置数码管检测按键,按动该按键后,数码管能 够显示“8888”的信息。 (4)时间显示电路:采用 4 位 7 段显示数码管显示,并由芯片直接驱动。 (5)微波管的驱动:设置一个输出驱动控制烹调状态的继电器即可。 第三节 设计方案 微波炉控制器系统可由以下三个电路模块组成:状态控制电路,其功能是 控制微波炉工作过程中的状态转换,并发出相关控制信号;数据装载电路,其 功能是根据控制信号选择定时时间,测试数据或计时完成信息的载入;计时器 电路,其功能是对时钟进行减法计数,提供烹调完成时的状态信号。 微波炉控制器的系统框图如图 1 所示。其中,CLK 为时钟输入信号,时钟 上升沿敏感;RESET 为复位信号,高电平有效时系统复位清零;TEST 为数码显 示管测试信号,高电平有效系统显示 8888;SET_T 高电平有效时允许设置烹饪 时间;KEY 为定时时间输入信号,用于设置烹饪时间的长短,其高到低分别表 示时间分、秒的十位、个位;START 为烹调开始信号,高电平有效时开始烹调; 输出信号 COOK 指示微波炉状态,高电平时表示烹调进行时;SEC0 、SEC1、MIN0、MIN1 分别表示秒个位、秒十位、分个位、分十位。 9 图 1 微波炉控制器系统框图 微波炉控制器的工作流程图如图 2 所示。 接通电源 初始状态 时间设置 显示 8888 烹调 完成 SET_T TEST? START ? 时间到? N Y N Y N Y N Y 图 2 工作流程图 首先,对系统进行复位清零,使其各电路模块均处于初始状态;当烹饪时 时间输入 时钟输入 复位输入 时间设置 输入 开始按键 数码管测 试输入 分秒 信号 输 出 驱动烹调输出 显示设置时间和 烹饪时间信号 10 间设置信号 SET_T 有效时,读入时间信号 KEY30的取值,此时系统显示设 置的时间信息,再按下 SET_T 确定设置时间完成。按下开始键 START,系统进入 烹调状态,COOK 信号变为高电平,时钟计数器开始减法计数, MIN1、MIN0、SEC1、SEC0 显示剩余烹调时间。烹调结束,系统恢复初始状态。 当系统处于复位清零状态时,按下显像管测试按钮 TEST,将对显像管是否 正常工作进行测试,正常工作时,显像管输出全 8。 第四章 模块分析 第一节 状态控制电路模块 状态控制器的功能根据输入信号和自身当时所处的状态完成状态的转换和 输出相应的控制信号,其模块框图如图 3 所示。其中,输出信号 LD_DONE 指示 数据装载电路载入的烹调结束的状态信息的显示的驱动信息数据;LD_CLK 显示 数据装载电路的设置的时间数据;LD_TEST 指示数据装载电路载入的用于测试 的数据,以显示驱动信息数据;COOK 指示烹饪的状态,并提示计时器进行减法 计算;KEY 为定时时间输入信号,用于设置烹饪时间的长短,其高到低分别表 示时间分、秒的十位、个位。当 LD_DONE 有效时,输出烹调结束数据。当 LD_CLK 有效时,输出烹调的设置时间数据。当 LD_TEST 有效时,输出数码管测 试数据包括 6 个输入信号和 4 个输出信号。 11 图 3 状态控制电路模块框图 根据微波炉工作流程的描述,分析状态转换条件及输出信号,可以得到如 图 4 所示的微波炉控制器的状态转换图。 TEST/LD_TEST RESET 初 始 状 态 IDLE SET_ CLOCK LAMP_ TEST DONE_ MSG TIMER START USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY controllor IS PORT( RESET:IN STD_LOGIC; -复位信号 KEY: IN STD_LOGIC_VECTOR(3 DOWNTO 0);-输入时间 SET_T:IN STD_LOGIC;-时间设置信号 START:IN STD_LOGIC;-开始烹调信号 TEST:IN STD_LOGIC;-显示电路测试信号 CLK:IN STD_LOGIC; -时钟脉冲 DONE:IN STD_LOGIC;-完成信号 COOK:OUT STD_LOGIC;-指示烹调状态,提示计时器开始计数 LD_TEST:OUT STD_LOGIC; -指示数据装载电路载入的用于测试的数据 LD_CLK:OUT STD_LOGIC; -指示数据装载电路载入设置时间数据 DATA:OUT STD_LOGIC_VECTOR(15 DOWNTO 0);-16 位数据 LED_SET_T:OUT STD_LOGIC; -LED 显示状态 LD_DONE:OUT STD_LOGIC -LED 显示完成 ); END controllor; ARCHITECTURE rtl OF controllor IS TYPE STATES IS(IDLE,LAMP_TEST,SET_CLOCK,TIMER,DONE_MSG); SIGNAL NXT,CUR:STATES; -2 个信号:下一状态、当前状态 SIGNAL DATATMP:STD_LOGIC_VECTOR(15 DOWNTO 0); SIGNAL SET_T0: STD_LOGIC; -设置时间信号 BEGIN PROCESS(CLK,RESET) -时钟和复位的进程 BEGIN IF RESET=1 THEN -复位时将 IDLE(显示 0000)赋予当前状态 22 CUR 0); ELSE IF KEY(3)EVENT AND KEY(3) = 1 THEN -设置分的十位 IF DATATMP(15 DOWNTO 12) = “0101“ THEN -5 自动跳转到 0 DATATMP(15 DOWNTO 12) -译码器显示测试状态 LD_TEST -烹调时间测试状态 LD_CLK -完成信息显示状态 LD_DONE -初始状态定义 IF TEST=1 THEN NXT IF DONE=1 THEN -设置计时完成 NXTNULL; END CASE; END PROCESS; END rtl; - -数据装载电路的 VHDL 实现如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY loader IS 25 PORT( DATAIN:IN STD_LOGIC_VECTOR(15 DOWNTO 0); -输入 16 位数据 LD_TEST:IN STD_LOGIC; LD_CLK:IN STD_LOGIC; LD_DONE:IN STD_LOGIC; DATAOUT:OUT STD_LOGIC_VECTOR(15 DOWNTO 0); -输出 16 位数据 LOAD:OUT STD_LOGIC -选择状态 ); END loader; ARCHITECTURE rtl OF loader IS BEGIN PROCESS(DATAIN,LD_TEST,LD_CLK,LD_DONE) CONSTANT ALLS:STD_LOGIC_VECTOR(15 DOWNTO 0)-测试信息 :=“1000100010001000“; -显示 8888 CONSTANT DONE:STD_LOGIC_VECTOR(15 DOWNTO 0)-烹调完成信息 :=“1010101111001101“; VARIABLE TEMP:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN LOAD-测试 DATAOUT-烹调完成 DATAOUT DATAOUTNULL; END CASE; END PROCESS; END rtl; - -十进制计数器 26 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY cnt10 IS PORT( CLK:IN STD_LOGIC; LOAD,CLR:IN STD_LOGIC; -CLR:清除数据 EN:IN STD_LOGIC; -信号使能 DATAIN:IN STD_LOGIC_VECTOR(3 DOWNTO 0); -输入的 4 位数据 Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -输出的 4 位数据 CARRY_OUT:OUT STD_LOGIC -数据装载 ); END cnt10; ARCHITECTURE rtl OF cnt10 IS SIGNAL TMP:STD_LOGIC_VECTOR(3 DOWNTO 0); -链接输入输出 BEGIN -数据的信号 PROCESS(CLK,LOAD,CLR,EN) BEGIN IF CLR = 1 THEN -当 CLR 高电平,数据变为 0000 TMP= “0000“; ELSIF LOAD=1THEN -否则装载输入的数据 TMP=DATAIN; ELSIF CLKEVENT AND CLK=0THEN -上升沿时,执行 10 进制减法 IF EN=1THEN IF TMP=“0000“THEN -0 跳转到 9 TMP=“1001“; ELSE -自动减 1 TMP=TMP-1; END IF; END IF; END IF; 27 IF TMP=“0000“THEN CARRY_OUT=1; -COOK=CARRY_OUT ELSE CARRY_OUT=0; END IF; END PROCESS; Q=TMP; END rtl; - -六进制减法计数器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY cnt6 IS PORT( CLK:IN STD_LOGIC; LOAD,CLR:IN STD_LOGIC; EN:IN STD_LOGIC; DATAIN:IN STD_LOGIC_VECTOR(3 DOWNTO 0); Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CARRY_OUT:OUT STD_LOGIC ); END cnt6; ARCHITECTURE rtl OF cnt6 IS SIGNAL TMP:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS(CLK,LOAD,CLR,EN) BEGIN IF CLR = 1 THEN TMP= “0000“; ELSIF LOAD=1 THEN TMP=DATAIN; 28 ELSIF CLKEVENT AND CLK=0THEN -上升沿时进行 6 进制减法 IF EN=1THEN IF TMP=“0000“THEN -0 自动跳转到 5 TMP=“0101“; ELSE TMP=TMP-1; -否则自动减 1 END IF; END IF; END IF; IF TMP=“0000“THEN CARRY_OUT=1; -赋值给 COOK ELSE CARRY_OUT=0; END IF; END PROCESS; Q=TMP; END rtl; - -计时电路的 VHDL 实现如下: -计数器电路模块设计 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY counter IS PORT( COOK:IN STD_LOGIC; LOAD,CLR:IN STD_LOGIC; CLK:IN STD_LOGIC; DATA:IN STD_LOGIC_VECTOR(15 DOWNTO 0); SEC0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -秒个位 SEC1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -秒十位 MIN0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -分个位 MIN1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -分十位 29 DONE:OUT STD_LOGIC -完成 ); END counter; ARCHITECTURE rtl OF counter IS -定义十进制和六进制计数器电路模块 COMPONENT cnt10 IS PORT( CLK:IN STD_LOGIC; LOAD,CLR:IN STD_LOGIC; EN:IN STD_LOGIC; DATAIN:IN STD_LOGIC_VECTOR(3 DOWNTO 0); -输入 Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -输出 CARRY_OUT:OUT STD_LOGIC -状态 ); END COMPONENT cnt10; COMPONENT cnt6 IS PORT( CLK:IN STD_LOGIC; LOAD,CLR:IN STD_LOGIC; EN:IN STD_LOGIC; DATAIN:IN STD_LOGIC_VECTOR(3 DOWNTO 0); Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CARRY_OUT:OUT STD_LOGIC ); END COMPONENT cnt6; SIGNAL CLK0:STD_LOGIC; SIGNAL S0:STD_LOGIC; SIGNAL S1:STD_LOGIC; SIGNAL S2:STD_LOGIC; SIGNAL S3:STD_LOGIC; BEGIN -元件例化 30 CLK0 = NOT CLK; U1:cnt10 PORT MAP(CLK0,LOAD,CLR,COOK,DATA(3 DOWNTO 0),SEC0,S0); U2:cnt6 PORT MAP(S0,LOAD,CLR,COOK,DATA(7 DOWNTO 4),SEC1,S1); U3:cnt10 PORT MAP(S1,LOAD,CLR,COOK,DATA(11 DOWNTO 8),MIN0,S2); U4:cnt6 PORT MAP(S2,LOAD,CLR,COOK,DATA(15 DOWNTO 12),MIN1,S3); DONE=S0 AND S1 AND S2 AND S3; END rtl; - -顶层模块的 VHDL 实现如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY top IS PORT( KEY: IN STD_LOGIC_VECTOR(3 DOWNTO 0); -输入 4 位 16 进制 RESET:IN STD_LOGIC; -复位键 SET_T:IN STD_LOGIC; -设置时间 START:IN STD_LOGIC; -开始计时 TEST:IN STD_LOGIC; -测试模式 CLK :IN STD_LOGIC; -输入脉冲 COOK:OUT STD_LOGIC; -烹调状态 LED2:OUT STD_LOGIC_VECTOR(1 DOWNTO 0); -LED 显示状态 SEC0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); SEC1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); MIN0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); MIN1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ); END top; ARCHITECTURE rtl OF top IS -定义状态控制电路模块 COMPONENT controllor IS PORT( RESET:IN STD_LOGIC; KEY: IN STD_LOGIC_VECTOR(3 DOWNTO 0); 31 SET_T:IN STD_LOGIC; START:IN STD_LOGIC; TEST:IN STD_LOGIC; CLK :IN STD_LOGIC; DONE:IN STD_LOGIC; COOK:OUT STD_LOGIC; LD_TEST:OUT STD_LOGIC; LD_CLK:OUT STD_LOGIC; DATA:OUT STD_LOGIC_VECTOR(15 DOWNTO 0); LED_SET_T:OUT STD_LOGIC; LD_DONE:OUT STD_LOGIC ); END COMPONENT controllor; -定义数据装载电路模块 COMPONENT loader IS PORT( DATAIN:IN STD_LOGIC_VECTOR(15 DOWNTO 0); LD_TEST:IN STD_LOGIC; LD_CLK:IN STD_LOGIC; LD_DONE:IN STD_LOGIC; DATAOUT:OUT STD_LOGIC_VECTOR(15 DOWNTO 0); LOAD:OUT STD_LOGIC); END COMPONENT loader; -定义计时电路模块 COMPONENT counter IS PORT( COOK:IN STD_LOGIC; LOAD,CLR:STD_LOGIC; CLK:IN STD_LOGIC; DATA:IN STD_LOGIC_VECTOR(15 DOWNTO 0); SEC0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); SEC1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); MIN0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); 32 MIN1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); DONE:OUT STD_LOGIC ); END COMPONENT counter; SIGNAL COOK_TMP:STD_LOGIC; SIGNAL TEST_TMP:STD_LOGIC; SIGNAL CLK_TMP:STD_LOGIC; SIGNAL DONE_TMP:STD_LOGIC; SIGNAL LOAD_TMP:STD_LOGIC; SIGNAL DONE:STD_LOGIC; SIGNAL DATA_TMP,DATA_TMP1:STD_LOGIC_VECTOR(15 DOWNTO 0); BEGIN COOK=COOK_TMP; LED2(0)=COOK_TMP; -电路模块例化 U1:controllor PORT MAP(RESET,KEY,SET_T,START,TEST,CLK,DONE,COOK_TMP, TEST_TMP,CLK_TMP,DATA_TMP1,LED2(1),DONE_TMP); U2:loader PORT MAP(DATA_TMP1,TEST_TMP,CLK_TMP,DONE_TMP,DATA_TMP, LOAD_TMP); U3:counter PORT MAP(COOK_TMP,LOAD_TMP,RESET,CLK,DATA_TMP,SEC0,SEC1,MIN0, MIN1,DONE); END rtl; 14 大学本科生毕业设计(论文)撰写规范 本科生毕业设计(论文)是学生在毕业前提交的一份具有一定研究价值和实用 价值的学术资料。它既是本科学生开始从事工程设计、科学实验和科学研究的初步 尝试,也是学生在教师的指导下,对所进行研究的适当表述,还是学生毕业及学位 资格认定的重要依据。毕业论文撰写是本科生培养过程中的基本训练环节之一,应 符合国家及各专业部门制定的有关标准,符合汉语语法规范。指导教师应加强指导, 严格把关。 1、论文结构及要求 论文包括题目、中文摘要、外文摘要、目录、正文、参考文献、致谢和附录等 几部分。 1.1 题目 论文题目应恰当、准确地反映论文的主要研究内容。不应超过 25 字,原则上 不得使用标点符号,不设副标题。 1.2 摘要与关键词 1.2.1 摘要 本科生毕业设计(论文)的摘要均要求用中、英两种文字给出,中文在前。 摘要应扼要叙述论文的研究目的、研究方法、研究内容和主要结果或结论,文 字要精炼,具有一定的独立性和完整性,摘要一般应在 300 字左右。摘要中不宜使 用公式、图表,不标注引用文献编号,避免将摘要写成目录式的内容介绍。 1.2.2 关键词 关键词是供检索用的主题词条,应采用能覆盖论文主要内容的通用技术词条 (参照相应的技术术语标准) ,一般列 35 个,按词条的外延层次从大到小排列, 应在摘要中出现。 1.3 目录 目录应独立成页,包括论文中全部章、节的标题及页码。 15 1.4 论文正文 论文正文包括绪论、论文主体及结论等部分。 1.4.1 绪论 绪论一般作为论文的首篇。绪论应说明选题的背景、目的和意义,国内外文献 综述以及论文所要研究的主要内容。 文管类论文的绪论是毕业论文的开头部分,一般包括说明论文写作的目的与意 义,对所研究问题的认识以及提出问题。绪论只是文章的开头,不必写章号。 毕业设计(论文)绪论部分字数不多于全部论文字数的 1/4。 1.4.2 论文主体 论文主体是论文的主要部分,要求结构合理,层次清楚,重点突出,文字简练、通顺。 论文主体的内容要求参照大学本科生毕业设计(论文)的规定第五章。 论文主体各章后应有一节“本章小结” 。 1.4.3 结论 结论作为单独一章排列,但不加章号。 结论是对整个论文主要成果的归纳,要突出设计(论文)的创新点,以简练的 文字对论文的主要工作进行评价,一般为 4001 000 字。 1.5 参考文献 参考文献是论文不可缺少的组成部分,它反映了论文的取材来源和广博程度。 论文中要注重引用近期发表的与论文工作直接有关的学术期刊类文献。对理工类论 文,参考文献数量一般应在 15 篇以上,其中学术期刊类文献不少于 8 篇,外文文 献不少于 3 篇;对文科类、管理类论文,参考文献数量一般为 1020 篇,其中学 术期刊类文献不少于 8 篇,外文文献不少于 3 篇。 在论文正文中必须有参考文献的编号,参考文献的序号应按在正文中出现的顺 序排列。 产品说明书、各类标准、各种报纸上刊登的文章及未公开发表的研究报告(著 名的内部报告如 PB、AD 报告及著名大公司的企业技术报告等除外)不宜做为参考 文献引用。但对于工程设计类论文,各种标准、规范和手册可作为参考文献。 引用网上参考文献时,应注明该文献的准确网页地址,网上参考文献不包含在 上述规定的文献数量之内。 16 1.6 致谢 对导师和给予指导或协助完成论文工作的组织和个人表示感谢。内容应简洁明 了、实事求是,避免俗套。 1.7 附录 如开题报告、文献综述、外文译文及外文文献复印件、公式的推导、程序流程图、图 纸、数据表格等有些不宜放在正文中,但有参考价值的内容可编入论文的附录中。 1 2、论文书写规定 2.1 论文正文字数 理工类 论文正文字数不少于 20 000 字。 文管类 论文正文字数 12 00020 000 字。其中汉语言文学专业不少于 7 000 字。 外语类 论文正文字数 8 00010 000 个外文单词。 艺术类 论文正文字数 3 0005 000 字。 2.2 论文书写 本科生毕业论文用 B5 纸计算机排版、编辑与双面打印输出。 论文版面设置为:毕业论文 B5 纸、纵向、为横排、不分栏,上下页边距分别为 2.5cm 和 2cm,左右页边距分别为 2.4cm 和 2cm,对称页边距、左侧装订并装订线为 0cm、奇偶 页不同、无网格。论文正文满页为 29 行,每行 33 个字,字号为小四号宋体,每页版面字 数为 957 个,行间距为固定值 20 磅。 页眉。页眉应居中置于页面上部。单数页眉的文字为“章及标题” ;双数页眉的文字为 “大学本科生毕业设计(论文) ” 。页眉的文字用五号宋体,页眉文字下面为 2 条横线(两 条横线的长度与版芯尺寸相同,线粗 0.5 磅) 。页眉、页脚边距分别为 1.8cm 和 1.7cm。 页码。页码用小五号字,居中标于页面底部。摘要、目录等文前部分的页码用罗马数 字单独编排,正文以后的页码用阿拉伯数字编排。 2.3 摘要 中文摘要一般为 300 字左右,外文摘要应与中文摘要内容相同,在语法、用词和书写 上应正确无误,摘要页勿需写出论文题目。中、外文摘要应各占一页,编排装订时放置正 文前,并且中文在前,外文在后。 2.4 目录 目录应包括论文中全部章节的标题及页码,含中、外文摘要;正文章、节题目; 参考文献;致谢;附录。 正文章、节题目(理工类要求编写到第 3 级标题,即.。文科、管理类可视论 文需要进行,编写到 23 级标题。 ) 2.5 论文正文 2.5.1 章节及各章标题 论文正文分章、节撰写,每章应另起一页。 各章标题要突出重点、简明扼要。字数一般在 15 字以内,不得使用标点符号。标题中 尽量不用英文缩写词,对必须采用者,应使用本行业的通用缩写词。 2 2.5.2 层次 层次以少为宜,根据实际需要选择。层次代号格式见表 1 和表 2。 表 1 理工类论文层次代号及说明 层次名称示 例说 明 章第 1 章 章序及章名居中排,章 序用阿拉伯数字 节1.1 条 1.1.1 题序顶格书写,与标 题间空 1 字,下面阐 述内容另起一段 款 1.1.1.1 题序顶格书写,与标题 间空 1 字,下面阐述内 容在标题后空 1 字接排 项 (1) 题序空2 字书写,以下 内容接排,有标题者, 阐述内容在标题后空1 字 版心左边线 版心右边线 表 2 文管类论文层次代号及说明 章 节 条 款 项 一、 (一) 1. (1) 居中书写 空 2 字书写 空 2 字书写 空 2 字书写 空 2 字书写 版心左边线 版心右边线 各层次题序及标题不得置于页面的最后一行(孤行) 。 2.6 参考文献 正文中引用文献标示应置于所引内容最末句的右上角,用小五号字体。所引文献编号 用阿拉伯数字置于方括号“ ”中,如“二次铣削1” 。当提及的参考文献为文中直接说 明时,其序号应该与正文排齐,如“由文献8,1014可知” 。 经济、管理类论文引用文献,若引用的是原话,要加引号,一般写在段中;若引的不 是原文只是原意,文前只需用冒号或逗号,而不用引号。在参考文献之外,若有注释的话, 建议采用夹注,即紧接文句,用圆括号标明。 不得将引用文献标示置于各级标题处。 3 参考文献书写格式应符合 GB77141987文后参考文献著录规则 。常用参考文献编 写项目和顺序应按文中引用先后次序规定如下: 著作图书文献 序号作者书名(版次) 出版地:出版者,出版年:引用部分起止页 第一版应省略 翻译图书文献 序号作者书名(版次) 译者出版地: 出版者,出版年:引用部分起止页 第一版应省略 学术刊物文献 序号作者文章名学术刊物名年,卷(期):引用部分起止页 学术会议文献 序号作者文章名编者名会议名称,会议地址,年份出版地,出版者, 出版年:引用部分起止页 学位论文类参考文献 序号研究生名学位论文题目出版地学校(或研究单位)及学位论文级别答 辩年份:引用部分起止页 西文文献中第一个词和每个实词的第一个字母大写,余者小写;俄文文献名第一个词 和专有名词的第一个字母大写,余者小写;日文文献中的汉字须用日文汉字,不得用中文 汉字、简化汉字代替。文献中的外文字母一律用正体。 作者为多人时,一般只列出前 3 名作者,不同作者姓名间用逗号相隔。外文姓名按国 际惯例,将作者名的缩写置前,作者姓置后。 学术会议若出版论文集者,可在会议名称后加上“论文集”字样。未出版论文集者省 去“出版者” 、 “出版年”两项。会议地址与出版地相同者省略“出版地” 。会议年份与出版 年相同者省略“

温馨提示

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

评论

0/150

提交评论