基于FPGA的电子时钟设计

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

FPGA与电子CAD报告

班号:

序号:

学号:

姓名:

同组同学姓名:

--大学电气与新能源学院

第1章VHDL中的并行语句、进程

●并行语句:

VHDL语言与传统软件描述语言最大的不同,有多种语言格式,包括:并行信号赋值语句、进程语句、块语句、元件例化语句、生成语句、并行过程调用语句。各种并行语句在结构体中的执行是同步进行的,或者说是并行运行的,其执行方式与书写顺序无关。在执行中,并行语句之间可以有信息往来,也可以是互为独立、互不相关、异步运行的(如多时钟情况)。每一并行语句内部的语句运行方式可以有两种不同的方式,即并行执行方式(如块语句)和顺序执行方式(如进程语句)

●并行语句优点:

并行语句用来直接构成结构体,结构体具有层次性,简单易读。并行语句在结构体中的执行是同步进行的,或者说是并行运行的,其执行方式与书写的顺序无关。在执行中,并行语句之间可以有星系往来,也可以互为独立、互不相关。并行语句内部的语句运行方式有两种:并行执行方式(如块语句)和顺序执行方式(如进程语句)。

如:并行信号赋值语句块语句元件例化语句

●进程语句:

VHDL中最重要的语句,具有并行和顺序行为的双重性

进程和进程之间是并行关系

进程内部是一组连续执行的顺序语句

进程语句与构造体中的其余部分进行信息交流靠信号完成的

基本格式:

[进程标号:]

PROCESS[(信号敏感表)]IS

<说明区>

BEGIN

<顺序语句>

END PROCESS[进程标号];

第2章信号、变量、顺序语句、循环语句

●信号:

即数据对象中的信号,可代表连线、内连元件或端口用“<=”来给信号赋值SIGNAL

SIGNALCount:Bit_Vector(3downto0);

IFRising_Edge(clk)THEN

Count<=Count+1;

END IF;

信号在Package、Entity、Architecture中声明

●变量:

仅用于进程和子程序

必须在进程和子程序的说明性区域说明

不能表达连线和存储元件

保留字——VARIABLE

VARIABLEtmp:Bit;

tmp:‘1’;

●顺序语句:

每一条顺序语句的执行(指仿真执行)顺序是它们的书写顺序基本一致的顺序语句只能出现在进程(PROCESS)、函数(FUNCATION)和过程(PROCEDURE)中。

顺序语句包括::赋值语句、流程控制语句、等待语句、子程序调用语句、返回语句、空操作语句

●循环语句:

即LOOP语句

基本格式:

[LOOP标号:]

[重复模式]LOOP

顺序语句;

END LOOP[LOOP标号] NEXT

[LOOP标号][WHEN语句]

第3章分频器、计数器、译码器

分频器

分频器就是对较高频率的信号进行分频,得到较低频率的信号。

常见的分频器有二进制分频器、偶数分频器、奇数分频器、占空比可调的分频器和小数分频器。

分频系数(倍率)rate=f(in)/f(out)

计数器

模块电路图:

译码器:

第4章数字钟综合设计

设计流程图

数据选择器电路图:

延时去抖动模块电路:

时钟电路图

闹钟模块电路图:

定时器模块电路图:

秒表模块电路图:

程序

1.分频器

●1HZ,50M分频器程序

LIBRARY ieee;

USE ieee.std_logic_1164.all;

USE ieee.std_logic_unsigned.all;

entity jsq_1_37_38 is

port(clk : in std_logic;

carry : out std_logic);

end jsq_1_37_38;

architecture one of jsq_1_37_38 is

signal m :std_logic_vector(25 downto 0);

begin

process(clk,m)

begin

if clk'event and clk='1' then

if m=49999999 then

m<="00000000000000000000000000";carry<='1';

else

m<=m+1;carry<='0';

end if;

end if;

end process;

end;

●10HZ,5M分频器程序

LIBRARY ieee;

USE ieee.std_logic_1164.all;

USE ieee.std_logic_unsigned.all;

entity DELAY37_38 is

port(clk : in std_logic;

carry : out std_logic);

end DELAY37_38;

architecture one of DELAY37_38 is

signal m :std_logic_vector(25 downto 0);

begin

process(clk,m)

begin

if clk'event and clk='1' then

相关文档
最新文档