1、4主要参考资料 131课程设计目的及主要内容1)运用数字系统的设计方法进行数字系统设计;2)能进行较复杂的数字系统设计;3)数字中的工作原理, 工作流程图与原理方框图, 自顶向下的数字系统设计方法。具体内容:设计一个电子秒表,给定时钟信号为 256HZ,要求系统达到以下功能:(1)用6个数码管分别显示时、分、秒, 计时范围为 :00: 00 : 00 23: 59 :59(2)计时精度是 1s。(3)具有启/ 停开关, 复位开关 , 可以在任何情况下使用。2设计模块2.1系统总体框图及功能设计2.1.1系统总体框图电子秒表的基本工作原理就是不断输出连续脉冲给加法计数器, 加法计数器 通过译码器
2、来显示它所记忆的脉冲周期个数。根据系统设计要求 , 系统的底层设计主要由六十进制计数器模块、二十四进制计数器模块、分频模块、 LED显示模块组成。系统顶层设计图如图 1 所示。图1 系统顶层设计图图1中左边为三个输入信号 en,clk ,reset ,分别为启动 / 停止开关,时钟信 号和复位开关。中间从上至下依次为 count24 ,count60 ,count60 ,fenpinqi 。 右边是clock1 和输出信号 wei3.0, led6.0 。2.1.2模块功能设计本系统由六十进制计数器模块、 二十四进制计数器模块、 分频模块执行计时 功能, 输入信号是 256 Hz,通过分频后为
3、 1hz,时钟信号是 1 Hz 作为秒表的秒输 入, 秒为60 进制计数器, 分也为60 进制计数器 , 小时采用二十四进制计数器 , 各级进位作为高位的使能控制。2.2六十进制计数器2.2.1六十进制计数器设计思路设计一个八位的六十进制计数器模块,输入信号为 en、reset 、clk ,分别为 使能、复位和时钟信号,输出信号为 qa3 0 、qb3 0 、rco ,分别为低 4 位 输出、高 4 位输出和进位。图 2 六十进制计数器示意图六十进制计数器模块部分 VHDL 源程序如下。LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_
4、logic_unsigned.ALL;ENTITY count60 ISPORT( en,Reset,clk: in STD_LOGIC;qa: out STD_LOGIC_VECTOR(3 DOWNTO 0); qb: rco: OUT STD_LOGIC);END count60;ARCHITECTURE a OF count60 ISBEGINprocess(clk)variable tma: STD_LOGIC_VECTOR(3 DOWNTO 0); variable tmb: beginIf Reset =0then tma:=0000; tmb:elsif clkevent and
5、 clk=1 thenif en=rco=tmb(2)and tmb(0)and tma(3)and tma(0);if tma=1001 then tma:if tmb=0101 then tmb:else tmb:=tmb+1;end if;else tma:=tma+1;qa=tma;qb=tmb;end process;END a;2.2.2六十进制计数器仿真结果六十进制计数器模块部分仿真结果如下图 3图 3 六十进制计数器仿真波形图CLK :时钟信号RST :复位信号 低电平清零En :置数端 低电平不让它继续计数 qb、qa:分别为输出数的十位个位, qb 取值范围为 0-5 ,q
6、a 取值范围为 0-9 rco :进位信号,当 qb=5,qa=0, rco=0 时,clk 上升沿来到后,qb=0, qa=0, rco=1 ; 当 qb=5,qa=0, rco=1 时,clk 上升沿来到后,qb=0, qa=0, rco=0 。2.3二十四进制计数器2.3.1二十四进制计数器设计思路设计一个八位的二十四进制计数器模块,输入信号为 en、reset 、clk ,分别为使能、复位和时钟信号,输出信号为 qa3 0 、qb3 0 ,分别为低 4 位 输出、高 4 位输出。图 4 二十四进制计数器示意图二十四进制计数器模块部分 VHDL 源程序如下。ENTITY count24
7、IS PORT( en,Reset,clk: out STD_LOGIC_VECTOR(3 DOWNTO 0);END count24;ARCHITECTURE a1 OF count24 ISbeginIf Reset = else if clktmb:elsif tmb=0010 and tma=0011END a1;2.3.2二十四进制计数器仿真结果二十四进制计数器模块部分仿真结果如下图 5图 5 二十四进制计数器仿真波形图置数端 低电平不让它继续计数qb 、qa:输出的四位二进制数,分别对于要输出数的十位个位2.4分频器2.4.1分频器设计思路分频器原理:输入一个较高的频率,比如 75
8、0kHz,则设计算法,使得每输 入 7500 个脉冲输出一个脉冲,这样输出端口就提供一个 100Hz 的频率。输入信 号为 clk 和 rst ,分别为时钟信号和复位信号,输出信号为 clk_out ,为分频器 1HZ的时钟信号输出。图 6 分频器示意图分频器模块部分 VHDL 源程序如下。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY fenpinqi ISPORT (CLK,RST:in std_logic;CLK_OUT:out std_logic);END fenpinqi;
9、ARCHITECTURE behav OF fenpinqi IS signal clk_data:std_logic;SIGNAL CNT6 : INTEGER := 0;PROCESS(CLK)IF RST = THEN CNT6=0 ;ELSIF CLKEVENT AND CLK= THENIF CNT6=2 THEN clk_data=NOT clk_data;CNT6=0; ELSE CNT6=CNT6+1;END IF;CLK_OUT=clk_data;END PROCESS; END behav;2.4.2分频器仿真结果图 7 分频器仿真波形图输入分频前的时钟信号Clkout :
10、输出分频后的时钟信号2.5LED 显示2.5.1LED 显示模块设计思路LED有着显示亮度高,响应速度快的特点,最常用的是七段式 LED显示器,又称数码管。七段 LED显示器内部由七个条形发光二极管和一个小圆点发光二极 管组成,根据各管的亮暗组合成字符。LED数码管的 ga 七个发光二极管因加正电压而发亮,因加零电压而不能 发亮,不同亮暗的组合就能形成不同的字形, 这种组合称之为字形码 ( 段码),如 显示” 0”, 字形码为 3fh 。数码管的接口有静态接口和动态接口。 动态接口采用各数码管循环轮流显示 的方法,当循环显示频率较高时, 利用人眼的暂留特性 ,看不出闪烁显示现象, 这种显示需要
11、一个接口完成字形码的输出 (字形选择 ) ,另一接口完 成各数码管的轮流点亮 (数位选择 )将二十四进制计数器和 2 个六十进制计数器的输出作为 LEDA显示模块的输 入,在时钟信号的控制下通过此模块完成 6 个 LED 数码管的显示,输出信号为 WEI20和 LED60 ,分别为位选信号和段码输出。图 8 LED 显示示意图图 9 LED 数码管结构图LED 显示模块部分 VHDL 源程序如下。ENTITY clock1 ISPORT(CLK: IN STD_LOGIC;S1, S2, S3, S4, S5, S6: IN STD_LOGIC_VECTOR(3 DOWNTO 0);WEI:
12、OUT STD_LOGIC_VECTOR(2 DOWNTO 0);LED: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END ENTITY;ARCHITECTURE behave OF clock1 IS INTEGER RANGE 0 TO 5 :SIGNAL SHUJU:BEGIN PRO1:PROCESS(CLK) BEGINIF CLKEVENT AND CLK = THEN CNT6 WEI = 000 SHUJU 001= S2;WHEN 2 =010= S3;WHEN 3 =011= S4;WHEN 4 =100= S5;WHEN 5 =101= S6;
13、WHEN OTHERS = NULL;END CASE;PRO2: PROCESS(SHUJU)CASE SHUJU ISWHEN = LED0000000 END CASE;END ;2.5.2LED 显示模块仿真结果LED 显示模块部分仿真结果如下图 10图 10 LED 显示模块仿真波形图Clk :s1 ,s2,s3,s4,s5,s6: 输入的的四位二进制数led :输出的七位二进制数,对应数码管脚的输出 gfedcbawei: 输出的三位而进制数(输出范围为 000-101),控制led 输出, 当wei=000时, led 输出s1对应的十进制数的数码管脚 gfedcba 当wei=
14、001时, led 输出s2对应的十进制数的数码管脚 gfedcba 当wei=010时, led 输出s3对应的十进制数的数码管脚 gfedcba 当wei=011时, led 输出s4对应的十进制数的数码管脚 gfedcba 当wei=100时, led 输出s5对应的十进制数的数码管脚 gfedcba 当wei=101时, led 输出s6对应的十进制数的数码管脚 gfedcba2.6顶层仿真2.7顶层仿真仿真波形如下图 11图 11 顶层仿真仿真波形CLK:RST:En:输出的七位二进制数,对应数码管脚的输出 gfedcba wei: 输出的三位而进制数(输出范围为 000-101),
15、控制led 输出, 当wei=000时, led 输出对于秒钟的个位 当wei=001时, led 输出对于秒钟的十位 当wei=010时, led 输出对于分钟的个位 当wei=011时, led 输出对于分钟的十位 当wei=100时, led 输出对于时钟的个位 当wei=101时, led 输出对应时钟的十位3课程设计总结通过本次课程设计, 把 EDA课堂上学习的硬件描述语言应用到了实际, 巩固 了已经学到的东西, 并对它有了更深层次的理解。 实际操作让我了解了实际操作 方面的应用。我认识到完成一个复杂的工程需要通过模块。对数字秒表的设计, 可由 60进制计数器、 24进制计数器、分频
16、器、 LED显示 4个模块组成。在每个 模块的设计思路和过程上都要清晰和明确, 再分布完成仿真, 得到想要的正确仿 真结果。在整个设计过程之中细心十分重要, 特别是当编译出错或仿真结果不正 确时需要细心检查,看是源程序的程序错误还是编译的对象错误等等。完成此次课程设计后, 我学习到了许多东西: 逻辑思维能力和动手能力得到 提高,同时加深了理解 EDA开发软件 QuartusII 的认识,对于 VHDL语言的应用 有了进一步的理解和掌握, 还有在对一些设计的思路上有所领悟。 这些对我的学 习都有一定的好处,对于我的思维开阔也有所帮助。本次设计的完成, 对我来说也是一种肯定, 是一种提高。 在以后
17、的实际生活 中本次课程设计的理念也是一种参考。4主要参考资料1杨晖大规模可编程逻辑器件与数字系统设计 北京: 北京航空航天大学出 版社, 20102任爱锋基于 FPGA的嵌入式系统设计西安: 西安电子科技大学出版社, 20113杨恒 FPGA/CPLD最新实用技术指南北京:清华大学出版社, 20104王锁萍电子设计自动化( EDA)教程成都:电子科技大学出版社, 20095路而红电子设计自动化应用技术北京:北京希望电子出版社, 20096潘松 VHDL实用教程 . 成都:电子科技大学出版社, 2010课程设计成绩评定表成绩 评 定项目比例得分平时成绩(百分制记分)30%业务考核成绩(百分制记分)70%总评成绩(百分制记分)100%评定等级优 良 中 及格 不及格指导教师(签名) :20 年 月 日
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1