|
发表于 2012-3-25 12:36:26
|
显示全部楼层
本帖最后由 kebaojun305 于 2012-3-25 13:30 编辑
- module help(wr,clk,in,out,rst,test,test1);
- input clk,rst,wr;
- input[20:0] in;
- output[20:0] out;
- reg[20:0] out;
- // test port
- output[4:0] test;
- wire[4:0] test;
- assign test=bit_count;
- output test1;
- wire test1;
- assign test1=bit_det_start;
- //test port end
- reg[4:0] bit_count;
- reg bit_det_start;//
- reg[20:0] in_buff;//
- reg r0,r1;
- always@(posedge clk or negedge rst)
- begin
- if(!rst) begin
- r0<=1'b0;
- r1<=1'b0;
- end
- else
- begin
- r0<=wr;
- r1<=r0;
- end
-
- end
- wire bit_start;
- assign bit_start=(~r1)&r0;
- reg bit_val;
- always@(posedge clk or negedge rst )
- begin
- if(!rst) begin
- bit_count<=5'b00000;
- bit_det_start=1'b0;
- end
- else
- begin
- if(bit_det_start)
- begin
- in_buff=in_buff>>1;
- in_buff[20]<=1'b0;
- if(in_buff[0])
- bit_count<=bit_count+1'b1;
- else
- begin
- bit_det_start=1'b0;
- end
- end
- else
- begin
- if(bit_start) begin
- bit_det_start<=1'b1;
- bit_count<=5'b00000;
- in_buff<=in;
- end
- end
- end
- end
- always @(negedge bit_det_start or negedge rst)
- begin
- if(!rst)
- out<=21'b000000000000000000000;
- else
- case(bit_count)
- 5'd0: out<=21'b111111111111111111100;
- 5'd1: out<=21'b111111111111111111001;
- 5'd2: out<=21'b111111111111111110011;
- 5'd3: out<=21'b111111111111111100111;
- 5'd4: out<=21'b111111111111111001111;
- 5'd5: out<=21'b111111111111110011111;
- 5'd6: out<=21'b111111111111100111111;
- 5'd7: out<=21'b111111111111001111111;
- 5'd8: out<=21'b111111111110011111111;
- 5'd9: out<=21'b111111111100111111111;
- 5'd10: out<=21'b111111111001111111111;
- 5'd11: out<=21'b111111110011111111111;
- 5'd12: out<=21'b111111100111111111111;
- 5'd13: out<=21'b111111001111111111111;
- 5'd14: out<=21'b111110011111111111111;//没有写完
- default:;
- endcase
- end
- endmodule
复制代码 调了大约3个小时 终于调试好了 已经仿真通过 现附上 源程序和工程文档 工程文档是 quartus 11.1 sp1 仿真软件 ModelSim-Altera 10.0c
后面2个端口是测试端口 test 和test1 wr是输入信号的锁存信号 上升沿信号锁存 clk是处理时钟 in是21位数据输入 out是21位数据输出,rst是复位信号,解码时间最长要22个时钟周期。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|