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

2019-03-04 10:33

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

.vga_b(vga_b) ); Endmodule //计算器模块 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; output [15:0] buff;

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

output[7:0] ps2_byte; // 1byte键值,只做简单的按键扫描

output ps2_state; //键盘当前状态,ps2_state=1表示有键被按下

//------------------------------------------ reg ps2k_clk_r0,ps2k_clk_r1,ps2k_clk_r2; //ps2k_clk状态寄存器

- 16 -

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

//wire pos_ps2k_clk; // ps2k_clk上升沿标志位 wire neg_ps2k_clk; // ps2k_clk下降沿标志位 //====================================== reg clk3;

always @ (posedge clk2) begin

clk3 <= !clk3; end

//===================================

always @ (posedge clk2 or negedge rst_n) begin if(!rst_n) begin

ps2k_clk_r0 <= 1'b0; ps2k_clk_r1 <= 1'b0; ps2k_clk_r2 <= 1'b0; end

else begin //锁存状态,进行滤波 ps2k_clk_r0 <= ps2k_clk; ps2k_clk_r1 <= ps2k_clk_r0;

- 17 -

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

ps2k_clk_r2 <= ps2k_clk_r1; end end

assign neg_ps2k_clk = ~ps2k_clk_r1 & ps2k_clk_r2; //下降沿

//------------------------------------------ reg[7:0] ps2_byte_r; //PC接收来自PS2的一个字节数据存储器

reg[7:0] temp_data; //当前接收数据寄存器 reg[3:0] num; //计数寄存器

always @ (posedge clk2 or negedge rst_n) begin if(!rst_n) begin num <= 4'd0; temp_data <= 8'd0; end

else if(neg_ps2k_clk) begin //检测到ps2k_clk的下降沿

case (num)

4'd0: num <= num+1'b1; 4'd1: begin

- 18 -

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

num <= num+1'b1;

temp_data[0] <= ps2k_data; //bit0 end 4'd2: begin

num <= num+1'b1;

temp_data[1] <= ps2k_data; end 4'd3: begin

num <= num+1'b1;

temp_data[2] <= ps2k_data; end 4'd4: begin

num <= num+1'b1;

temp_data[3] <= ps2k_data; end 4'd5: begin

num <= num+1'b1;

temp_data[4] <= ps2k_data; end 4'd6: begin

num <= num+1'b1;

temp_data[5] <= ps2k_data; end

- 19 -

//bit1 //bit2 //bit3 //bit4 //bit5

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

4'd7: begin

num <= num+1'b1;

temp_data[6] <= ps2k_data; //bit6 end 4'd8: begin

num <= num+1'b1;

temp_data[7] <= ps2k_data; //bit7 end 4'd9: begin

num <= num+1'b1; //奇偶校验位,不做处理

end 4'd10: begin

num <= 4'd0; // num清零 end default: ; endcase end end

reg key_f0; //松键标志位,置1表示接收到数据8'hf0,

- 20 -


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

下一篇:被猎头公司淘汰的八类人才

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

马上注册会员

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