华中科技大学数字逻辑课程设计1 - 图文

发布时间 : 星期三 文章华中科技大学数字逻辑课程设计1 - 图文更新完毕开始阅读

华中科技大学课程设计报告

2

2.1 电子钟设计

2.1.1 目的

(1)掌握较复杂的逻辑设计和调试

(2)学习用原理图+Verilog HDL语言设计逻辑电路; (3)学习数字电路模块、层次设计; (4)掌握Vivado软件的使用方法; (5)熟悉FPGA器件的使用。 2.1.2 内容

(1)设计并利用Nexys4 开发板来实现一个电子钟,它具有下述功能: a. 开发板上的6个7段数码管显示:时、分、秒; b. 能使电子钟复位(清零); c. 能启动或者停止电子钟运行;

d. 在电子钟停止运行状态下,能够修改时、分、秒的值; e. 具有整点提示功能。 (2)要求整个设计为模块化

系统分为若干模块,参见图2-1所示。

(3)将设计的代码下载到开发板上验证设计的正确性。 2.1.3 设计思路

本设计要求顶层采用原理图设计,各底层均采用Verilog HDL设计,参见图2-2所示。 (1)时钟用一个模24的计数器来实现;

6位7段数码管显示:时、分、秒 基本方案设计

FPGA 9 整点提示信号

华中科技大学课程设计报告

图2-1 电子钟的系统框图

(2)分钟和秒钟要求分别用一个模60的计数器来实现;

(3)要实现自动计时,则需要利用开发板提供的100Mhz提供脉冲,还需要一个分频的模块dclk,使其吻合时钟速度;

(4)整点提示功能则用一个ring的模块实现,分钟进位时开始计数从而实现提示5秒。

clock60 (分钟和秒钟计数) 各底层 dclk (分频,提供1Hz的时钟脉冲) ring (实现整点提示) 图2-2 电子钟模块图

2.1.4 代码实现

顶层模块首先要设计系统的原理图,然后用VerilogHDL实现它,底层各模块均采用VerilogHDL语言设计。

电子钟顶层原理图,参见图2-3所示。

clock24 (时钟计数)

clock(顶层模块)

10

华中科技大学课程设计报告

图2-3 电子钟顶层原理图

(1)顶层模块clock(用于整合整个时钟系统)Verilog代码 见同组

(2)底层模块clock24(用于时钟计时、校时及显示)Verilog代码

程序2-1:底层模块clock24(用于时钟计时、校时及显示)Verilog代码 module clock24(clk,cp,clkh,hclr,hclk,htiming,sub,co,noon,y0,y1); input clk,clkh,hclr,hclk,htiming,sub,cp; output reg co,noon; output reg [3:0]y0; output reg [3:0]y1; reg cp_d;

initial begin co=0; noon=0;y0=0;y1=0; end

always @(posedge clk) //较高频时钟信号 begin cp_d<=cp;

if(htiming==1) //暂停且增加 begin y0=y0+1;

11

华中科技大学课程设计报告

if(y0==10) begin y0=0;y1=y1+1; end

if(y1==2&&y0==4) begin y1=0;y0=0;; end end

else if(sub==1) //暂停且减少 begin

if(y1==0&&y0==0) begin y1=2;y0=3; end

else if(y0==0) begin y0=9;y1=y1-1; end

else y0=y0-1; end if(!cp_d&&cp) begin

co=0;

if (hclr==1) //清零 begin

co=0; noon=0;y0=0;y1=0; end

else if((clkh)&&(hclk==0)) //暂停信号为0且来自分钟的进位为1 begin y0=y0+1;

if(y0==10) begin y0=0;y1=y1+1; end

if(y1==2&&y0==4) begin y1=0;y0=0;co=1; end end end end endmodule (3)底层模块clock60(用于分钟、秒钟的计时与校时)Verilog代码 见同组

(4)底层模块dclk3(用于提供1Hz脉冲)Verilog代码 程序2-2:底层模块dclk3(降频提供1hz脉冲)Verilog代码 module dclk3(input high,output reg low); //降频模块 reg [100:0] counter;

initial begin low=0;counter=0; end

always @ (posedge high) //高频信号上升沿

12

联系合同范文客服:xxxxx#qq.com(#替换为@)