- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实用文档
标准
贵州大学实验报告
学院:电气工程学院 专业:测控技术与仪器 班级:测仪131
姓名
学号
实验组
实验时间
2016.12.2
指导教师
成绩
实验项目名称
4位数码管显示实验
实验目的
通过利用硬件设计语言veriloag设计4位数码管显示电路、理解 Quartus II平台进行硬件开发的方法、深入理解verilog语言及其设计方法。
实验要求
集中授课
实验原理
原理框图如下图4-1所示
FPGA控制数码管的动态扫描,采集数据和地址总线的数据,使能不同位的数码管,并将采集到的数据依次传送给段选译码模块,最后输出对应数字的段码,控制数码管显示对应总线的数据。
图4-1 原理框图
实验仪器
PC机、Quartus II软件、Keil μVision2软件
实验步骤
首先,制作1位数码管显示电路,用verilong语言写。
module seg7(clk,rst_n,data,seg,sel);
input clk;
input rst_n;
input [3:0]data;
output reg[7:0] seg;
output reg[2:0] sel;
always @ (posedge clk or negedge rst_n)
begin
if(!rst_n)
begin
sel= 0;
end
else
begin
sel= 0;
end
end
always @(*)
begin
if(!rst_n)
begin
seg=8b1111_1111;
end
else
begin
case(data)
0: seg=8b1100_0000;
1: seg=8b1111_1001;
2: seg=8b1010_0100;
3: seg=8b1011_0000;
4: seg=8b1001_1001;
5: seg=8b1001_0010;
6:seg=8b1000_0010;
7:seg=8b1111_1000;
8:seg=8b1000_0000;
9:seg=8b1001_0000;
10:seg=8b1000_1000;
11:seg=8b1000_0011;
12:seg=8b1100_0110;
13:seg=8b1010_0001;
14:seg=8b1000_0110;
15:seg=8b1000_1110;
default:seg=8b1111_1111;
endcase
end
end
endmodule
测试模块
`timescale 1 ns/ 1 ps
module seg7_tb;
reg clk;
reg [3:0] data;
reg rst_n;
wire [7:0] seg;
wire [2:0] sel;
initial
begin
clk=1;
rst_n=0;
data=10;
# 200.1
rst_n=1;
end
always # 10 clk = ~clk;
seg7 seg7(
.clk(clk),
.rst_n(rst_n),
.data(data),
.seg(seg),
.sel(sel)
);
Endmodule
2、例化元件
3、4位数码管的设计
Frep模块
module freq(
clk,
rst_n,
clk_1k
);
input clk;
input rst_n;
output reg clk_1k;
reg[19:0] count;
always @ (posedge clk or negedge rst_n)
begin
if (!rst_n)
begin
clk_1k =1;
count =0;
end
else
begin
if (count24999)
count =count+1;
else
文档评论(0)