请大神帮看看

2019-03-25 07:16发布

程序文件:module jp4x4(kbrow,seg7_out,scan,clk,start,kbcol);
output[3:0]kbrow;
output[6:0]seg7_out;
output[7:0]scan;

input[3:0]kbcol;
input clk,start;
reg[3:0]kbrow;
reg[6:0]seg7_out;
reg[7:0]scan;
reg[1:0]sta;
reg[6:0]seg7;
reg[4:0]dat;
reg[1:0]count;
reg fn;

initial scan<=8'b10000000;
always @(posedge clk)
begin
if(start==0)
seg7<=7'b0000000;
else
begin
  count<=count + 1;
  case(count)
  2'b00:begin kbrow<=4'b0001;sta<=2'b00;end
  2'b01:begin kbrow<=4'b0010;sta<=2'b01;end
  2'b10:begin kbrow<=4'b0100;sta<=2'b10;end
  2'b11:begin kbrow<=4'b1000;sta<=2'b11;end
  endcase
  case(sta)
  2'b00:begin
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
火影星飞
1楼-- · 2019-03-25 10:56
< / testbench文件:`timescale 1ns/1ns `define clock_period 20 module jp4x4_tb; reg[3:0]kbcol; reg clk,start;  wire[3:0]kbrow; wire[6:0]seg7_out; wire[7:0]scan;  jp4x4 uo(         .kbrow(kbrow),                   .seg7_out(seg7_out),                   .scan(scan),                   .clk(clk),                   .start(start),                   .kbcol(kbcol)         ); initial clk = 1'b1; always #(`clock_period/2) clk = ~clk;  initial begin           start = 1'b0;kbcol[0] =1'b0;kbcol[1] =1'b0;kbcol[2] =1'b0;kbcol[3] =1'b0;                     #(`clock_period);                     start = 1'b1;kbcol[0] =1'b1;kbcol[1] =1'b0;kbcol[2] =1'b0;kbcol[3] =1'b0;                     #(`clock_period);                     start = 1'b1;kbcol[0] =1'b0;kbcol[1] =1'b1;kbcol[2] =1'b0;kbcol[3] =1'b0;                     #(`clock_period);                     start = 1'b1;kbcol[0] =1'b0;kbcol[1] =1'b0;kbcol[2] =1'b1;kbcol[3] =1'b0;                          #(`clock_period);                     start = 1'b1;kbcol[0] =1'b0;kbcol[1] =1'b0;kbcol[2] =1'b0;kbcol[3] =1'b1;                     #(`clock_period*4);                     $stop;                   end  endmodule                                     
火影星飞
2楼-- · 2019-03-25 15:29
 精彩回答 2  元偷偷看……

一周热门 更多>