1 / 12
文档名称:

FPGA课程设计.doc

格式:doc   大小:301KB   页数:12
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

FPGA课程设计.doc

上传人:分享精品 2017/12/7 文件大小:301 KB

下载得到文件列表

FPGA课程设计.doc

文档介绍

文档介绍:西安欧亚学院
信息工程学院
FPGA系统开发设计报告
2013 / 2014 学年第二学期
设计题目: 基于VHDL的分频计设计
专业班级: 统本电信1201班
姓名学号: 李瑞洋
12620102154071
指导教师: 张秀芳
设计成绩:
设计任务及要求:
当系统正常工作时,由系统时钟提供的50MHz的输入信号,经过信号源模块,先通过100分频产生1MHZ的时钟信号,再将1MHZ的时钟信号分频产生多种频率输出,其中1HZ的输出频率被作为控制模块的时钟输入,7812HZ的输出频率被作为显示模块的时钟输入,由控制模块产生的计数使能信号testen和清零信号clr对计数模块进行控制,而由其产生的锁存信号load对锁存模块进行控制,一旦计数使能信号为高电平,并且时钟上升沿到来,计数器便开始正常计数,清零信号到来则计数清零,而当锁存信号为高电平时,数据便被锁存器锁存,然后将锁存的数据输出到显示模块显示出来,数据锁存保证系统可以稳定显示数据,显示译码驱动电路将二进制表示的计数结果转换成相应的能够在数码显示管上可以显示的十进制结果。在数码显示管上可以看到计数结果。数字频率计的原理框图如图所示。主要由5个模块组成,分别是:信号源模块、控制模块、计数模块、锁存器模块和显示器模块[6]
基本设计思路
t控制信号发生器。testctl的计数使能信号testen能产生一个1 s宽的周期信号,t10的ENA使能端进行同步控制:当testen高电平时允许计数、低电平时停止计数。
reg32b为锁存器。在信号load的上升沿时,立即对模块的输入口的数据锁存到reg32b的内部,并由reg32b的输出端输出,然后,七段译码器可以译码输出。在这里使用了锁存器,好处是可以稳定显示数据,不会由于周期性的清零信号而不断闪烁。
  Cnt10为十进制计数器。有一时钟使能输入端ENA,用于锁定计数值。当高电平时允许计数,低电平时禁止计数。t10级联起来实现8 位十进制计数功能[2,7] 。
  disply为七段译码显示驱动电路,可以将频率计数的结果译成能在数码管上显示的相对应的阿拉伯数字,便于读取测量的结果。
为了实现系统功能,测频控制信号发生器testctl、t10、锁存器reg32b存在一个工作时序的问题,设计时需要综合考虑。
8位数字频率计的顶层框图(),设计实现包括信号源模块(T)、频率计模块(FREQ)和显示模块(display)三大模块。下面分别介绍三个模块的结构和实现方法。

信号源模块的实现
功能简介
信号源是为了产生1MHz 的门控信号和待测的定频信号,而对输入系统时钟clk(50MHz)进行分频的模块, 对输入系统时钟clk(50MHz)进行分频产生1MHz 信号。
原程序
LIBRARY IEEE;
USE ;
USE ;
ENTITY PIN1MHZ_1 IS
PORT (clkin : IN STD_LOGIC;
clkout : OUT STD_LOGIC);
END PIN1MHZ_1;
ARCHITECTURE A OF PIN1MHZ_1 IS
BEGIN
PROCESS(clkin)
ttemp : INTEGER RANGE 0 TO 99;
BEGIN
IF clkin='1' AND clkin'event THEN
ttemp=99 ttemp:=0;
ELSE
ttemp<50 THEN clkout<='1';
ELSE clkout<='0';
END IF;
cnttemp:=cnttemp+1;
END IF;
END IF;
END PROCESS;
END A;
仿真波形
频率计模块的实现
功能简介
此程序要求将1MHZ的输入频率分别进行21分频(产生500KHZ的输出频freq500k)、23分频(产生125 KHZ的输出频率freq125k)、25 分频(产生31250HZ的输出频freq31250)、27分频(产生7812HZ的输出频率freq7812)、29分频(产生1953HZ的输出频率freq1953)、211分频(产生488HZ的输出频率freq488)、213分频(产生1HZ的输出频率freq1)。
原程序
library ieee;
use ;
use