数电课程设计--简易两位数计数器(2)

2019-08-30 13:47

西北工业大学 电子信息学院 08021103班

计算器部分:

计算器程序分为四个模块,其中一个模块为顶层模块,通过实例化其他三个模块来实现电路的功能。四个模块分别是PS2键盘输入及四则运算、数码管显示、VGA输出、顶层结合模块。

PS2 键盘 输入 及 四则 运算

运算结果分位 数码管显示 VGA输出 四、 单元电路设计与参数计算

a)学号显示:

module xuehao (jpsr,clk_in,sml0,sml1,sml2,sml3,switch); input [31:0] jpsr; //键盘输入运算数字的存储 inout switch; //功能切换的开关 input clk_in; //时钟信号

output [7:0] sml0,sml1,sml2,sml3; //数码管输出寄存

- 6 -

西北工业大学 电子信息学院 08021103班

b)计算器

1、键盘输入数字及四则运算:

module Verilog1(clk2,rst_n,ps2k_clk,ps2k_data,ps2_byte,ps2_state,sm_db,buff,clk3); input clk2; //50M时钟信号 input rst_n; //复位信号 input ps2k_clk; //PS2接口时钟信号 input ps2k_data; //PS2接口数据信号 output clk3; //25MHz时钟信号 output [15:0] buff; //计算结果寄存

output[31:0] sm_db; //7段数码管寄存器

output[7:0] ps2_byte; // 1byte键值,只做简单的按键扫描 output ps2_state; //键盘当前状态,ps2_state=1表示有键被按下

2、运算结果分位:

module sy3(sml,smlq,smlb,smls,smlg); input [15:0] sml; //四则运算结果

output [15:0] smlq,smlb,smls,smlg; //分位存储运算结果

- 7 -

西北工业大学 电子信息学院 08021103班

3、VGA显示:

module vga( sml000,sml111,sml222,sml333,clk , rst_n, hsync,vsync,vga_r,vga_g,vga_b); input [15:0] sml000,sml111,sml222,sml333; input clk; //50MHz input rst_n; //低电平复位 output hsync; //行同步信号 output vsync;

//颜色信号线RGB output vga_r; output vga_g; output vga_b;

- 8 -

西北工业大学 电子信息学院 08021103班

4、顶层模块:

module

top(clk,clk2,rst_n,ps2k_clk,ps2k_data,sml0,sml1,sml2,sml3,hsync,vsync,vga_r,vga_g,vga_b,switch) input clk2,clk; //50M时钟信号 input rst_n; //复位信号 input ps2k_clk; //PS2接口时钟信号 input ps2k_data; //PS2接口数据信号 input switch; //功能切换的开关

output[7:0] sml0,sml1,sml2,sml3; //数码管输出寄存 output hsync; //行同步信号 output vsync; //场同步信号 //颜色信号线RGB output vga_r; output vga_g; output vga_b; wire clk3; wire [15:0] buff;

wire [3:0] smlq,smlb,smls,smlg; wire [31:0] sm_db;

xuehao xuehao ( .switch(switch), .jpsr(sm_db), .clk_in(clk3), .sml0(sml0), .sml1(sml1), .sml2(sml2), .sml3(sml3) );

Verilog1 Verilog1( .clk2(clk2), .clk3(clk3), .rst_n(rst_n),

.ps2k_clk(ps2k_clk), .ps2k_data(ps2k_data), .ps2_byte(ps2_byte), .ps2_state(ps2_state), .sm_db(sm_db), .buff(buff) ); sy3 sy3(.sml(buff), .smlq(smlq), .smlb(smlb), .smls(smls), .smlg(smlg) );

vga vga( .clk(clk) ,

- 9 -

西北工业大学 电子信息学院 08021103班

.sml000(smlq), .sml111(smlb), .sml222(smls),

.sml333(smlg), .rst_n(rst_n), .hsync(hsync), .vsync(vsync), .vga_r(vga_r), .vga_g(vga_g), .vga_b(vga_b) ); endmodule

计算器总框图:

五、遇到问题的解决方法

1. 从未接触过Verilog HDL语言,对于开发板编程一窍不通。通过学习查阅资料,了解了这门语言的基本概念,再经过实际操作演练,熟悉了编程的流程。现在已经可以看懂实例并运用开发。

2. 在调试程序时,很多次运行成功但是无法得到应有的结果,检查程序发现,寄存变量的位数经常不匹配,导致无法得到正确结果。

- 10 -


数电课程设计--简易两位数计数器(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:线路铁塔基础作业指导书

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: