Verilog HDL课程设计

Verilog HDL课程设计
Verilog HDL课程设计

人民武装学院Verilog HDL课程设计洗衣机控制器的设计

学生姓名: 周云

学号: PB102027115

专业: 电子信息科学与技术

年级: 2010 级

指导老师: 周骅老师

时间: 2011年12月22日

目录

引言...................................................................................................................... - 3 -

一、设计内容...................................................................................................... - 4 -

1.设计内容.................................................................................................... - 4 -

2.功能............................................................................................................ - 4 -

二、洗衣机控制器的工作原理.......................................................................... - 6 -

1. 洗衣机的工作状态.................................................................................. - 6 -

2. 全自动洗衣过程...................................................................................... - 7 -

3.单独执行某个洗衣程序............................................................................ - 8 -

三、洗衣机的状态转换图.................................................................................. - 9 -

1.洗衣机的状态转换图................................................................................ - 9 -

2. 设计思路.................................................................................................. - 9 -

四、设计程序.................................................................................................... - 11 -

1.全自动洗衣机主程序.............................................................................. - 11 -

2.全自动洗衣机测试程序.......................................................................... - 15 -

五、步骤及仿真图............................................................................................ - 17 -

1.在代码提示框架中完成核心子模块wash_ctrl.v的设计 ................... - 17 -

2.对核心子模块wash_ctrl.v 进行时序仿真 ........................................... - 17 -

六、功能图........................................................................................................ - 20 -

1.设计顶层图形文件,编译.................................................................... - 20 -

2.功能引脚锁定.......................................................................................... - 20 - 心得体会............................................................................................................ - 22 -

引言

随着高密度现场可编程逻辑器件的广泛应用,当前数字系统正朝着速度快、容量大、体积小、重量轻的方向发展的时候,越来越多的工程人员采用硬件描述语言HDL (hardware description language)来进行项目的开发。目前最通用的HDL 有VHDL 与Verilog 两种,它们具有IEEE国际标准,语法严谨,是今后数字电路与系统设计的必然趋势,它的优点在于具有行为级描述方式,可对设计进行准确描述,易于设计修改,缩短开发周期。基于VHDL开发系统有多种上,是其中之一,他的功能强大,在开发有限状态机FSM(finite state machine)时序电路时,我们不需要要再用传统的电路输入的方法,通过设计寄存器组来实现各个状态之间的转换,我们可充分利用硬件描述语言的抽象建模能力,用CAD 工具直接绘制状态转移图,具体的逻辑简化可和电路设计可同计算机自动完成,从而提高了设计的效率,并且条理更清晰,修改方便等。

一、设计内容

1.设计内容

设计一个智能洗衣机控制器,能够实现进水、洗涤、漂洗、甩干等一系列过程全自动控制.

2.功能

洗衣机是一种在家庭中不可缺少的家用电器,发展非常快,全自动式洗衣机因使用方便得到大家的青睐,全自动即进水、洗涤、漂洗、摔干等一系列过程自动完成,控制器通常设有几种洗涤程序,对不同的衣物可供用户选择。洗衣机的工作流程由进水、洗衣、排水、脱水4个过程组成。在半自动洗衣机中,这4个过程分别用相应的按钮开关来控制。全自动洗衣机中,这4个过程可做到全自动依次运行,直至洗衣结束。

全自洗衣机的洗衣桶(外桶)和脱水桶(内桶)是以同一心安放的,内桶可以旋转,作为脱水用。内桶的周围有许多小孔,使内桶和外桶的水流相通,洗衣机的进水和排水分别由进水电磁阀和排水电磁阀来执行。进水时通过控制系统将进水电磁阀打开,经进水管将水注入到外桶。排水时,通过控制系统将排水电磁阀打开,将水由外桶排到机外。洗涤正转、反转由洗涤电动机驱动波盘的正、反转来实现,此时脱水桶并不旋转。脱水时,控制系统将离合器合上,由洗涤电动机带动内桶正转进行甩干。高、中、低水位控制开关分别用来检测高、中、低水位。启动按钮用来启动洗衣机工作,停止按钮用来实现手动

停止进水、排水、脱水及报警。排水按钮用来实现手动排水。

普通洗衣机的工作流程示意图

当按下复位按钮时,洗衣机上电,控制电路复位到初始状态(默认水位为“中”;使用)者可根据衣服的多少,按下水位控制按钮,改变水位设置,以控制上水时加水的多少;当按下启动/暂停按钮时,洗衣机开始洗衣的第一个操作:进水阀门打开,开始上水,并根据水位设置(高、中、低、少)历时不同的时间timeadd(8s、7s、6s、5s);然后进水阀门关闭,电机开始运转,开始洗衣过程,并历时9s;然后电机停止运转,排水阀门打开,开始排水,并根据水位设置(高、中、低、少)历时不同的时间timedrain(7s、6s、5s、4s);然后排水阀门关闭,进水阀门打开,开始第二次上水,并历时timeadd……当甩干结束后,整个洗衣过程完成,扬声器发出持续15 秒的急促的“嘀嘀”音,提示用户洗衣结束。正常运行状态下全自动洗衣机工作过程:空闲(idle)→第一次加水(water1)7s→洗衣(wash)9s→第一次排水(drain1)6s→第二次加水(water2)7s→漂洗(rinse)9s→第二次排水(drain2)6s→甩干(dry)5s→蜂鸣15s 。洗衣机整个工作过程可分为9 个状态,运用有限状态机的设计思想来实现。

二、洗衣机控制器的工作原理

有限状态机(FSM,Finite State Machine)是一种重要的时序逻辑电路单元,尤其适合于设计数字系统的控制模块。状态机可以认为是组合逻辑和寄存器逻辑的特殊组合,它一般包括两个部分:组合逻辑部分和寄存器部分。组合逻辑部分又包括次态逻辑和输出逻辑,分别用于状态译码和产生输出信号;寄存器部分用于存储状态。状态机的次态是现态及输入信号的函数,输出信号根据状态机的现态或输入信号而定。

根据输出信号产生方法的不同,状态机可分为两类:摩尔(Moore)型状态机和米里(Mealy)型状态机。对于Moore 型状态机,其输出只为状态机当前状态的函数,而与输入无关。而对于Mealy 型状态机,其输出不仅与状态机当前状态有关,而且与输入有关。

实用的状态机一般都设计为同步时序电路,它在时钟信号的触发下,完成各状态之间的转移,并产生相应的输出。

采用Verilog HDL 语言实现基于状态机的控制电路设计,就是在时钟信号的触发下,完成两项任务:(1)用case 或if-else 语句描述出状态的转移,(2)描述状态机的输出信号(通常是控制信号)。

1. 洗衣机的工作状态

洗衣机有9 个工作状态分别为:空闲(idle)、第一次加水(water1)、洗衣(wash)、第一次排水(drain1)、第二次加

水(water2)、漂洗(rinse)、第二次排水(drain2)、甩干(dry)、蜂鸣(beep)。

2. 全自动洗衣过程

在洗衣机上电后(默认水位为“中”,通过水位控制按钮设置好合适的)水位,然后按下start_pause启动/暂停按钮,使洗衣机全自动完成整个洗衣过程,此洗衣机控制器状态转移图如下图所示:

洗衣机控制器状态转移图

分析上图:一旦按下rst 按钮,则电路复位到初始状态,控制信号m=0,w=0,d=0。当按下start_pause 启动/暂停按钮时,则进入water1 状态,w = 1,使进水阀门打开,开始上水,并历时7s。然后转移到下一状态——wash,w = 0,使进水阀门关闭;同时m = 1,使电机开始运转,开始洗衣过程,并历时9s。再转移到下一状态——drain1,……直到当甩干结束后,整个洗衣过程完成,扬声器发出持续15 秒的急促的“嘀嘀”音,提示用户洗衣结束,控制器又返

回到初始状态。

3.单独执行某个洗衣程序

有时候,人们可能需要单独执行某个洗衣程序,如洗涤或脱水,这时可以在洗衣前通过按动洗衣模式选择按钮来选择不同的洗衣程序。在这种情况下,洗衣机控制器的状态转移图就会比全自动洗衣机控制器状态转移图更复杂一些。

首先在idle 状态下,当按下启动/暂停按钮时,控制器要根据不同的洗衣模式跳转到不同的状态:若默认是全自动洗衣程序或选择浸泡程序,则跳转到water1;若选择洗涤程序,则跳转到wash;若选择漂洗程序,则跳转到water2;若选择甩干,则跳转到dry。

而当洗衣机执行完相应的洗衣程序后,则所有控制信号、计时器应清零,同时控制器应返回初始状态。因此,在water1 状态下,当加好水时控制器不是直接跳转到wash,而是要先判断洗衣模式是否为浸泡程序,若是,则跳转到idle;若不是,才直接跳转到wash。同理,在drain1 状态下,当排完水时控制器不是直接跳转到water2,而是要先判断洗衣模式是否为洗涤程序,若是,则跳转到idle;若不是,才直接跳转到water2。在drain2 状态下,当排完水时控制器不是直接跳转到dry,而是要先判断洗衣模式是否为漂洗程序,若是,则跳转到idle;若不是,才直接跳转到dry。

三、洗衣机的状态转换图

1.洗衣机的状态转换图

由上面全自动洗衣机的工作原理,可知洗衣机控制器的状态转换图如下图所示:

洗衣机控制器的状态转换图

2. 设计思路

洗衣机控制器系统结构图如下图所示,将整个设计划分为两个子模块:时钟分频子模块和洗衣机状态控制器子模块。

洗衣机控制器系统结构图

a.时钟分频子模块clkdiv.v

将系统时钟50MHz 分频为1KHz,再将1KHz 分频为1Hz,以产生洗衣结束时的提示蜂鸣音speaker=clk_1Hz&clk_1KHz&alarm(每间隔1s 产生一个音频为1KHz 的提示音)。1Hz 的时钟信号还作为洗衣机状态控制器子模块的输入时钟信号,驱动洗衣定时器计数。

b洗衣机状态控制器子模块wash_ctrl.v

设计时,首先应画出状态转移图并仔细分析,明确在每个状态下控制器要输出哪些控制信号,计数器该怎样计数;当希望洗衣机暂停时,所有控制信号应都变为0,计数器暂停计数。当计数器正常计数到预定值时,应跳转到下一状态。然后用case 语句、if-else 语句对状态转移和输出进行描述。

信号定义:input clk_1KHz, clk_1Hz, rst, start_pause, mode, level, open_door;

start_pause:启动/暂停按钮信号,高有效;mode:洗衣模式选择信号,高有效。不按时,默认全程执行浸泡、洗涤、漂洗、甩干这 4 个程序;每按一下,单独选择浸泡,或洗涤,或漂洗,或甩干程序。level:水位控制信号(负脉冲),每按一下,循环选择水位(高、

中、低、少);open_door:洗衣机盖打开信号(负脉冲)第一次按是,“开盖” ,再按一次则是合盖。

四、设计程序

1.全自动洗衣机主程序

timescale 1s/100us

Module wash_FSM([0:3]times,Clock,,Rst,Start,W,M,D,Speaker);

Input Clock,Start,Rst;

Output [0:3]timees;

Output W,M,D,Speaker;

Reg[0:3]times;

Parameter

Idle=0,Water1=1,Wash=2,Drain1=3,Water2=4,Rinse=5,Drain2=6,Dry=7,Beep=8;

Rg[0:4]wash_state;

always@(negedge Clock)

case(wash_state)

Idle;

If(rst)

begin

State=1;

Wash_state= water1;

else

Wash_state=idle;

end

Water1:

begin

W=1;

If(tims=7s)

Wash_state=wash;

else

Wash_state=water1;

end

Wash:

begin

M=1;

If(times=9s)

Wash_state=drain1;

else

Wash_state=wash;

end

Drain1:

begin

D=1;

If(times=6s)

Wash_state=water2;

else

Wash_state=drain1;

end

Water2:

begin

W=1;

If(times=7s)

Wash-state=rinse;

else

Wash_state=water2;

end

Rinse:

begin

M=1;

If(times=9s)

Wash_state=dry;

else

Wash_state=rinse;

end

Dry:

Begin

D=1;

If(times=5s)

Wash_state=beep;

else

Wash-state=dry;

end

endcase

endmodule

对程序进行分析如下:

output W, M, D; //W 是进水阀门控制信号,M 是引擎工作信

号,D 是放水阀门控制信号

output[3:0] times; //定时计数器,用于洗衣各过程的定时计数

output speaker; //洗衣结束提示音信号,驱动扬声器发声

output[3:0] nextstate; //状态机,描述洗衣机的状态转移过程为方便设计,这里还定义了一些中间变量:

reg[3:0] modestate; //洗衣模式计数器,0:默认全自动洗程序,1:只执行浸泡程序,2:只执行洗涤程序,3:只执行漂洗程序,4:只执行甩干程序。根据其值决定控制器从idle 状态应跳转到哪一状态。

reg[3:0] waterlevel;//水位计数器,用来控制加水时间,当水位为高、中、低、少时其值为0、1、2、3。

reg[3:0] timeadd; //加水时间计数器,根据水位选择控制加水时间,当水位为高、中、低、少时其值为8s、7s、6s、5s。

reg[3:0] timedrain; //排水时间计数器,根据水位选择控制排水时间,当水位为高、中、低、少时其值为7s、6s、5s、4s;

reg doorstate; //洗衣机盖的状态,为“1”表示盖是打开的,为“0”表示盖是合上的。

reg start_pause_level;//将启动/暂停脉冲信号转换为相应的高低电平信号。

reg alarm; //蜂鸣状态信号,蜂鸣时alarm 为“1” ,平时为“0” 整个模块包括8 大部分:5

①用parameter 常量定义状态机的状态,洗衣、漂洗、甩干和蜂

鸣的时间长度

②将启动/暂停脉冲信号转换为高低电平信号always@(posedge start_pa use or posedge rst) ……

③洗衣模式选择(对modestate 赋值)always@(posedge rst or posedge mode) …

④水位控制(对waterlevel 赋值)always@(posedge rst or negedge level) //复位时默认水位为“中” ……

⑤open_door 信号控制always@(posedge rst or negedge open_door) ……

⑥根据水位选择控制加水时间和排水时间always@(posedge clk_1KHz) begin case(waterlevel) …… endcase end

⑦状态机输出及状态转移always@(posedge clk_1Hz or posedge rst) begin if(rst) //控制信号清零,计数器清零,状态机回到空闲状态else begin case(nextstate) idle:

⑧speaker 信号输出assign speaker=clk_1Hz&clk_1KHz&alarm; (1)空闲状态//根据modestate 的值判断应跳转到哪个状态water1 :

(2)第一次加水begin if(!start_pause_level) begin …… end 暂停操作else begin if(times

若未加好水,则一直加水else begin …… end

否则根据modestate 是否为4'd1 判断应跳转到空闲态或下一个状态end end wash

(3)洗衣6 drain1:

(4)第一次排水//若未排完水,则一直排水

否则根据modestate 是否为4'd2 判断应跳转到空闲态或下一个状态water2:

(5)第二次加水rinse:

(6)漂洗drain2:

(7)第二次排水//若未排完水,则一直排水

否则根据modestate 是否为4'd3 判断应跳转到空闲态或下一个状态dry:

(8)甩干beep:

(9)蜂鸣endcase end end

2.全自动洗衣机测试程序

timescale 1s/100us

module Wash_FSM_test_v;

reg clock;

reg start;

reg rst;

wire W;

wire M;

wire D;

wire speak;

always began

#3 clk=1;

#3 clk=0;

end

initial begin

W=0;

M=0;

D=0;

#3;

W=1;

M=0;

D=0;

#7;

M=1;

W=0;

D=0;

#9;

D=1;

W=0;

M=0;

#6;

W=1;

M=0;

D=0;

#7;

M=1;

W=0;

D=0;

#9;

D=1;

W=0;

M=0;

#6;

M=1;

D=1;

W=0;

#5;

W=0;

M=0;

D=0;

Speaker=1;

#15;

W=0;

M=0;

D=0;

#3;

end endmodule

五、步骤及仿真图

1.在代码提示框架中完成核心子模块wash_ctrl.v的设计

2.对核心子模块wash_ctrl.v 进行时序仿真

(1)仿真全程自动顺序执行浸泡、洗涤、漂洗、甩干这4 个程序当rst信号来到时,所有的信号置零;

当start_pause信号有效时,进入加水状态;只要不再按下start_pause 按钮,洗衣机将按照预定的时序自动完成洗衣的全过程。

洗衣过程全部自动完成的仿真图

(2)仿真人工干预洗衣过程

在洗衣过程全部自动完成后,再分别给rst和start_pause一个正脉冲,模拟一次新的洗衣过程。在洗衣状态(wash)下,第二次按下start_pause按钮,则M从“1”变为“0” ,洗衣机暂停操作;稍后第三次按下start_pause按钮时,则M从“0”变为“1” ,洗衣机继续操作。

(3)仿真选择洗衣模式

在人工干预洗衣过程结束后,再给rst一个正脉冲,模拟一次新的洗衣过程。当第一次按下mode按钮时,洗衣机进入浸泡程序操作;第二次按下mode按钮时,洗衣机进入洗涤程序。当然,若依次按下mode按钮时,洗衣机会依次进入漂洗、甩干程序(后两个程序限于篇幅不作图解)。仔细观察modestate和nextstate的变化。

选择洗衣模式的仿真图

(4)仿真进行水位控制

在上述洗衣过程结束后,再给rst 一个正脉冲,模拟一次新的洗衣过程。先给level 一个负脉冲,设置水位为低,再启动;到第二次加水期间,给level 一个负脉冲,设置水位为少。观察洗衣和漂洗过程中的加水时间和排水时间是否分别与设置的水位相一致。

设置水位分别为低和少时的仿真图

(5)仿真在甩干过程中,打开洗衣机盖的现象

在甩干过程中,先后打开和合上洗衣机盖时的仿真图

六、功能图

1.设计顶层图形文件,编译

这里用未消抖按键9、按键10(低有效),作为水位控制信号level_n 与洗衣机盖打开信号open_door_n 的控制键,因此还需要增加按钮消抖模块。

顶层图形文件

2.功能引脚锁定

(1)输入信号:

clk(f=50MHz)接Pin28;rst 接键1(Pin233);start_pause 接键4(Pin236);mode 接键7(Pin239);level_n:水位控制信号,负脉冲有效,接键9(Pin132);open_door_n:洗衣机盖打开信号,负脉冲有效,接键10(Pin128)。

(2)输出信号:

W 接发光二极管D8(Pin168);M 接D7(Pin167)接D6

数字系统设计与verilog HDL课程设计

数字系统设计与verilog HDL课程设计 设计题目:实用多功能数字钟 专业:电子信息科学与技术 班级:0313410 学号:031341025 姓名:杨存智 指导老师:黄双林

摘要 本课程设计利用QuartusII软件Verilog VHDL语言的基本运用设计一个多功能数字钟,经分析采用模块化设计方法,分别是顶层模块、alarm、alarm_time、counter_time、clk50mto1、led、switch、bitel、adder、sound_ddd、sound_ddd_du模块,再进行试验设计和软件仿真调试,分别实现时分秒计时、闹钟闹铃、时分秒手动校时、时分秒清零,时间保持和整点报时等多种基本功能。 单个模块调试达到预期目标,再将整体模块进行试验设计和软件仿真调试,已完全达到分块模式设计功能,并达到设计目标要求。 关键字:多功能数字钟、Verilog、模块、调试、仿真、功能

目录 1.课程设计的目的及任务............................................................. 错误!未定义书签。 1.1 课程设计的目的 (3) 1.2 课程设计的任务与要求 (4) 2.课程设计思路及其原理 (4) 3.QuartusII软件的应用 (5) 3.1工程建立及存盘 (5) 3.2工程项目的编译 (5) 3.3时序仿真 (6) 4.分模块设计、调试、仿真与结果分析 (7) 4.1 clk50mto1时钟分频模块 (7) 4.2 adder加法器模块 (7) 4.3 hexcounter16 进制计数器模块 (7) 4.4 counter_time 计时模块 (8) 4.5 alarm闹铃模块 (8) 4.6 sound_ddd嘀嘀嘀闹铃声模块 (9) 4.7 sound_ddd_du嘀嘀嘀—嘟声音模块 (9) 4.8 alarm_time闹钟时间设定模块 (10) 4.9 bitsel将输出解码成时分秒选择模块 (10) 4.10 switch去抖模块 (11) 4.11 led译码显示模块 (11) 4.12 clock顶层模块 (12) 5.实验总结 (13) 5.1调试中遇到的问题及解决的方法 (13) 5.2实验中积累的经验 (14) 5.3心得体会 (14) 6.参考文献 (14) 1.1 课程设计的目的 通过课程设计的锻炼,要求学生掌握V erilog HDL语言的一般设计方法,掌握VerilogHDL语言的基本运用,具备初步的独立设计能力,提高综合运用所学的理论知识独立分析和解决问题的能力,基于实践、源于实践,实践出真知,实践检验真理,培养学生的

verilog课程设计—交通灯

课程论文 论文题目基于DE2的交通灯设计完成时间 课程名称Verilog语言设计 任课老师 专业 年级

1.交通信号控制器设计要求与思路 1.1设计背景 FPGA是一种用户根据各自需要而自行构造逻辑功能的数字集成电路,其种类很多,内部结构也不同,但共同的特点是体积小、使用方便。本文介绍了用VerilogHDL语言设计交通灯控制器的方法,并在QuartusII系统对FPGA芯片进行编译下载,由于生成的是集成化的数字电路,没有传统设计中的接线问题,所以故障率低、可靠性高,而且体积非常小。本文通过EDA设计,利用VerilogHDL语言模拟仿真交通灯控制电路。 1.2设计要求 根据交通灯控制器要实现的功能,考虑用两个并行执行的always语句来分别控制A方向和B方向的3盏灯。这两个always语句使用同一个时钟信号,以进行同步,也就是说,两个进程的敏感信号是同一个。每个always语句控制一个方向的3种灯按如下顺序点亮,并往复循环:绿灯----黄灯----红灯,每种灯亮的时间采用一个减法计数器进行计数,计数器用同步预置数法设计,这样只需改变预置数据,就能改变计数器的模,因此每个方向只要一个计数器进行预置数就可以。为便于显示灯亮的时间,计数器的输出均采用BCD码,显示由4个数码管来完成,A方向和B方向各用两个数码管。设定A方向红灯、黄灯、绿灯亮的时间分别为:35s、5s、35s,B方向的红灯、黄灯、绿灯亮的时间分别为:35s、5s、35s。假如要改变这些时间,只需要改变计数器的预置数即可。 1.3设计思路 两个方向各种灯亮的时间能够进行设置和修改,此外,假设B方向是主干道,车流量大,因此B方向通行的时间应该比A方向长。交通灯控制器的状态转换表见下表。表中,1表示灯亮,0表示灯不亮。A方向和B方向的红黄绿分别用R1、Y1、G1、R2、Y2、G2来表示。

Verilog HDL数字时钟课程设计

课程设计报告 课程设计名称:EDA课程设计课程名称:数字时钟 二级学院:信息工程学院 专业:通信工程 班级:12通信1班 学号:1200304126 姓名:@#$% 成绩: 指导老师:方振汉 年月日

目录 第一部分 EDA技术的仿真 (3) 1奇偶校验器 (3) 1.1奇偶校验器的基本要求 (3) 1.2奇偶校验器的原理 (3) 1.3奇偶校验器的源代码及其仿真波形 (3) 28选1数据选择器 (4) 2.18选1数据选择器的基本要求 (4) 2.28选1数据选择器的原理 (4) 2.38选1数据选择器的源代码及其仿真波形 (5) 34位数值比较器 (6) 3.14位数值比较器的基本要求 (6) 3.24位数值比较器的原理 (6) 3.34位数值比较器的源代码及其仿真波形 (7) 第二部分 EDA技术的综合设计与仿真(数字时钟) (8) 1概述 (8) 2数字时钟的基本要求 (9) 3数字时钟的设计思路 (9) 3.1数字时钟的理论原理 (9) 3.2数字时钟的原理框图 (10) 4模块各功能的设计 (10) 4.1分频模块 (10) 4.2计数模块(分秒/小时) (11) 4.3数码管及显示模块 (13) 5系统仿真设计及波形图........................... 错误!未定义书签。5 5.1芯片引脚图.................................... 错误!未定义书签。5 5.2数字时钟仿真及验证结果 (16) 5.3数字时钟完整主程序 (17) 6课程设计小结 (23) 7心得与体会 (23) 参考文献 (24)

Verilog课程设计

一.实验目的 (1)学习RISC_CPU的基本结构和原理; (2)了解Verilog HDL仿真和综合工具的潜力; (3)展示Verilog设计方法对软/硬件联合设计和验证的意义; (4)学习并掌握一些常用的Verilog语法和验证方法。 二.实验原理 CPU即中央处理单元的英文缩写,它是计算机的核心部件。计算机进行信息处理可分为两个步骤: (1)将数据和程序(即指令序列)输入计算机的存储器中。 (2)从第一条指令的地址起开始执行该程序,得到所需结果,结束运行。CPU的作用是协调并控制计算机的各个部件并执行程序的指令序列,使其有条不紊地进行。因此它必须具有以下基本功能。 ①取指令——当程序忆在存储器中时,首先根据程序入口地址取出一条程序,为此要发出指令地址及控制信号。 ②分析指令——即指令译码,这是对当前取得的指令进行分析,指出它要求什么操作,并产生相应的操作控制命令。 ③执行指令——根据分析指令时产生的“操作命令”形成相应的操作控制信号序列,通过运算器、存储器及输入/输出设备的执行,实现每条指令的功能,其中包括对运算结果的处理以及下条指令地址的形成。 将CPU的功能进一步细化,可概括如下: (1)能对指令进行译码并执行规定的动作; (2)可以进行算术和逻辑运算; (3)能与存储器和外设交换数据; (4)提供整个系统所需要的控制。 尽管各种CPU的性能指标和结构细节各不相同,但它们所能完成的基本功能相同。由功能分析,可知任何一种CPU内部结构至少应包含下面这些部件:(1)算术逻辑运算部件(ALU); (2)累加器; (3)程序计数器;

(4)指令寄存器和译码器; (5)时序和控制部件。 三.实验内容 通过我们自己动手,设计出一个CPU的软核和固核。这个CPU是一个简化的专门为教学目的而设计的RISC_CPU。在设计中我们不但关心CPU总体设计的合理性,而且还使得构成这个RISC_CPU的每一个模块不仅是可仿真的也都可以综合成门级网表。因而从物理意义上说,这也是一个能真正通过具体电路结构而实现的CPU。为了能在这个虚拟的CPU上运行较为复杂的程序并进行仿真,把寻址空间规定为8K(即13们地址线)字节。 四.实验代码 1.源代码 //----------------------------------clk_gen.v------------------------------ `timescale 1ns/1ns //时间单位1ns,时间单位1ns module clk_gen(clk,reset,fetch,alu_ena); //模块名clk_gen,参数列表(clk,reset,fetch,alu_ena)input clk,reset; //输入clk,reset output fetch,alu_ena; //输出fetch,alu_ena wire clk,reset; //wire型变量clk,reset reg fetch,alu_ena; //reg寄存器型变量fetch,alu_ena reg[7:0]state; //reg寄存器型变量8位的state parameter S1=8'b00000001,S2=8'b00000010,S3=8'b00000100,S4=8'b00001000,S5=8'b00010000,S6=8'b001 00000,S7=8'b01000000,S8=8'b10000000,idle=8'b00000000; //参数型定义8位二进制常量s1,s2,s3,s4,s5,s6,s7,s8,idle always@(posedge clk) //always块时钟触发 if(reset) //如果reset为真 begin //执行begin,and顺序块 fetch<=0; //fetch非阻塞赋值赋为0 alu_ena<=0; //alu_ena非阻塞赋值赋为0 state<=idle; //idle非阻塞赋值给state end else //reset为假执行下面begin语句 begin case(state) //case表达式(state) S1:begin alu_ena<=1; //alu_ena非阻塞赋值赋为1 state<=S2; //state非阻塞赋值赋为S2 end S2:begin alu_ena<=0; //alu_ena非阻塞赋值赋为0 state<=S3; //state非阻塞赋值赋为S3 end

基于Verilog的课程设计

基于Verilog的课程设计 直流电机的PWM控制 指导老师:翁嘉民 班级:1031电气自动化技术成员:李高峰9112 王俊才9186 孟令朋9143

目录 1.绪论 (3) 直流电机介绍 (3) 1.1.1直流电机的特点 (3) 1.1.2直流电机的应用 (3) 介绍 (4) 介绍 (4) V ERILOG HDL硬件描述语言 (5) 1.4.1V ERILOG HDL硬件描述语言介绍 (5) 1.4.2V ERILOG HDL功能 (5) PWM脉冲宽度调制介绍 (6) 直流电机的PWM控制 (7) 2.设计原理 (8) 设计原理框图 (8) 原理图 (9) 模块设计 (9) 2.3.1 MOTO_TEST模块 (9) 2.3.4计数器模块 (12) 7实训心得 (13) 参考文献 (13)

直流电机的PWM控制器的设计 1.绪论 直流电机介绍 直流电机是实现直流电能与机械能之间相互转换的一种电力机械,按照直流电机的用途分为直流电动机和直流发电机两类。能够将机械能转换成直流电能的电机称为直流发电机;能够将直流电能转换成机械能的电机称为直流电动机。 1.1.1直流电机的特点 从直流电机与交流电机相比中可以看出,直流电机具有优良的调速性能和启动性能。直流电机具有宽广的调速范围,平滑的无级调速特性,可实现频繁的无级快速启动、制动和反转;过载能力大,能承受频繁的冲击负载;能满足自动化生产系统中各种特殊运行的要求。而直流发电机则能提供无脉动的大功率直流电源,且输出电压可以精确地调节和控制。 1.1.2直流电机的应用 直流电机是交通、工矿、建筑等行业中的常见动力机械,是机电行业人员的重要工作对象和工具。在某些要求调速范围广、速度快、精密度高、控制性能优异的场合,直流电机的应用目前仍占有较大的比重,如大型可逆式轧钢机、内燃机车、矿井卷扬机、造纸和印刷机械、宾馆高速电梯、城市电车、电动自行车、龙门刨床、电力机车、地铁列车、船舶机械、大型精密机床和大型起重机等生产机械中。

Verilog HDL课程设计

人民武装学院Verilog HDL课程设计洗衣机控制器的设计 学生姓名: 周云 学号: PB102027115 专业: 电子信息科学与技术 年级: 2010 级 指导老师: 周骅老师 时间: 2011年12月22日

目录 引言...................................................................................................................... - 3 - 一、设计内容...................................................................................................... - 4 - 1.设计内容.................................................................................................... - 4 - 2.功能............................................................................................................ - 4 - 二、洗衣机控制器的工作原理.......................................................................... - 6 - 1. 洗衣机的工作状态.................................................................................. - 6 - 2. 全自动洗衣过程...................................................................................... - 7 - 3.单独执行某个洗衣程序............................................................................ - 8 - 三、洗衣机的状态转换图.................................................................................. - 9 - 1.洗衣机的状态转换图................................................................................ - 9 - 2. 设计思路.................................................................................................. - 9 - 四、设计程序.................................................................................................... - 11 - 1.全自动洗衣机主程序.............................................................................. - 11 - 2.全自动洗衣机测试程序.......................................................................... - 15 - 五、步骤及仿真图............................................................................................ - 17 - 1.在代码提示框架中完成核心子模块wash_ctrl.v的设计 ................... - 17 - 2.对核心子模块wash_ctrl.v 进行时序仿真 ........................................... - 17 - 六、功能图........................................................................................................ - 20 - 1.设计顶层图形文件,编译.................................................................... - 20 - 2.功能引脚锁定.......................................................................................... - 20 - 心得体会............................................................................................................ - 22 -

verilog课程设计—交通灯1

课程设计 课程名称__EDA技术综合设计与实践__ 题目名称交通灯控制系统 学生学院信息工程学院 专业班级通信工程08(4) 学号 3108002925 学生姓名高高 指导教师李学易 2011 年12 月26 日

基于FPGA 的交通灯控制器的设计 摘要:Verilog 是广泛应用的硬件描述语言,可以用在硬件设计流程的建模、综合和模拟等多个阶段。随着硬件设计规模的不断扩大,应用硬件描述语言进行描述的CPLD 结构,成为设计专用集成电路和其他集成电路的主流。现代城市在日常运行控制中,越来越多的使用红绿灯对交通进行指挥和管理。而一套完整的交通灯控制系统通常要实现自动控制和手动控制去实现其红绿灯的转换。 基于FPGA 设计的交通灯控制系统电路简单、可靠性好。本设计利用Verilog HDL 语言、采用层次化混合输入方式,可控制4个路口的红、黄、绿、左转四盏信号灯,让其按特定的规律进行变化。在QUARTUSⅡ下对系统进行了综合与仿真。仿真结果表明系统可实现十字路口红绿灯及左转弯控制和倒计时显示,并能够自动控制交通灯转变。通过应用Verilog HDL 对交通灯控制器的设计,达到对Verilog HDL 的理解 关键词:FPGA;交通灯自动控制;V erilog HDL;Quartus Ⅱ 1.交通信号控制器设计要求与思路 1.1设计要求 在交通灯系统中(图1),路口1、2、3、4均需要红、黄、绿、左转四盏灯(用RYGL分别表示) ,并且每个路口都需要一个倒数的计时器,假设绿灯每次维持的时间是40 s ,黄灯为5 s ,左转灯10s,红灯60s,黄灯亮时以一定的频率闪动。交通灯系统大多是自动控制来指挥交通的,但有时需要由交警手动控制红绿灯,所以要求设 计的该交通信号系统需要具有该功能。 实现设计目标如下: (1)设计一个十字路口的交通灯控制电路,每条路配有红、黄、绿交通信号灯,通过电路对十字路口的两组交通灯的状态实现自动循环控制; (2)实现东西车道和南北车道上的车辆交替运行,绿灯每次维持的时间是40 s ,黄灯为5 s ,左转灯10s,红灯60s; (3)要求黄灯亮5 秒后,红灯才能转为绿灯,黄灯亮时以一定的频率闪动; (4)东西车道和南北车道每次通行的时间不同且可调; 图1 交通灯系统示意图

verilog课程设计

课程设计 设计题目:基于FPGA的乐曲演奏电路设计 ?指导教师:蒋俊华 ?学院:物理与电子学院 ?专业:电子信息科学与技术 ?姓名:郭志勇 ?学号:10230******* ?实验地点:特种功能实验室(实验室502)

摘要:本文根据层次化的设计思路并在EDA开发工具Quartus II 9.0 (32-Bit) 平台上,采用Verilog语言、原理图、定制LPM-ROM块以及实例化的设计方法,利用数控分频的原理实现了基于FPGA片上系统(本实验用的是康芯GW48系列EDA设备)乐曲演奏的设计。 关键词 FPGA,EDA,Verilog,数控分频器 一. 概述部分: (1)设计所要实现的功能 能够很好的演奏出“梁祝”的谱子,将音乐通过实验箱上的喇叭播放出;演奏发音相对应的简谱码输出显示由在数码管5显示;高八度音指示由发光管D5指示 (2)设计所采用的基本思想 根据层次化的设计思路,可把乐曲硬件演奏电路分为3个模块,音乐节拍发生模块,音符译码电路模块,数控分频模块。 音乐节拍发生模块的设计:将编辑好的音符填入MIF文件中再定制LPM-ROM块将音符数据加载入ROM再通过计数器逐步计数rom块的地址来提取音符;音符译码电路模块、数控分频模块的设计:都是由verilog代码实例化生成 通过输入原理图的方法将各个模块连接起来生成一个block块的.qpf文件作为最终的顶层文件。 二.系统设计部分 (1)整个设计的组织结构

(2)各个子单元的设计思路 音乐节拍发生模块的设计: LPM-ROM块该模块为音乐曲谱的存放块。其中设置了“梁祝”乐曲全部音符所对应的分频预置数。其利用LPM_ROM宏模块将共设定256个音符,每个音符宽度为4位。 Mif文件存放乐曲中的音符数据,它是利用LPM-ROM来实现的,将乐谱中相应的音符放在一个连续的地址上。它首先是编写音符数据文件,将乐谱中相应的音符存放在一个连续的地址上。因为1拍的时间定为1秒,提供的是4Hz的时钟频率(即1/4拍的整数倍),则需将这个音符存储在相应次数的连续几个地址上。.mif文件如下:

哈工大Verilog课程设计-状态机

可编程逻辑器件大作业(二) 2012年12月

一、题目 利用Verilog HDL设计一个电路,对输入的一串二进制数,用于检测序列中连续3个或者3个以上的1,状态转换图如图所示。要求: 1、编写源程序; 2、给出仿真电路图、状态转换图和仿真波形图 二、程序代码 module moore(clk,din,op,reset); input clk,din,reset; output op; reg[1:0] current_state,next_state; reg op; parameter S0=2'b00,S1=2'b01,S2=2'b10,S3=2'b11; always @ (posedge clk) begin if(!reset) current_state = S0; else current_state <= next_state; end always @ (din or current_state)

begin case( current_state ) S0: begin op = 0; if(din == 0) next_state = S0; else next_state = S1; end S1: begin op = 0; if(din == 0) next_state = S0; else next_state = S2; end S2: begin op = 0; if(din == 0) next_state = S0; else next_state = S3; end S3: begin op = 1; if(din == 0) next_state = S0;

数字竞赛抢答器课程设计Verilog语言实现

数字竞赛抢答器课程设计Verilog语言实现

可编程器件与应用课程设计报告 姓名:XXX 学号:XXXXXXXXXX 专业班级:信息XXX 题目:数字式竞赛抢答器 指导老师:

一、绪论 背景: 随着电子技术的发展,可编程逻辑器件(PLD)的出现,使得电子系统的设计者利用EDA(电子设计自动化)软件,就可以独立设计自己的专用集成电路(ASIC)器件。可编程逻辑器件是一种半导体集成器件的半成品。在可编程逻辑器件的芯片中按一定方式(阵列形式或单元阵列形式)制作了大量的门、触发器等基本逻辑器件,对这些基本器件适当地连接,就可以完成某个电路或系统的功能。 数字式竞赛抢答器控制系统是工厂、学校和电视台等单位举办各种智力竞赛等娱乐活动中经常使用的重要基础设备之一。目前设计抢答器的方法很多,例如用传统的PCB板设计、用PIC 设计或者用单片机设计。而用Verilog可以更加快速、灵活地设计出符合各种要求的抢答器,优于其他设计方法,使设计过程达到高度自动化。本文介绍的4路数字式竞赛抢答器基于Verilog 语言、以EDA技术作为开发手段、采用CPLD (复杂的可编程逻辑器件)作为控制核心设计而成。与传统设计相比较,不仅简化了接口和控制,

也提高了系统的整体性能和工作可靠性,具有电路简单、成本低廉、操作方便、灵敏可靠等优点。意义: 数字式竞赛抢答器作为一种电子产品,早已广泛应用于各种智力和知识竞赛场合,但目前所使用的抢答器存在分立元件使用较多,造成每路的成本偏高,而现代电子技术的发展要求电子电路朝数字化、集成化方向发展,因此设计出数字化全集成电路的多路抢答器是现代电子技术发展的要求。 二、实现方案 设计要求: 1、设计一个可容纳4组参赛的数字式抢答器,每组设一个按钮,供抢答使用。 2、抢答器具有第一信号鉴别和锁存功能,使除第一抢答者外的按钮不起作用。 3、设置一个主持人“复位”按钮。 4、主持人复位后,开始抢答,第一信号鉴别锁存电路得到信号后,有指示灯显示抢答组别,扬声器发出2~3秒的音响。 5、设置一个计分电路,每组开始预置5分,由主持人记分,答对一次加1分,答错一次减1分。

数字竞赛抢答器课程设计Verilog语言实现

可编程器件与应用课程设计报告 姓名: XXX 学号: XXXXXXXXXX 专业班级:信息XXX 题目数字式竞赛抢答器 指导老师:

、绪论 背景: 随着电子技术的发展,可编程逻辑器件(PLD )的出现,使得电子系统的设计者利用 EDA (电子设计自动化)软件,就可以独立设计自己的专用集成电路(ASIC )器件。可编 程逻辑器件是一种半导体集成器件的半成品。在可编程逻辑器件的芯片中按一定方式(阵列形式或单元阵列形式)制作了大量的门、触发器等基本逻辑器件,对这些基本器件适当地连接,就可以完成某个电路或系统的功能。 数字式竞赛抢答器控制系统是工厂、学校和电视台等单位举办各种智力竞赛等娱乐活动中经常使用的重要基础设备之一。目前设计抢答器的方法很多,例如用传统的PCB板设计、 用PIC设计或者用单片机设计。而用Verilog可以更加快速、灵活地设计出符合各种要求的 抢答器,优于其他设计方法,使设计过程达到高度自动化。本文介绍的4路数字式竞赛抢答 器基于Verilog语言、以EDA技术作为开发手段、采用CPLD (复杂的可编程逻辑器件)作为控制核心设计而成。与传统设计相比较,不仅简化了接口和控制,也提高了系统的整体性 能和工作可靠性,具有电路简单、成本低廉、操作方便、灵敏可靠等优点。意义:数字式竞赛抢答器作为一种电子产品,早已广泛应用于各种智力和知识竞赛场合,但目前所使用的抢答器存在分立元件使用较多,造成每路的成本偏高,而现代电子技术的发展要 求电子电路朝数字化、集成化方向发展,因此设计出数字化全集成电路的多路抢答器是现代 电子技术发展的要求。 实现方案 设计要求: 1设计一个可容纳4组参赛的数字式抢答器,每组设一个按钮,供抢答使用。 2、抢答器具有第一信号鉴别和锁存功能,使除第一抢答者外的按钮不起作用。 3、设置一个主持人“复位”按钮。 4、主持人复位后,开始抢答,第一信号鉴别锁存电路得到信号后,有指示灯显示抢答组别, 扬声器发出2~3秒的音响。 5、设置一个计分电路,每组开始预置5分,由主持人记分,答对一次加1分,答错一次减 1分。 6、设置犯规电路,对超时答题(例如1分钟)的组别鸣笛示警,并由组别显示电路显示出犯规组别,该轮该选手退出,由裁判员重新发令,其他人再抢答。 此设计问题可分为第一信号鉴别、锁存模块,答题计时电路模块,计分电路模块和扫描 显示模块四部分。 第一信号鉴别锁存模块的关键是准确判断出第一抢答者并将其锁存,在得到第一信号后,将输入端封锁,使其他组的抢答信号无效,可以用触发器或锁存器实现。设置抢答按钮 K1、K2、K3、K4,主持人复位信号judge,蜂鸣器驱动信号buzzout。judge=O时,第一信号鉴别、锁存电路、答题计时电路复位,在此状态下,若有抢答按钮按下,鸣笛示警并显示犯规组别;judge=1时,开始抢答,由第一信号鉴别锁存电路形成第一抢答信号,进行组别显示,控制蜂鸣器发出声响,并启动答题计时电路,若计时时间到,主持人复位信号还没有按下,则由蜂鸣器发出犯规示警声。 计分电路是一个相对独立的模块,采用十进制加/减计数器、数码管数码扫描显示,设 置复位信号Reset、加减分信号add_min,加减分状态键key_state, Reset=0时所有得分回到 起始分(5分),且加、减分信号无效;Reset=1时,由第一信号鉴别、锁存电路的输出信号 选择进行加减分的组别,当key_state=1时,按一次add_min,第一抢答组加1分;当key_state=O

Verilog数字钟课程设计

课程设计报告课程设计题目:数字钟系统设计 学号:2 学生姓名:刘新强 专业:通信工程 班级:1421302 指导教师:钟凯 2016年1月4日

FPGA( Field Programmable Gate Array,现场可编程门阵列),一种可编程逻辑器件,是目前数字系统设计的主要硬件基础。可编程逻辑器件的设计过程是利用EDA 开发软件和编程和编程工具对器件进行开发的过程。 通过modelsim软件下采用verilog语言实现数字钟系统设计,实现了以下几个方面的功能: 1.数字钟基本计时功能 2.数字钟校时功能 3.数字钟系统报时功能 关键词:FPGA ;VHDL;数字钟

一、FPGA与VHDL简介 (1) 1、FPGA与简介 ........................................................................................... 2、VHDL简介 ............................................................................................... 二、课程设计的目的与要求 (2) 1、教学目的.................................................................................................................... 2、教学要求.................................................................................................................... 3、数字钟系统设计要求................................................................................................ 三、设计方案 (2) 1、系统框图.................................................................................................................... 2、模块说明.................................................................................................................... 四、仿真与实现 (3) 1、数字钟基本计时功能实现........................................................................................ 2、数字钟校时功能实现................................................................................................ 3、数字钟系统报时功能实现........................................................................................ 五、实验心得 (4) 六、参考文献 (4) 七、代码 (5)

verilog HDL课设(数字钟)

课程设计(报告)任务书 (理工科类) Ⅰ、课程设计(报告)题目: 实时时钟电路的设计 Ⅱ、课程设计(论文)工作内容 一、课程设计目标 《硬件描述语言》是一门技术性、应用性很强的学科,实验课教学是它的一个极为重要的环节。不论理论学习还是实际应用,都离不开实验课教学。如果不在切实认真地抓好学生的实践技能的锻炼上下功夫,单凭课堂理论课学习,势必出现理论与实践脱节、学习与应用脱节的局面。《HDL项目设计》的目的就是让同学们在理论学习的基础上,通过完成一个涉及时序逻辑、组合逻辑、声光输出的,具有实用性、趣味性的小系统设计,使学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对分析、解决实际的数字电路问题进一步加深认识,为今后能够独立进行某些数字应用系统的开发设计工作打下一定的基础。 二、课程设计任务与要求 (1)设计一个数码管实时显示时、分、秒的数字时钟(24小时显示模式); (2)为了演示方便,应具有分钟、小时快进功能; (3)时、分、秒设置功能(选作)。 三、课程设计考核 平时20%;验收40%;报告40%

摘要 数字钟是人们日常生活中经常使用的计时工具,本次的课程设计是基于Verilog HDL的多功能数字钟,完成时、分、秒的显示功能。设计利用Verilog HDL 语言自顶向下的设计理念,突出其作为硬件描述语言的良好的可读性、可移植性以及易于理解等优点。通过Quartus II 5.0和ModelSim SE 6.1f软件完成仿真、综合。程序下载到FPGA芯片后,可用于实际的数字钟显示中。 此次设计的逻辑结构主要由分频器、计数器和译码显示器三个模块构成。分频模块将50Mhz系统基准时钟分频产生两路时钟信号,一路是1HZ的数字钟计时工作频率,一路是数码管动态显示的扫描频率;计时模块对1HZ的时钟信号进行计时,分为时、分、秒三个部分;译码显示模块采用动态扫描的方式完成数码管的显示。最后通过主模块调用三个子模块函数完成整个设计。 【关键词】硬件描述语言FPGA 数字钟动态显示

EDA课程设计 多功能数字钟设计报告 数字系统设计与verilog HDL(第四版) 王金明

EDA课程设计报告: 实用多功能数字钟 学院: 专业: 班级: 学号: 姓名: 指导老师:江伟 2012年12月25日

实用多功能数字钟 摘要 本EDA课程设计利用QuartusII软件Verilog VHDL语言的基本运用设计一个多功能数字钟,经分析采用模块化设计方法,分别是顶层模块、alarm、alarm_time、counter_time、clk50mto1、led、switch、bitel、adder、sound_ddd、sound_ddd_du模块,再进行试验设计和软件仿真调试,分别实现时分秒计时、闹钟闹铃、时分秒手动校时、时分秒清零,时间保持和整点报时等多种基本功能。 单个模块调试达到预期目标,再将整体模块进行试验设计和软件仿真调试,已完全达到分块模式设计功能,并达到设计目标要求。 关键字:多功能数字钟、Verilog、模块、调试、仿真、功能

目录 一.课程设计的目的及任务 (1) 1.1 课程设计的目的 (1) 1.2 课程设计的任务与要求 (1) 二.课程设计思路及其原理 (1) 三.QuartusII软件的应用 (2) 3.1工程建立及存盘 (2) 3.2工程项目的编译 (3) 3.3时序仿真 (3) 四.分模块设计、调试、仿真与结果分析 (4) 4.1 clk50mto1 时钟分频模块 (4) 4.2 adder 加法器模块 (4) 4.3 hexcounter16 进制计数器模块 (5) 4.4 counter_time 计时模块 (5) 4.5 alarm闹铃模块 (6) 4.6 sound_ddd嘀嘀嘀闹铃声 (7) 4.7 sound_ddd_du嘀嘀嘀—嘟声音模块 (7) 4.8 alarm_time闹钟时间设定模块 (8) 4.9 bitsel将输出解码成时分秒选择模块 (8) 4.10 switch去抖模块 (8) 4.11 led译码显示模块 (9) 4.12clock顶层模块 (10) 五.实验总结 (11) 5.1调试中遇到的问题及解决的方法 (11) 5.2实验中积累的经验 (12) 5.3心得体会 (12) 六.参考文献 (12) 七.程序清单 (13)

基于某verilog数字钟设计资料报告材料

一、课程设计目标 1. 熟悉并掌握verilog 硬件描述语言 2. 熟悉quartus 软件开发环境 3.学会设计大中规模的数字电路,并领会其中的设计思想 二、课程设计实现的功能 (1)设计一个数码管实时显示时、分、秒的数字时钟(24小时显示模式);(2)可以调节小时,分钟。 (3)能够进行24小时和12小时的显示切换。 (4)可以设置任意时刻闹钟,并且有开关闹钟功能。 (5)有整点报时功能,几点钟LED灯闪亮几下。 (6)有复位按键,复位后时间从零开始计时,但闹钟设置时间不变。 三、设计原理: 1、总原理框图: 2、各个子模块设计:

(1)、分频模块: 分频模块的作用主要是要获得各种频率的时钟信号。输入信号为50MHZ的信号,要想获得1HZ的信号作为秒脉冲计时,则要对50MHZ信号分频。通过计数的方式,当计数从0开始到24 999999时,1HZ信号取反一次,计数又从0开始,如此循环,就可以得到1HZ脉冲信号。对于其他信号也是如此,只是计数值不一样,得到的分频信号不同。 部分代码如下: always(posedge _50MHZ or negedge nCR)begin if(~nCR) begin Q1<=32'd0; end else if(Q1>=32'd2*******) begin Q1<=32'd0; _1HZ=~_1HZ; end else begin Q1<=Q1+1'd1; end (2)、计数模块: 秒计数:在1HZ脉冲下进行秒计时,当计时达到59秒后,在下一个脉冲来临变0,并发出一个脉冲信号,可供下面分钟计数作为输入脉冲信号计时。 分钟计数:在输入脉冲下,分钟开始计时,当计时达到59后,在下一个脉冲来临变0,并发出一个脉冲,供小时计数的输入脉冲新号。 小时计数:脉冲信号来临时,计数加1,达到23后在下一个脉冲的作用下清零,从新计时。 如果有复位信号,则时分秒全部清零。 部分代码如下: module second(cp,reset,mode_flag,BT2,SH,SL,co); input cp,reset,BT2; input[3:0]mode_flag; output co=1'b0; //输出脉冲信号 reg co; output [3:0]SL,SH; //输出秒计时的十位、各位 reg[3:0]SH,SL; reg[7:0]cnt; always(posedge cp or negedge reset ) begin if(!reset) begin //有复位,清零 t<=8'd0;

Verilog数字系统设计-课程设计报告

Verilog HDL数字系统设计 课程设计 课题:RISC_CPU设计与验证 第一章:RISC_CPU概述(5 1.1课题的由来和设计环境介绍(5 1.2什么是CPU (5 第二章:RISC_CPU结构(6 2.1 RISC_CPU整体结构(6 2.2 时钟发生器(7 2.2.1 时钟发生器的介绍(7 2.2.2 时钟发生器symbol(8 2.2.3 时钟发生器RTL(8 2.2.4 时钟发生器源代码(8 2.2.5 时钟发生器测试代码(9 2.2.6 时钟发生器仿真波形(10 2.3指令寄存器(10 2.3.1 指令寄存器介绍(10 2.3.2 指令寄存器symbol(11 2.3.3 指令寄存器RTL(11

2.3.4 指令寄存器源代码(11 2.3.5 指令寄存器测试代码(12 2.3.6指令寄存器仿真波形(13 2.4 累加器(13 2.4.1 累加器介绍(13 2.4.2 累加器symbol(13 2.4.3 累加器RTL(14 2.4.4 累加器源代码(14 2.4.5 累加器仿真代码(14 2.4.6 累加器仿真波形(15 2.5 算术运算器(15 2.5.1 算术运算器介绍(15 2.5.2 算术运算器symbol(16 2.5.3 算术运算器RTL(17 2.5.4 算术运算器源代码(18 2.5.5 算术元算器测试代码(19 2.5.6 算术运算器仿真波形(20 2.6数据控制器(20 2.6.1 数据控制器介绍(20

2.6.2 数据控制器smybol(20 2.6.3 数据控制器RTL(21 2.6.4 数据控制器源代码(21 2.6.5 数据控制器测试代码(22 2.6.6 数据控制器仿真波形(22 2.7 地址多路器(22 2.7.1地址多路器介绍(22 2.7.2 地址多路器smybol(23 2.7.3 地址多路器RTL(23 2.7.5 地址多路器测试代码(23 2.7.6 地址多路器仿真波形(24 2.8程序计数器(24 2.8.1 程序计数器介绍(24 2.8.2 程序计数器symbol(25 2.8.3 程序计数器RTL(25 2.8.4 程序计数器源代码(25 2.8.5 程序计数器测试代码(26 2.8.6 程序计数器仿真波形(26 2.9 状态控制器(27

相关主题
相关文档
最新文档