quarter ii 4位数码管显示实验_第1页
quarter ii 4位数码管显示实验_第2页
quarter ii 4位数码管显示实验_第3页
quarter ii 4位数码管显示实验_第4页
quarter ii 4位数码管显示实验_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、贵州大学实验报告学院:电气工程学院 专业:测控技术与仪器 班级:测仪131姓名学号实验组实验时间2016.12.2指导教师成绩实验项目名称4位数码管显示实验实验目的通过利用硬件设计语言veriloag设计4位数码管显示电路、理解 Quartus II平台进行硬件开发的方法、深入理解verilog语言及其设计方法。实验要求集中授课实验原理原理框图如下图4-1所示 FPGA控制数码管的动态扫描,采集数据和地址总线的数据,使能不同位的数码管,并将采集到的数据依次传送给段选译码模块,最后输出对应数字的段码,控制数码管显示对应总线的数据。图4-1 原理框图实验仪器PC机、Quartus II软件、Kei

2、l Vision2软件实验步骤1、 首先,制作1位数码管显示电路,用verilong语言写。module seg7(clk,rst_n,data,seg,sel);input clk;input rst_n;input 3:0data;output reg7:0 seg;output reg2: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=8

3、'b1111_1111; end else begin case(data) 0: seg=8'b1100_0000; 1: seg=8'b1111_1001; 2: seg=8'b1010_0100; 3: seg=8'b1011_0000; 4: seg=8'b1001_1001; 5: seg=8'b1001_0010; 6:seg=8'b1000_0010; 7:seg=8'b1111_1000; 8:seg=8'b1000_0000; 9:seg=8'b1001_0000; 10:seg=8

4、9;b1000_1000; 11:seg=8'b1000_0011; 12:seg=8'b1100_0110; 13:seg=8'b1010_0001; 14:seg=8'b1000_0110; 15:seg=8'b1000_1110; default:seg=8'b1111_1111; endcase end end endmodule测试模块timescale 1 ns/ 1 psmodule seg7_tb;reg clk;reg 3:0 data;reg rst_n; wire 7:0 seg;wire 2:0 sel;initial b

5、eginclk=1;rst_n=0;data=10;# 200.1rst_n=1;endalways # 10 clk = clk; seg7 seg7( .clk(clk), .rst_n(rst_n),.data(data),.seg(seg),.sel(sel); Endmodule2、例化元件3、4位数码管的设计Frep模块module freq( clk, rst_n, clk_1k ); input clk; input rst_n; output reg clk_1k; reg19:0 count; always (posedge clk or negedge rst_n) be

6、gin if (!rst_n) begin clk_1k <=1; count <=0; end else begin if (count<24999) count <=count+1; else begin count<=0;clk_1k<=clk_1k;endendendendmoduleSeg7模块module SEG7( clk, rst_n, data, seg, sel ); input clk; input rst_n; input 15:0 data; output reg 7:0 seg; output reg2:0 sel; reg 3:

7、0 data_temp; reg 2:0 state; always (posedge clk or negedge rst_n) begin if(!rst_n) begin sel<=0;data_temp<=0; state<=0;endelse begin case(state) 0 : beginsel<=0;data_temp<=data15:12;state<=1; end 1: begin sel<=1; data_temp<=data11:8; state<=2; end 2:begin sel<=2; data_t

8、emp<=data7:4; state<=3; end 3:begin sel<=4; data_temp<=data3:0; state<=4; end default : state<=0; endcaseendend always (*) begin if(!rst_n) begin seg = 8'b1111_1111;endelse begin case(data_temp) 0: seg=8'b1100_0000; 1: seg=8'b1111_1001; 2: seg=8'b1010_0100; 3: seg=8

9、'b1011_0000; 4: seg=8'b1001_1001; 5: seg=8'b1001_0010; 6:seg=8'b1000_0010; 7:seg=8'b1111_1000; 8:seg=8'b1000_0000; 9:seg=8'b1001_0000; 10:seg=8'b1000_1000; 11:seg=8'b1000_0011; 12:seg=8'b1100_0110; 13:seg=8'b1010_0001; 14:seg=8'b1000_0110; 15:seg=8'

10、;b1000_1110; default:seg = 8'b1111_1111; endcase end end endmoduleTop模块module top( clk, rst_n, data, seg, sel ); input clk; input rst_n; input 15:0 data; output 7:0 seg; output 2:0 sel; wire clk_1k; freq freq ( .clk(clk), .rst_n(rst_n), .clk_1k(clk_1k) );SEG7 SEG7( .clk(clk_1k), .rst_n(rst_n), .

11、data(data), .seg(seg), .sel(sel) ); endmodule测试模块timescale 1 ns/ 1 psmodule top_vlg_tst();/ constants / general purpose registersreg eachvec;/ test vector input registersreg clk;reg 15:0 data;reg rst_n;/ wires wire 7:0 seg;wire 2:0 sel;/ assign statements (if any) top top (/ port map - connection between master ports and signals/registers .clk(clk),.data(data),.rst_n(rst_n),.seg(seg),.sel(sel);initial begin clk=1;rst_n=0;data=15h123456;#200.1rst_n=1; endalways #10 clk=clk; endmodule4、4位数码管的例化实验内容设计一个4位数码管显示电路:要求在Quartus II软件平台上用veril

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论