第一范文网 - 专业文章范例文档资料分享平台

数电实验自主设计—哈工大 (2)

来源:用户分享 时间:2020-06-21 本文由紫禁王者 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

数字电子技术基础设计作业

图2实验一仿真波形图

(2)实验二:显示译码电路(HIT05108) Verilog程序:

module da2( input [2:0] s, output reg[7:0] dl

);

//s表示8种输入;dl控制8段数码管

always@(s) begin

case(s)

3'b000:dl=8'b10010001; 3'b001:dl=8'b11110111; 3'b010:dl=8'b11100001; 3'b011:dl=8'b10011111; 3'b100:dl=8'b00000011; 3'b101:dl=8'b01001001; 3'b110:dl=8'b00000011; 3'b111:dl=8'b00000001; endcase

6

//s输入为0,数码管显示H //s输入为1,数码管显示I //s输入为2,数码管显示T //s输入为3,数码管显示1 //s输入为4,数码管显示0 //s输入为5,数码管显示5 //s输入为6,数码管显示0 //s输入为7,数码管显示8

数字电子技术基础设计作业

end

endmodule

管脚约束文件:

NET \NET \NET \NET \NET \NET \NET \NET \NET \NET \NET \

仿真波形:

图3实验二仿真波形图

7

数字电子技术基础设计作业

(3)实验三:数字钟 Verilog程序:

//顶层模块

module clock_top(clk,duan,wei ); input clk; output[7:0] duan; output[3:0] wei; wire clk_1Hz,clk_190Hz; wire[15:0] disp;

clock_divf U1(.clk_50MHz(clk),.clk_1Hz(clk_1Hz),.clk_190Hz(clk_190Hz)); clock_time U2(.clk_1Hz(clk_1Hz),.time_MS(disp));

IP_smg_dsp U3(.clk_190Hz(clk_190Hz),.dat(disp),.duan(duan),.wei(wei)); endmodule

//分频模块,得到1Hz,用于秒计数;得到190Hz,用于控制数码管显示 //190Hz:这是4个数码管可以同时稳定显示的最低2n分频频率 module clock_divf(clk_50MHz,clk_1Hz,clk_190Hz); input clk_50MHz; output clk_190Hz; output reg clk_1Hz; reg[25:0] cnt;

assign clk_190Hz=cnt[17]; always@(posedge clk_50MHz) if(cnt==25000000) //实际项目用,1s变化1次

// if(cnt==250000)

//测试用,加快100倍分钟/秒的变化

begin

cnt=0;

8

数字电子技术基础设计作业

clk_1Hz=~clk_1Hz;

end

else cnt=cnt+1;

endmodule

//计时模块,得到分和秒

module clock_time(clk_1Hz,time_MS); input clk_1Hz; output[15:0] time_MS; reg[3:0] M_H,M_L,S_H,S_L; reg clk_SH,clk_ML,clk_MH;

assign time_MS={M_H,M_L,S_H,S_L}; always@(posedge clk_1Hz)begin

if(S_L==9)begin S_L=0; clk_SH=1;

end else begin S_L=S_L+1; clk_SH=0; end

end

always@(posedge clk_SH)begin if(S_H==5)begin S_H=0; clk_ML=1;

end else begin

S_H=S_H+1;

//时间:分、秒//秒:个位

//秒:十位

9

数字电子技术基础设计作业

clk_ML=0;

end

end

always@(posedge clk_ML)begin if(M_L==9)begin M_L=0; clk_MH=1;

end else begin M_L=M_L+1; clk_MH=0; end

end

always@(posedge clk_MH)begin if(M_H==5)M_H=0; else M_H=M_H+1;

end endmodule

//4个数字扫描显示模块

module IP_smg_dsp(clk_190Hz,dat,duan,wei); input clk_190Hz; input[15:0]dat; output reg[7:0]duan; output reg[3:0]wei; reg[3:0]disp; reg[1:0]smg_ctl;

always@(posedge clk_190Hz)begin

//分钟:个位

//分钟:十位

10

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新小学教育数电实验自主设计—哈工大 (2)全文阅读和word下载服务。

数电实验自主设计—哈工大 (2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1090720.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top