毕业论文基于verilog_hdl洗衣机程序说明书

合集下载

基于Verilog HDL的FPGA程序(智能洗衣机)

基于Verilog HDL的FPGA程序(智能洗衣机)

华中科技大学电子线路课程设计题目:智能洗衣机院系:控制科学与工程系班级:自动化100X班姓名:联系方式:fanjunchao1991@指导老师:目录一题目分析。

1二系统流程图.。

2三主要模块介绍.。

5四各按键功能.。

6 五仿真波形.。

7 六实验总结。

8 七附录。

9一:题目分析本次课程设计要求以Verilog HDL硬件描述语言为基础,以DE2开发板为工具,编写智能洗衣机的模拟程序。

首先,我在熟悉题目要求的前提下,将题目要求划分为以下几个小的项目,每个项目尽量用单独的模块实现其功能:①洗衣过程的转换:控制洗衣过程在每个过程对应的状态机之间转换,用control.v模块实现。

②洗衣时间的显示:通过直接调用上学期编写的24小时智能时钟程序的计时模块,并用总时间减去已用时间得到剩余时间,用led_show.v实现。

本程序的特色:①led灯表示水位:通过一定的算法,实现用led灯的亮灭表示水位。

Led依次点亮表示注水过程,相反,表示排水和甩干过程。

②1602 LCD液晶屏:用LCD显示所有操作步骤和过程,包括选择模式,当前洗衣模式和状态,洗衣完毕等。

这些过程都是用LCD液晶屏具体显示。

③按键使用和去抖:因为要使用按键进行模式的选择,所以我用软件去抖的方式实现按键按动时的去抖。

④暂停键模拟断电保护:设计了一个暂停键,模拟真实情况中的断电保护。

当暂停时模拟现实中的断电;暂停结束模拟现实中的重新上电,程序从断点继续运行。

二:系统流程图MODE 1 OR MODE 2 OR MODE 3:MODE 4MODE 5流程图说明:第一个为总的控制系统的流程图,后面三个为总流程图中,每种模式的详细流程图。

三:主要模块介绍module my_start:顶层模块,调用下层模块。

module HZ_1:分频模块,通过10分频和5分频将50Mhz分频成为1hz。

module control:控制模块,控制洗衣模式状态机的转换。

洗衣机Word版

洗衣机Word版

实验四全自动洗衣机控制器一、实验目的1.学习掌握全自动洗衣机的控制原理。

2.掌握基于有限状态机的控制电路设计方法。

二、预习要求1.预习全自动洗衣机的控制原理和基于有限状态机的控制电路的设计方法。

2.画出洗衣机控制器包括不同洗衣模式的完整的状态转移图。

3.用Verilog HDL 语言编程实现全自动洗衣机控制器,并进行时序仿真。

4.对顶层设计文件进行引脚锁定。

三、实验要求1.设计一个全自动洗衣机控制器电路,实现对洗衣机的全自动控制。

根据全自动洗衣机的控制原理设计一个控制电路,使之能够控制全自动洗衣机完成整个工作过程。

洗衣机工作过程分为两种情况:(1)全部自动完成当按下复位按钮时,洗衣机上电,控制电路复位到初始状态(默认水位为“中”;使用)者可根据衣服的多少,按下水位控制按钮,改变水位设置,以控制上水时加水的多少;当按下启动/暂停按钮时,洗衣机开始洗衣的第一个操作:进水阀门打开,开始上水,并根据水位设置(高、中、低、少)历时不同的时间timeadd(8s、7s、6s、5s);然后进水阀门关闭,电机开始运转,开始洗衣过程,并历时9s;然后电机停止运转,排水阀门打开,开始排水,并根据水位设置(高、中、低、少)历时不同的时间timedrain(7s、6s、5s、4s);然后排水阀门关闭,进水阀门打开,开始第二次上水,并历时timeadd……当甩干结束后,整个洗衣过程完成,扬声器发出持续15 秒的急促的“嘀嘀”音,提示用户洗衣结束。

正常运行状态下全自动洗衣机工作过程如图 1. 1所示。

注意:在甩干过程中,电机一边高速旋转,一边排水。

空闲(idle)→第一次加水(water1)7s→洗衣(wash)9s→第一次排水(drain1)6s→第二次加水(water2)7s→漂洗(rinse)9s→第二次排水(drain2)6s→甩干(dry)5s→蜂鸣15s从图中可以看出,洗衣机整个工作过程可分为9 个状态,要求运用有限状态机的设计思想来实现。

《VerilogHDL程序设计》课程教学方法研究

《VerilogHDL程序设计》课程教学方法研究

硬 件 描 述 语 言( H D L ,h a r d w a r e d e s c r i p t i o n l a n g u age) 是一种用形式化方法来描述数字电路和系统的 语言, 数字电 路系统的设 计 者 利用这 种 语言可以 从 上层到 下层 (从 抽 象 到具体) 逐步描述自己的设 计思 想, 用一系列 分层 次 的 模 块 来 表 示 极其复杂的 数字系统。 采用 Ve r i lo g H DL设 计方法比 采用电 路图输入的方法更有优 越性, 这就 是为 什么美国等国家 在 进 入 2 0 世 纪 9 0 年代 以 后 纷 纷 采用 HDL设计方法的原因。 Ver i log HDL适用于复杂数字逻辑 电 路和系统 的总体仿真、 子系统 仿真 和 具体电 路 综 合等各 个设计阶段。 Ver i log HDL 不但作为学习HDL设计方法 的入门和基础是比较合 适的, 而且对于ASIC设计 专业人员 而言, 也是必须掌 握的基本 技 术。 《 Ve r i lo g H DL 程 序设 计》 课程是大学里的电子和计算机工程系的重要课程, 本课 程的目标是学习掌 握Ver i log HDL建模、 仿真、 综合、 重用 和验 证技术, 为以后学习高级的行为综合、 物理综合、 IP设 计和复杂系统设计和验证打下坚实的基础。
学习这门课程的积极性。 1.3 课程内容多课时少 随 着社会 快 速 发 展, 不同领 域 专业 需 要 学习的 东 西 不 断增加和更新。 这样导致每门课程的课时不断减少。 而对于 《 Ver i log HDL程 序设计》 课程, 本身时实践性较强的课 程, 但 是由于内容 较多, 为了完成 理论 课 时 讲解, 分配 给实 践的课程就少了。 这就会导致理论不能及时与实践相结合, 新学的知识无法消化应用, 不能真正掌 握。 1.4 课程实验内容及环境单一 该 课 程 时实 践 性较强的 课 程, 必须 通 过大 量的实践 才 能 掌 握 这门课 程的设 计技 术及设 计方法。 目前关于本课 程 的实验内容 都 是 一 些 验 证 性实验, 按照实验书上的罗列步 骤 进 行 实 验 以 对 所 学 知 识 点 进 行 验 证。 而设 计 性实验较 少, 学生无法真正学会知 识点的应用。 但学生学习这门课程 的关 键 是 会应 用所 学知 识设 计出数字逻 辑电 路及系统。 同 时由于学校费用问题, 实验环境包括EDA工具、 计算机等不 能 随 着集成电 路的发展 和工艺的快 速 发展而及 时更新, 限 制了学生学习新的知识步伐。 针对以上存在的问题, 本文对 《Verilog HDL程序设计》 课程教学方法进行研究, 激发学生学习该课程的主动性, 培养 社会需要的Verilog HDL数字电路及系统设计人才。

基于Verilog HDL的有限状态机的优化设计

基于Verilog HDL的有限状态机的优化设计
态和下一状态 ;
第二个进程组合逻辑 a as l y 模块的设计和二段式 的 w 设计相似 , 但是其只进行输入判断和状态转移规律描述 , 而不进行组合逻辑输出 ; 第三个进程也设计成 同步时序 a as l y 模块 ,采用同 w
步时序逻辑寄存 F M 的输出。 S
4三种状态机的逻辑、 电路 、 仿真分析
mp _t a e — ” jgi u uc O 一 / jg u— i s em r i / p / p t v. ” O” p/ t g r m n _ S m o


图 1 频 采集 图像 0视
图 8内核启动前加载摄 像头驱 动信息
不管你在何时插入 , 以上信息之一都表明 , 出现 摄像
头驱动加载成功 。驱动加载成功后 同时会在 /e dv目录下 产生一个 v eO i o 的设备节点 。 l命令可 以查看 , 图 9 d 用 s 如
所示 。

检验所设计 的 F M 的完备性 ,如果所设 计 的 F M不完 S S 备, 则会进入任意状态 , 仿真时很容易发现。
33三段式(h e — l y ) - T re awa s状态机 三段式状态机的设计 即使用三个进程对状态机进行 描述。第一个 a as l y 模块使用 同步时序描述状态之间的 w 转移 ; 第二个 a as l y 模块使用组合逻辑判 断状 态转移条 w 件, 描述状态转移规律 ; 第三个 a as l y 模块采用同步时序 w
成了远程视频数据 的采集 ,为整个 网络智能家居监控 系
统的实现打下了基础 。
摄像头被驱动后 ,需要编写一个对视频流采集 的应
用程序。 系统 中采用的是 m pg s em, 本 je—t a 这是一个视频 r 流服务器 , 里面有对整个视频采集及处理发送 的过程 。 首 先要 将其移植 到 目标板 上 , 也就 是 ¥ C 4 0平 台 , 3 24 并在 目标板上运行此视频流服务器 , 命令如下 :

VerilogHDL语法基础

VerilogHDL语法基础

VerilogHDL语法基础⼀个复杂电路的完整Verilog HDL模型是由若个Verilog HDL 模块构成的,每⼀个模块⼜可以由若⼲个⼦模块构成。

利⽤Verilog HDL语⾔结构所提供的这种功能就可以构造⼀个模块间的清晰层次结构来描述极其复杂的⼤型设计。

每个模块的内容都是嵌在module和endmodule两个语句之间,每个模块实现特定的功能,模块是可以进⾏层次嵌套的。

每个模块⾸先要进⾏端⼝定义.并说明输⼊(input)和输出(output),然后对模块的功能进⾏逻辑描述。

Verilog HDL程序的书写格式⾃由,⼀⾏可以写⼏个语句,⼀个语句也可以分多⾏写。

除了endmodule语句外,每个语句的最后必须有分号。

⼀个模块是由两部分组成的,⼀部分描述接⼝;另⼀部分描述逻辑功能,即定义输⼊是如何影响输出的。

模块(block)的组成Verilog HDL结构完全嵌在module和endmodule声明语句之间,每个Verilog程序包括4个主要部分:端⼝定义,I/O说明,信号类型声明和功能描述。

module<模块名>(<端⼝列表>);端⼝说明(input,output,inout)参数定义(可选)数据类型定义连续赋值语句(assign)过程块(initial 和 always)⾏为描述语句低层模块实例任务和函数延时说明块endmodule模块声明模块声明包括模块名和端⼝列表。

其格式如下:module 模块名(端⼝1,端⼝2,端⼝3,…);模块结束的标志为关键字:endmodule。

端⼝定义input(输⼊端⼝),output(输出端⼝)和inout(双向端⼝)。

格式如下:input 端⼝名1,端⼝名2,………,端⼝名N; //输⼊端⼝output 端⼝名1,端⼝名2,………,端⼝名N; //输出端⼝inout 端⼝名1,端⼝名2,………,端⼝名N; //输⼊输出端⼝也可以写在端⼝声明语句⾥,其格式如下(为了代码的可读性,⼀般不这么写):module module_name(input port1,input port2,…output port1,output port2… );信号类型说明信号可以分为端⼝信号和内部信号;1. 所有信号都必须进⾏数据类型的定义,如寄存器类型(reg等),连线类型(wire等);2. 如果信号没有定义数据类型,则综合器将其默认为wire型;3. 端⼝的位宽最好定义在端⼝定义中,不要放在数据类型定义中;4. 不能将input和inout类型声明为reg型;模块的端⼝表⽰的是模块的输⼊和输出⼝名,也就是说,它与别的模块联系端⼝的标识。

基于Verilog—HDL描述的多用途步进电机控制芯片的设计

基于Verilog—HDL描述的多用途步进电机控制芯片的设计

常 用 的步 进 电机 控 制 系统 , 用 微 机 控制 , 软 件 采 用 实 现 其 步 进 脉 冲 的 产 生 。这 种 方 法 程 序 量 大 , 用 占 C U 时 间 较 多 , 制 了步 进 电机 速 度 的 进 一 步 提 高 , P 限 而且 软 件方 式 的抗 干 扰 性 能较 差 , E 在 MI 严 重 的 场 较
设 计 方法 。
IP(n s se P o rmmig 技 术 是 由 L ti S I —y tm r ga n) at e c
半 导 体 公 司 首先 提 出 的 一 种 新 技 术 , 以大 规 模 可 编 它 程逻 辑 器 件 为 核 心 , 具有 对 电 子 器 件 、 电路 板 、 至 整 甚
a m o e. Th s uton a pt d s ve a s p r f d mo nd d e ol i do e e r l e e a e dul s Suc s r t e ha pe f c e. h t uc ur d re t e e xt ndi iiy,a d pr i e r c i a b lt n ov d d a p a tc lway ofl ow o ts e c s t ppe o or c t ols t m . rm t on r ys e
【 摘 要】 介 绍 了一 种基 于 Vei g HDL描 述 的 多功 能 步进 电机 控 制 芯 片 的 可 综 合 方 案 , ro — l
该 方案 可 方便 地 构成 两相 双极 或 四相 单 极 步进 电机 的控 制 系统 。 外接 元 件极 少 , 需给 定 时钟 、 只 转
明 , 码 效率 高 , 支 持模 拟 仿 真 。用 它 描 述 的步 进 电 代 并

基于FPGA的洗衣机控制器设计

基于FPGA的洗衣机控制器设计

课题:基于FPGA的洗衣机控制器前言一、洗衣机控制器主要内容l.任务要求和内容设计制作一个洗衣机的正反转定时控制线路。

1)控制洗衣机的电机作如下运转定时开始――正转10S――暂停5S――反转10S――暂停5S――定时到停止定时未到2)用2位七段数码管显示定时时间(S)。

2.洗衣机控制器的使用步骤:(1)电路上电后,在Start拨码开关未闭合前可以由UpKey和DownKey按键开关“+”“-”设置总的工作时间,确定洗衣机控制器工作允许时间。

(2)设定好允许工作时间后,闭合Start开关,洗衣机控制器开始工作。

(3)可以看见指示正转LED灯亮10s,停转LED灯亮5S,反转LED灯亮10s,停转LED亮5s,如此反复直至工作允许时间为0,蜂鸣器发出警报。

二、设计原理简介洗衣机控制器的设计主要是时序控制和定时器的设计,由一片FPGA和外围电路构成电器控制部分。

FPGA接收键盘的控制命令,控制洗衣机的正转、反转、停机和定时时间为0报警的工作状态、控制并显示工作状态以及显示定时时间。

对FPGA芯片的编程采用模块化的Verilog HDL (硬件描述语言)进行设计,设计由分频模块,按键消抖模块,定时时间自减模块,时序中心控制模块,数码管显示模块组成,顶层实现整个芯片的功能。

顶层使用原理图实现,底层由Verilog HDL语句实现。

FPGA的输入时钟为20M hz,因此使用了分频模块输出1hz的方波给定时器设定自减模块提供每1s自减1的信号,定时器模块输出的自减值输入给数码管显示译码模块和时序控制模块,通过译码模块定时器的值可以在数码管上显示,同时定时器的值输入到时序控制模块由此可以控制洗衣机的正转、反转、停机和报警工作方式。

通过按键消抖模块可以准确无抖动的设定定时器的工作时间。

目录一、前言 (2)二、目录 (3)三、正文 (4)3.1洗衣机控制器的整体框图及原理 (4)3.2洗衣机控制电路单元模块设计和仿真 (5)3.2.1按键消抖模块的设计 (5)3.2.2时钟分频模块的设计 (6)3.2.3定时器设定和自减模块的设计 (7)3.2.4时序中心控制模块的设计 (8)3.2.5数码管显示译码模块的设计 (9)四、电路调试 (11)五、结束语和心得体会 (12)六、参考文献 (13)七、附录 (13)7.1 FPGA系统板部分原理图 (13)7.2 FPGA系统板PCB图 (15)三、正文3.1 洗衣机控制器的整体框图及原理:基于fpga的洗衣机控制器电路主要由五大模块组成,分别为按键消抖模块,时钟分频模块,定时器设定和自减模块,时序中心控制模块,数码管显示译码模块。

基于FPGA的设计 正文

基于FPGA的设计 正文

引言随着经济和科学技术的发展,电梯在高层建筑物的作用越来越凸出。

目前电梯主要分为机械系统与控制系统两大部份,而电梯的控制系统主要有三种控制方式分别是:继电路控制系统(“早期安装的电梯多位继电器控制系统)、基于FPGA控制系统、微机控制系统。

实现继电路控制系统方法很多,可以用标准逻辑器件、可编程序控制器PLC、单片机等方案来实现。

但是这些方法的功能修改及调试都需要硬件电路的支持,在一定程度上增加了功能修改及系统调试的困难,且该系统由于故障率高、可靠性差、控制方式不灵活以及消耗功率大等缺点,已渐渐被人民淘汰。

微机控制系统虽在智能控制方面有较强的功能,但也存在抗扰性差,系统设计复杂,一般维修人员难以掌握其维修技术等缺陷,没能广泛应用电梯中。

而基于FPGA的电梯控制系统由于可靠性高,使用维修方便,抗干扰性强,设计和调试周期较短等优点,在电梯控制中得到广泛应用,从而使电梯由传统的继电器控制方式发展为计算机控制的一个重要方向,成为当前电梯控制和技术改造的热点之一。

本文给出一个基于FPGA的6层自动升降电梯控制系统的设计方案。

它的设计是采用通俗易懂的Verilog HDL硬件描述语言使用EDA技术在Quartus II软件平台上设计完成,程序设计、编译以及时序仿真通过后再下载到开发板配合外围电路(模拟电梯的电路)来验证该系统的可行性。

这个系统分主要有6个模块,分别是键盘响应寄存处理模块、上升/下降请求寄存处理模块、电梯运行和停止处理模块、开门/关门与延时处理模块、电梯运行方向判断模块和电梯运行状态显示模块。

通过模块化设计不仅提高了程序编程错误的排查能力还提高了系统的可靠性。

1 概论1.1 电梯国内外现状1.1.1国内现状电梯作为中国对外最早的行业经过多年的发展,电梯产品无论在数量和质量都有了显著的提高,和国外产品差距越来越小。

考虑到经济性,现有国内的电梯控制系统,通常采用微机或可编程逻辑控制器对变频器进行多段速控制。

北航夏宇闻复杂数字逻辑系统的VerilogHDL设计方法简介

北航夏宇闻复杂数字逻辑系统的VerilogHDL设计方法简介
• 非实时系统:
信号处理的工作是可以事后进行。
• 实时系统:
信号处理的工作必须在规定的很短的时间内完 成。
数字信号处理系统的实现
• 非实时系统: 通用的计算机和利用通用计算机改装的设备,
主要工作量是编写 “C” 程序。
• 实时系统: 信号处理专用的微处理器为核心的设备,主 要工作量是编写汇编程序。
行步骤是否正确。 逻辑综合:把RTL级模块转换成门级 。 后仿真:用门级模型做验证,检查门的互连逻辑
其功能是否正确。 布局布线: 在门级模型的基础上加上了布线延时 布局布线后仿真:与真实的电路最接近的验证。
行为级和RTL级
module muxtwo (out, a, b, sl);
input a,b,sl;
end endmodule
Verilog HDL模块的测试
`include myadder.v module t; wire [8:0] sumout; reg [7:0] ain, bin; reg clk; myadder(.clock(clk), .reset(rst), .a(ain), .b(bin), .sum(sumout));
• 行为级:有关行为和技术指标模块,容易理 解
• RTL级:有关逻辑执行步骤的模块,较难理 解
• 门级 :有关逻辑部件互相连接的模块,很 难理解
• 开关级:有关物理形状和布局参数的模块, 非常难理解
抽象级别和综合与仿真的关系
行为仿真:行为的验证和验证模块分割的合理性 前仿真 :即 RTL级仿真,检查有关模块逻辑执
International)
有哪几种硬件描述语言? 各有什么特点?
• VHDL - 比VerilogHDL早几年成为I EEE标准; - 语法/结构比较严格,因而编写出的 模块风格比较清晰; - 比较适合由较多的设计人员合作完成 的特大型项目(一百万门以上)。

基于Verilog HDL的洗衣机控制电路设计

基于Verilog HDL的洗衣机控制电路设计

信息与电HChina Computer&Communication 秋件开茨爲惑用2021年第2期基于Verilog HDL的洗衣机控制电路设计杨凯饪王颖*(大连理工大学城市学院电子与自动化学院,辽宁大连116024)摘要:随着人们的生活水平提高,人们对洗衣机的需求越来越大,因此洗衣机的市场逐步扩大,洗衣机行业竞争也愈演愈烈。

在此背景下,本文以Verilog HDL为基础实现了以洗衣机控制电路为核心,结合所需的外围电路,共同对洗衣机的工作状态进行自由控制。

关键词:Verilog HDL;硬件描述语言;中心控制模块;洗衣机控制电路中图分类号:TN702文献标识码:A文章编号:1003-9767(2021)02-151-02Design of Washing Machine Control Circuit Based on Verilog HDLYANG Kaiyu,WANG Ying*(School of Electronics and Automation,City Institute,Dalian University of Technology,Dalian Liaoning116024,China)Abstract:With the improvement of people's living standards,people's demand for washing machines is increasing.Therefore, the market for washing machines is gradually expanding,and the competition in the washing machine industry is intensifying.In this context,this article uses Verilog HDL as the basis to realize the washing machine control circuit as the core,combined with the required peripheral circtdts,to jointly control the working state of the washing machine freely.Keywords:Verilog HDL;hardware description language;central control module;washing machine control circuit1总体设计系统包括中心控制模块、分频模块、按键去抖模块、BCD码转换电路和数码显示电路21。

智能洗衣机控制器设计Verilog编程

智能洗衣机控制器设计Verilog编程

智能洗衣机控制器设计V e r i l o g编程LELE was finally revised on the morning of December 16, 2020智能洗衣机控制器设计报告鑫鑫出品2010-3-18目录一.设计背景 (2)二.功能简介基本功能 (2)扩展功能 (3)三.模块设计及端口设置主模块main (3)工作模式设定模块mode (4)进水量设定模块Water_t (4)无供水信号产生模块waterless (5)危险信号产生模块Unsafe (5)洗衣过程控制模块wash (6)报警模块alart (7)LED灯状态模块LEDs (7)模块级连线图 (8)四.电路工作原理 (9)以s的值为主要状态标志的基本工作流程图 (10)五.Verilog源程序及注释 (11)六.小结…………………………………………………………………18一.设计背景。

如今,带有微型控制芯片的家用电器迅速普及。

通过用户简单的设定,这些智能家电能自动完成家务,并向用户及时提供反馈信息。

这极大地方便了人们的生活。

智能洗衣机是智能家电的代表。

用户只需按几个键,智能洗衣机就能自动完成注水、洗衣、排水、甩干等一系列工作,并在发生事故时给予用户报警并作出正确反应,极大减轻用户的洗衣负担,同时保障用户安全。

基于以上功能要求,本人进行了智能洗衣机控制器的设计,并作出此设计报告。

二.功能简介。

基本功能:a.可选5种洗衣模式,列举如下1>强力洗衣模式:工作程序为,注水->洗衣->排水->甩干->注水->漂洗->排水->甩干 ->注水->漂洗->排水->甩干。

其中洗衣为30分钟;2>普通洗衣模式:工作程序为,注水->洗衣->排水->甩干->注水->漂洗->排水->甩干 ->注水->漂洗->排水->甩干。

Verilog_HDL教程

Verilog_HDL教程

Verilog_HDL教程
1.简介
Verilog HDL是由美国电气和电子工程师协会(IEEE)于1984年开
发的一种硬件描述语言。

它是一种面向数据流的语言,主要用于描述数字
逻辑电路的行为和结构。

Verilog HDL可以用于设计和仿真各种数字电路,如计算机处理器、存储器、控制逻辑和通信接口等。

2.基本语法
下面是Verilog HDL的基本语法元素:
2.1模块
模块是Verilog HDL中的最基本的构建单元。

每个模块都有一个名称
和一个端口列表。

端口可以是输入或输出,也可以是双向的。

2.2数据类型
2.3信号赋值
可以使用赋值运算符(=)将值赋给变量或信号。

还可以使用阻塞或
非阻塞赋值运算符来实现顺序或并发的赋值操作。

3.设计结构
4.运算符
5.仿真和验证
总结:
本教程简要介绍了Verilog HDL的基本语法和用法。

Verilog HDL是一种被广泛应用于数字电路设计的硬件描述语言。

通过学习本教程,您将能够开始使用Verilog HDL进行数字电路的设计和验证。

基于verilog hdl的异步FIFO设计

基于verilog hdl的异步FIFO设计

基于verilog hdl的异步FIFO设计陕西理工学院毕业设计题目基于verilog hdl的异步FIFO设计学生姓名薛博阳学号 1113014175所在学院物理与电信工程学院专业班级电子1105 指导教师吴燕 __ ____ __完成地点博远楼实验室年月日第 1 页共 36 页陕西理工学院毕业设计基于Verilog HDL的异步FIFO设计与实现摘要在现代IC设计中,特别是在模块与外围芯片的通信设计中,多时钟域的情况不可避免。

当数据从一个时钟域传递到另一个域,并且目标时钟域与源时钟域不相关时,这些域中的动作是不相关的,从而消除了同步操作的可能性,并使系统重复地进入亚稳定状态,出)存储器来实现。

本文提出一种新颖的异步FIFO设计方案,它通过先比较读写地址并结合象限检测法产生异步的空/满标志,再把异步的空/满标志同步到相应的时钟域。

通过仿真验证,该方法是稳定有效的。

关键词:异步;FIFO;亚稳态;格雷码;结绳法第 2 页共 36 页造成系统时钟时序上的紊乱。

为了有效的解决这个问题,我们采用一种异步FIFO(先进先陕西理工学院毕业设计Design and accomplish asynchronousFIFO based on Verilog HDLAbstractIn modern IC design, particularly in the communications module and peripheral chip design, multiple clock domains of the inevitable. When data passes from one clock domain to another domain, and the target clock domains are not associated with the source clock domain, these domains are not related movements, thus eliminating the possibility of simultaneous operation and allows the system to enter the sub-repeat steady-state, causing disorder on the system clock timing. In order to effectively solve this problem, we use a asynchronous FIFO (FIFO) memory to achieve. This paper proposes a novel asynchronous FIFO design, which compared reading and writing through the first address and generate an asynchronous combination of quadrant detection empty / full flag, then asynchronous empty / full flag synchronized to the corresponding clock domain. The simulation results that the method is stable and effective.Key Words: asynchronous; FIFO; metastable state; Gray code; tie knots France第 3 页共 36 页陕西理工学院毕业设计目录1 引言 (6)1.1 FIFO研究意义 ........................................................6 1.2 生产需求状况 (6)1.3 存储器外发展状况 (7)1.4 FIFO设计技术简介 (9)1.4.1 基于信元的FIFO设计方法 (9)1.4.2 基于SRAM/DRAM的大容量FIFO的设计与实现 ........................ 9 1.5 异步FIFO设计中存在的问题及解决办法 .. (10)1.5.1 亚稳态 (10)1.5.2 空/满指针的解决方法 ........................................... 11 1.6 论文主要内容 ....................................................... 11 2 异步FIFO工作原理简介 . (12)2.1 关于异步信号 ....................................................... 12 2.2 异步FIFO芯片简介 .. (13)2.3 FIFO的一些重要参数 (14)2.4 异步FIFO设计的难点 (15)2.4.1 异步FIFO设计难点概述 (15)2.4.1.1 解决FIFO的满/空技术方法概述和特点 (15)2.4.1.2 亚稳态问题的产生及解决 (15)2.5 FIFO的功能简介 .....................................................16 2.6 Modelsim仿真工具简介 (16)2.6.1 主要特点 (16)2.7 Verilog HDL语言的简介 (17)2.8 HDL语言 (17)2.8.1 HDL与原理图输入法的关系 (17)2.8.2 HDL开发流程 (17)3 异步FIFO实现的技所涉及的技术及其解决方法 (18)3.1格雷码 ..............................................................18 3.2结绳法 (19)4 异步FIFO具体实现方法 ....................................................204.1 亚稳态问题的解决方案 ...............................................204.1.1 问题的产生 (20)4.1.2 常见的解决方法 (21)4.1.2.1 格雷码编码法 (21)4.1.2.2 双触发器法 .............................................. 22 4.1.2.3结绳法 (22)4.2 基于异步比较FIFO逻辑标志的产生 ....................................234.2.1 设计思想 (23)4.2.2 标志位的产生 (24)4.2.2.1 异步比较FI FO逻辑标志与时钟的同步 (24)4.2.2.2 保守的空/满标志 ......................................... 26 4.2.2.3半满、将近满、将近空的产生 (27)第 4 页共 36 页陕西理工学院毕业设计4.2.2.4 FIFO异步空/满信号的同步 (28)4.3 仿真验证和综合 .....................................................28 5 总结 (29)5.1 异步FIFO设计的总结 ................................................29 5.2 设计方法的不足之处 (29)附录一 .....................................................................30 参考文献 (35)第 5 页共 36 页感谢您的阅读,祝您生活愉快。

基于Verilog-HDL的现代数字系统设计

基于Verilog-HDL的现代数字系统设计



能够在多个层次上对所设计的系统加 以描述. 从开关级、 、 门级 寄存器卿 到功能级和系统级 , 都可以描述。设计的规模可以是任意的 , 语言不对 设计的规模施加任何 限制。并且具有混合建模能 力。 即在—个设计中各个模块可以在不同设计层次 E 建模和描述 。 基本逻辑门, 例如 ado 和 nn n 、r ad等都内置在 语言中; 开关级结构模型 , p o 和 n o 等也 例如 m s m s 被内置在语言 中, 用户可以直接调用。用户定义原 语 D 泡 建的灵活性。用户定义的原语既可 以是 P0 组合逻辑原语 , 也可以是时序逻辑原语。 V ro D 的基本设计单元是’ 抉 ( o 。 el H L ig 喂- b c l 个模块是由两部分组成的一 部分描述接口; 另一 部分描述逻辑功能 ,即定义输入是如何影响输出 的。 2 Q ats I ur I简介 u Q ats I Ahr 公 司 推 出 的 F G /P D ur 是 uI ea P AC L 的开发工具 , 其具有功能强大 , 使用灵活方便等优
i u  ̄1 m>)
in m [. = ) fu a  ̄ O ( 3
b sn  ̄ i
工具 , E A计术的发展, 随着 D 为现代数字系统 的 设 计提供了 灵活 , 快捷的途径。E A以计算机为工作 D 平台, 了 融合 应用 电子技术、 计算机技术和智能化 技术 的最新成果 而开发 出的电子 C D A 通用 软件 包 。它根据硬件描述语言( D ) H L 完成设计文件 , 自 动完成逻辑编译 、 化简、 、 、 、 分割 综合 优化 布局布线 及仿真, 直至可实现对于特定 目 标芯片的适配编译 、 逻辑映射和编程下载等工作。本文通过介绍 V e ig H L l o D 语言和 Q a u 工具来对现代数字系 ur s I t I 最后通过设计—个 交通灯控制器对现代数字系统的设计进行详细的

基于Verilog_HDL的洗衣机程序

基于Verilog_HDL的洗衣机程序

EDA 嵌入式系统课程设计北京印刷学院课程设计报告——嵌入式系统EDA 课程设计名称:EDA 技术课程设计课程设计题目:洗衣机控制电路专业:电子信息工程专业班级:XX XXX学生姓名:XXXXXXXXXXXXXXXXXXXXXXXX指导老师:XXXXXXX时间:XXXXXX至XXXXX 年XXXX 月XXXX 日目录一、设计任务要求 (3)1、基本要求 (3)二、总体设计方案 (3)1、系统功能 (3)2、系统设计 (3)1)系统结构框图 (3)2)模块分析 (3)1、分频模块 (3)2、七段数码管显示模块 (3)3、洗衣机主程序模块 (3)三、应用设备及软件介绍 (3)1、主要仪器设备(实验用的软硬件环境) (3)2、实验的软件环境 (4)3、操作方法与实验步骤 (4)四、调试过程分析、遇到的问题及解决方法 (4)1、分频模块 (3)2、七段数码管显示模块 (3)3、洗衣机主程序模块 (3)五、设计结论 (3)六、DE2管脚分配说明 (3)七、参考文献 (3)八、附录 (3)附录一分频模块 (9)附录二七段数码管显示模块 (9)附录三洗衣机主程序模块 (9)一、设计任务要求1、基本要求:1)洗衣机的状态为待机5s→正转60s→待机5s→反转60s→,并用3个LED灯和7段显示器分别表示其工作状态和显示相应工作状态下的时间。

2)可自行设定洗衣机的循环次数,这里设置最大的循环次数为15次。

3)具有紧急情况的处理功能。

当发生紧急情况时,立即转入待机状态,紧急情况解除后,继续执行后续步骤。

4)洗衣机设定循环次数递减到零时立即报警,以表示洗衣机设定的循环次数已经结束。

二、设计方案1、系统功能基本功能:能够实现洗衣机在设置洗衣次数后待机5s→正转60s→待机5s→反转60s的四种基本状态,并且可显示循环次数,当遇到紧急状态时可打开紧急开关,暂停洗衣机的工作。

当洗衣机循环次数递减到0时洗衣机自动报警。

2、系统设计1)系统结构框图,如图1-1所示:通过分频模块得到1Hz clk作为标准时钟输入到洗衣机主程序模块中,rst,en,start,add,四个输入信号作为洗衣机主程序模块的总输入,所得到的led信号分别用三个红灯显示,alarm信号用一个红灯显示,numa 信号、numb信号、tim信号用七段数码管显示,最终实现了洗衣机的各项功能。

中文版Verilog_HDL简明教程

中文版Verilog_HDL简明教程

模块模块是Verilog 的基本描述单位,用于描述某个设计的功能或结构及其与其他模块通信的外部端口。

一个设计的结构可使用开关级原语、门级原语和用户定义的原语方式描述; 设计的数据流行为使用连续赋值语句进行描述; 时序行为使用过程结构描述。

一个模块可以在另一个模块中使用。

说明部分用于定义不同的项,例如模块描述中使用的寄存器和参数。

语句定义设计的功能和结构。

说明部分和语句可以散布在模块中的任何地方;但是变量、寄存器、线网和参数等的说明部分必须在使用前出现。

为了使模块描述清晰和具有良好的可读性, 最好将所有的说明部分放在语句前。

在模块中,可用下述方式描述一个设计:1) 数据流方式;2) 行为方式;3) 结构方式;4) 上述描述方式的混合。

时延Verilog HDL模型中的所有时延都根据时间单位定义。

下面是带时延的连续赋值语句实例。

assign #2 Sum = A ^ B; #2指2个时间单位。

使用编译指令将时间单位与物理时间相关联。

这样的编译器指令需在模块描述前定义,如下所示:` timescale 1ns /100ps此语句说明时延时间单位为1ns并且时间精度为100ps (时间精度是指所有的时延必须被限定在0.1ns 内)。

如果此编译器指令所在的模块包含上面的连续赋值语句, #2 代表2ns。

如果没有这样的编译器指令, Verilog HDL 模拟器会指定一个缺省时间单位。

数据流描述方式用数据流描述方式对一个设计建模的最基本的机制就是使用连续赋值语句。

在连续赋值语句中,某个值被指派给线网变量。

连续赋值语句的语法为:assign [delay] LHS_net = RHS_ expression;右边表达式使用的操作数无论何时发生变化, 右边表达式都重新计算, 并且在指定的时延后变化值被赋予左边表达式的线网变量。

时延定义了右边表达式操作数变化与赋值给左边表达式之间的持续时间。

如果没有定义时延值, 缺省时延为0。

Verilog-HDL洗衣机控制器

Verilog-HDL洗衣机控制器

定义5种状态,零停机、一设定时间、二漂洗、三洗涤、四脱水,要求设定时间给漂洗,漂洗正反转各10秒,洗涤正反转各5秒,脱水正反转各1秒,有一个设定时间键,有一个切换模式键,四种工作状态分别有四个LED 显示。

mod 切换模式,一共有停机s0,调整时间s1,漂洗s2,洗涤s3,脱水s4,共五种状态add 为调整时间累加,最后赋给timecountpiaocount 是漂洗计数xicount是洗涤计数tuocount是脱水计数zheng表示电机正转fan表示电机反转module wash(mod,add,led1,led2,led3,led4,clk,zheng,fan);input mod,add,clk;output led1,led2,led3,led4,zheng,fan;reg led1,led2,led3,led4;reg zheng,fan;reg [9:0] timecount,counter;reg [4:0] piaocount,xicount,tuocount;reg [2:0] state;parameter s0=3'b000;parameter s1=3'b001;parameter s2=3'b010;parameter s3=3'b011;parameter s4=3'b100;always @(posedge add)beginif(counter<600)counter<=counter+10'd60;elsecounter<=0;endalways @(posedge clk)beginbeginzheng<=0;fan<=0;endcase(state)s0:beginzheng<=0;fan<=0;timecount<=0;led1<=1'b0;led2<=1'b0;led3<=1'b0;led4<=1'b0;piaocount<=5'b00000;xicount<=5'b00000;tuocount<=5'b00000;if(mod)state<=s1;elsestate<=s0;ends1:beginled1<=1'b1;led2<=1'b0;led3<=1'b0;led4<=1'b0;begintimecount<=counter;endif(mod)state<=s2;elsestate<=s1;ends2:beginled1<=1'b0;led2<=1'b1;led3<=1'b0;led4<=1'b0;piaocount<=5'b00000;xicount<=5'b00000;tuocount<=5'b00000;if(mod)state<=s3;elsestate<=s2;beginpiaocount<=piaocount+1'b1; if(piaocount==5'b01010)piaocount<=5'b00000;else if(piaocount>=5'b00101) beginzheng<=1'b1;fan<=1'b0; endelsebeginzheng<=1'b0;fan<=1'b1; endendends3:beginled1<=1'b0;led2<=1'b0;led3<=1'b1;led4<=1'b0;piaocount<=5'b00000;xicount<=5'b00000;tuocount<=5'b00000;if(mod)state<=s4;elsestate<=s3;beginxicount<=xicount+1'b1;if(xicount==5'b10100)xicount<=5'b00000;else if(xicount>=5'b01010) beginzheng<=1'b1;fan<=1'b0; endelsebeginzheng<=1'b0;fan<=1'b1; endendends4:beginled1<=1'b0;led2<=1'b0;led3<=1'b0;led4<=1'b1;piaocount<=5'b00000;xicount<=5'b00000;tuocount<=5'b00000;if(mod)state<=s0;elsestate<=s4;begintuocount<=tuocount+1'b1;if(tuocount==5'b00010)tuocount<=5'b00000;else if(tuocount>=4'b00001) beginzheng<=1'b1;fan<=1'b0; endelsebeginzheng<=1'b0;fan<=1'b1; endendenddefault:beginstate<=s0; endendcaseendendmodule仿真图。

洗衣机说明英文作文

洗衣机说明英文作文

洗衣机说明英文作文英文回答:Washing Machine Instructions。

How to Load the Washing Machine。

1. Open the door of the washing machine.2. Sort your clothes into like colors and fabrics.3. Load the clothes into the machine, making sure not to overload it.4. Close the door of the washing machine.How to Choose the Right Cycle。

1. Select the appropriate cycle for the type of clothes you are washing.2. There are different cycles for different fabrics, such as delicate, normal, and heavy-duty.3. Some washing machines also have special cycles for specific items, such as bedding or sportswear.How to Add Detergent and Fabric Softener。

1. Open the detergent dispenser.2. Add the recommended amount of detergent to the dispenser.3. Close the detergent dispenser.4. If you are using fabric softener, open the fabric softener dispenser.5. Add the recommended amount of fabric softener to the dispenser.6. Close the fabric softener dispenser.How to Start the Washing Machine。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

EDA 嵌入式系统课程设计北京印刷学院课程设计报告——嵌入式系统EDA 课程设计名称:EDA 技术课程设计课程设计题目:洗衣机控制电路专业:电子信息工程专业班级:XX XXX学生姓名:XXXXXXXXXXXXXXXXXXXXXXXX指导老师:XXXXXXX时间:XXXXXX至XXXXX 年XXXX 月XXXX 日目录一、设计任务要求 (3)1、基本要求 (3)二、总体设计方案 (3)1、系统功能 (3)2、系统设计 (3)1)系统结构框图 (3)2)模块分析 (3)1、分频模块 (3)2、七段数码管显示模块 (3)3、洗衣机主程序模块 (3)三、应用设备及软件介绍 (3)1、主要仪器设备(实验用的软硬件环境) (3)2、实验的软件环境 (4)3、操作方法与实验步骤 (4)四、调试过程分析、遇到的问题及解决方法 (4)1、分频模块 (3)2、七段数码管显示模块 (3)3、洗衣机主程序模块 (3)五、设计结论 (3)六、DE2管脚分配说明 (3)七、参考文献 (3)八、附录 (3)附录一分频模块 (9)附录二七段数码管显示模块 (9)附录三洗衣机主程序模块 (9)一、设计任务要求1、基本要求:1)洗衣机的状态为待机5s→正转60s→待机5s→反转60s→,并用3个LED灯和7段显示器分别表示其工作状态和显示相应工作状态下的时间。

2)可自行设定洗衣机的循环次数,这里设置最大的循环次数为15次。

3)具有紧急情况的处理功能。

当发生紧急情况时,立即转入待机状态,紧急情况解除后,继续执行后续步骤。

4)洗衣机设定循环次数递减到零时立即报警,以表示洗衣机设定的循环次数已经结束。

二、设计方案1、系统功能基本功能:能够实现洗衣机在设置洗衣次数后待机5s→正转60s→待机5s→反转60s的四种基本状态,并且可显示循环次数,当遇到紧急状态时可打开紧急开关,暂停洗衣机的工作。

当洗衣机循环次数递减到0时洗衣机自动报警。

2、系统设计1)系统结构框图,如图1-1所示:通过分频模块得到1Hz clk作为标准时钟输入到洗衣机主程序模块中,rst,en,start,add,四个输入信号作为洗衣机主程序模块的总输入,所得到的led信号分别用三个红灯显示,alarm信号用一个红灯显示,numa 信号、numb信号、tim信号用七段数码管显示,最终实现了洗衣机的各项功能。

图1-12)模块分析1、分频模块将系统给定的50MHZ 的频率通过分频模块变成1HZ 的clkclk,(我们在这里以50分频为例)输入一个50MHz 的信号作clkin,每当clkin 上升沿来时,count 计数加1,且每当count==24 时,clkout 取反一次并且count<=0,这样会得到一个1MHz 的信号,然后在进行3次100分频,即可得到1HZclk 作为我们后面所需的标准时钟。

其流程图及预制仿真图如下图:图2-1.1,图2-1.2,图2-1.3为100分频仿真所示:NYNYY图2-1.1图2-1.2开始Clkin 上升 Count==24~Count Count==0Count+1图2-1.32、七段数码管显示模块:运用三个七段数码管显示模块,分别显示倒计时个位numa,倒计时十位numb,循环剩余次数tim,如图2-2.1,图2-2.2,图2-2.3,图2-2.4图2-2.1图2-2.2图2-2.3图2-2.43、洗衣机主程序模块:如图3-1状态转换图与图3-2软件流程图所示,控制模块采用有限状态机实现对洗衣机工作状态的控制。

启动start后,控制器首先进入待机s0状态,时间从5秒倒计时,如果没有到0秒则继续等待,时间自减;当t=0,进入洗衣机正转s1状态,时间从60秒倒计时,如果没有到0秒则继续等待,时间自减;当t=0,进入洗衣机待机s2状态,同理等待5秒;当t为零后,进入s3洗衣机发转状态,时间从60秒倒计时,如果没有到0秒则继续等待,时间自减;整个过程依次循环。

紧急状态en,当按下紧急停止按钮后,处于正反转状态中的电机停止转动,同时紧急报警LED灯亮,因此紧急状态不设定独立状态。

图3-1图3-2三、应用设备及软件介绍1:主要仪器设备(实验用的软硬件环境)(1)计算机;t==0t==0t !=0t !=0(2)DE2 开发板(ALTERA Cyclone2(2C35));(3)电源线一根;(4)USB 下载线一根。

2:实验的软件环境Quartus II 9.0 软件3:操作方法与实验步骤(1)利用Quartus II 9.0 软件实现EDA 的基本设计流程:创建工程、编辑文本输设计文件、编译前设置、全程编译、功能仿真。

(2)利用Quartus II 9.0 软件实现引脚锁定和编译文件下载。

四、调试过程分析、遇到的问题及解决方法1、分频模块的调试:分析:如图4-1所示,每当count==24 时,clkout 实现一次翻转,并且count清零;该模块总体来说思路较为简单,一般都是一次性成功的(以50 分频为例),其仿真图如下图4-1图4-12、七段数码管显示模块的调试:洗衣机对七段数码管显示的要求不太高,设计好该模块的程序后,只需将洗衣机主程序模块下的输出numa,numb,tim三个信号分别接入三个七段数码管显示模块即可显示出对应的数字。

3、洗衣机主程序模块的调试:在设计洗衣机的时候我们小组大致的步骤如下:1、弄清洗衣机有哪几种按键在编写程序时我们小组决定先由易到难,从按键下手,整个洗衣机应有rst(复位键),add(设置循环次数键)、start(开始键)、、en(紧急暂停键)这四个键,并将这四个按键作为输入。

2、确立洗衣机有哪几种状态我们小组认为该洗衣机洗衣时应有四种状态:S0:待机5S;S1:正转60S;S2:待机5S;S3:反转60S;S4:待机5秒。

计数的十位用numb表示,计数的个位用numa表示。

将这四种状态作为一次循环。

在编写程序时我们一开始选择从0开始计数到5,切换状态再从0开始计数到60换状态,跑板子的时候总觉得奇怪,后来经过思考,一般洗衣机计时都是倒数的,于是我们才将程序改正过来。

在编写程序时,我们把系统紧急状态也归在这四个状态当中,结果每个状态都得判断是否为紧急状态,导致程序变得非常的繁琐,后来经思考才将紧急信号作为按键输入,这样一来程序变得简练了,不必每个状态都加上紧急状态。

之后经过我们小组的努力修改和调试,最终完成了洗衣机主程序。

洗衣机的仿真如下图如图4-1所示,rst置高电平,控制器复位,rst低电平后,add按下两次,设置循环次数为2,按下start后置为高电平,洗衣机开始工作。

图4-1洗衣机正常运行的仿真图如图4-2所示,紧急状态发生,en变为高电平,洗衣机暂停工作,电机停止运转,紧急状态结束后,恢复原状态。

图4-2紧急暂停仿真图如图4-3所示,紧急暂停结束,en恢复低电平,再次开始工作,进入下一循环。

图4-3紧急状态结束,状态恢复五、设计结论1)通过设计,实现了一个能够实现洗衣机在按下add设置洗衣次数后按下start洗衣机开始待机5s待机灯亮→正转60s待机灯灭,正转灯亮→待机5s正转灯灭,待机灯亮→反转60s待机灯灭反转灯亮的四种基本状态,并且可用tim显示循环次数,当遇到紧急状态时可打开紧急开关en,暂停洗衣机alarm灯亮的工作。

当洗衣机循环次数递减到0时洗衣机自动报警,alarm灯亮。

2)设计体会:通过这次课程设计使我发现了很多自己在EDA学习中被忽略的问题,一些重点。

从一次次的程序的调试中发现了自己在程序设计中的弱项,为自己敲了一个警钟。

更是我充分的认识到不断学习、不断探索的重要性。

通过查阅其它资料丰富了我们的知识,是我们所能学到的。

东西不仅仅是局限于课堂上,加强了我们自主学习的积极性。

并且从同学的相互交流中弥补了自身的弱点。

形成了一种你争我赶的良好学风。

因为这次课设题目的新颖,更提高了我们的自主创新能力,大幅的提高了我们的学习效率,快速的实现了学以致用的目的。

在整个设计工过程中,尤其是设计之前,一定要有整体的逻辑思路;然后在分块解决。

同样在检测的过程中,要学会分模块检测,这一点是很重要的,会起事半功倍的效果。

小组成员之间要及时沟通,分享思路及想法,不断改进,成员之间还要互相现任,还要有耐心。

总之,通过这次课设我受益匪浅。

3)3:系统工程图及洗衣机效果展示图如下图:图5-1 至图5-6 所示图5-1六、DE2 管脚分配说明图6-1七、参考文献[1] 夏宇闻. Verilog数字系统设计教程(第3版) . 北京航空航天出版社. 2013 .[2] 夏宇闻. Verilog嵌入式数字系统设计教程. 北京航空航天出版社. 2009 .八、附录附录1:分频模块(此处选取50 分频,其余分频模块省略)module fenping50(clockin,clockout);input clockin;output clockout;reg [9:0]count;reg clockout;parameter N = 24;//改变N 的值可以显示任意偶分频always @(posedge clockin) //clockin 上升沿触发beginif(count == N)begincount <= 3'b000;clockout <= ~clockout;//counter ==24 的时候clockout 实现一次翻转endelsecount <= count + 3'b001;endEndmodule附录2:七段数码管显示模块module seg7(code,display);input [3:0]code;output[6:0]display;reg [6:0]display;always@(code)begincase(code)4'b0000: display <= 7'b1000000; // 04'b0001: display <= 7'b1111001; // 14'b0010: display <= 7'b0100100; // 24'b0011: display <= 7'b0110000; // 34'b0100: display <= 7'b0011001; // 44'b0101: display <= 7'b0010010; // 54'b0110: display <= 7'b0000011; // 64'b0111: display <= 7'b1111000; // 74'b1000: display <= 7'b0000000; // 84'b1001: display <= 7'b0011000; // 9default : display<=7'b1000000; //FendcaseendEndmodule附录3:洗衣机主程序模块module washer(clk,rst,en,start,add,fore,back,numa,numb,alarm,led,tim);input clk,rst,start,add,en; //en为紧急状态信号output reg fore,back,alarm; //display led,wait:led[0],fore:led[1],back:led[2]output reg[3:0]numa,numb,tim; //numa为倒计时个位,numb 为倒计时十位output reg[2:0]led;reg [3:0]state;reg [3:0]count;parameter s0=4'b0001,s1=4'b0010,s2=4'b0100,s3=4'b1000;always@(posedge add or posedge rst) //循环次数count设置beginif(rst)count<=1'b0;elsebeginif(start==0)beginif(count<15)count<=count+1'b1;elsecount<=1'b0;endendendalways@(posedge clk or posedge rst)beginif(rst) //系统复位beginback<=1'b0;fore<=1'b0;numa<=4'b0000;numb<=4'b0000;state<=s0;led<=3'b001;alarm=1'b0;endelsebeginif(!en && start) //start为1,en为0则正常工作beginalarm<=0;if(tim) //循环次数tim>0,开始工作begincase(state)s0:beginif(numb==0 && numa==0) //时间为0,状态转移beginstate<=s1;numa<=4'b0100;//4numb<=4'b0000;//0led<=3'b001;back<=1'b0;fore<=1'b0;endelsebeginstate<=s0;led<=3'b100;back<=1'b0;fore<=1'b0;endends1:beginif(numb==0&&numa==0)beginstate<=s2;numa<=4'b1001;//9numb<=4'b0101;//5back<=1'b0;fore<=1'b1;led<=3'b010;endelsebeginstate<=s1;led<=3'b001;back<=1'b0;fore<=1'b0;endends2:beginif(numb==0&&numa==0)beginstate<=s3;numa<=4'b0100;//4numb<=4'b0000;//0back<=1'b0;fore<=1'b0;led<=3'b001;endelsebeginstate<=s2;back<=1'b0;fore<=1'b0;led<=3'b010;endends3:beginif(numb==0&&numa==0)beginstate<=s0;numa<=4'b1001;//9numb<=4'b0101;//5led<=3'b100;back<=1'b1;fore<=1'b0;endelsebeginstate<=s3;back<=1'b0;fore<=1'b0;led<=3'b001;endenddefault:state<=s0;endcaseif({numb,numa}>0) //倒计时控制部分beginif(numa==0) //numa为0,则numa赋值9,numb自减1beginnuma<=9;//9numb<=numb-1'b1;endelsenuma<=numa-1'b1;endelse if(numa==0 && numb==0 && state==s0 && !en && led==3'b100)begin //一次循环结束tim自减1tim<=tim-1'b1;endendelsebeginback<=1'b0;fore<=1'b0;numa<=4'b0000;numb<=4'b0000;alarm<=0;state<=s0;led<=3'b001;endendelse if(en && start) //en为1,进入紧急状态beginback<=1'b0;fore<=1'b0;alarm<=1'b1;endelse //start为0,给循环次数tim赋值begintim<=count;numa<=0;numb<=0;alarm<=1'b0;endendendendmodule附件:本科生毕业设计(论文)管理规范教务处目录教育部办公厅关于加强普通高等学校毕业设计(论文)工作的通知 (1)毕业设计(论文)工作管理规程 (4)大学本科生毕业设计(论文)盲审抽检办法 (12)毕业设计说明书与毕业论文撰写的规范化要求 (14)大学毕业论文封面 (21)大学毕业设计(论文)任务书 (22)大学毕业设计(论文)开题报告 (32)大学届毕业设计(论文)答辩资格审查表 (34)大学届本科生在校外从事毕业设计(论文)登记表 (37)大学本科生毕业设计(论文)选题审批表 (38)大学毕业设计评阅人评审表 (39)大学毕业论文评阅人评审表 (40)评分标准 (41)毕业设计(论文)指导教师评审标准 (42)毕业设计(论文)评阅人评审标准 (43)毕业设计(论文)答辩评审标准 (43)大学毕业设计(论文)成绩单 (47)大学优秀毕业设计(论文)推荐汇总表 (48)届毕业设计(论文)工作总结 (49)毕业设计(论文)存档文件 (51)教育部办公厅关于加强普通高等学校毕业设计(论文)工作的通知教高厅〔2004〕14号各省、自治区、直辖市教育厅(教委),新疆生产建设兵团教育局,有关部门(单位)教育司(局),部属各高等学校:为了认真贯彻落实国务院批转的《2003-2007年教育振兴行动计划》,办好让人民满意的教育,切实把提高教育质量放在重中之重的位置,实现高等教育的持续健康发展,根据普通高等学校教学的实际情况和社会发展对人才培养工作的新要求,现就加强普通高等学校毕业设计(论文)工作有关要求通知如下:一、要充分认识毕业设计(论文)环节的重要意义毕业设计(论文)是实现培养目标的重要教学环节。

相关文档
最新文档