|
楼主 |
发表于 2012-3-31 09:28:58
|
显示全部楼层
本帖最后由 zhanshenguilai 于 2012-3-31 14:57 编辑
lixiangwen 发表于 2012-3-31 09:04
先说说你为啥没有成功哈?
我认为用clk2做时钟脉冲,低速的那个用中断 判断 ...
我想的大体结构是这样的,但是Start信号由clk1 产生,没有办法从clk2清零, 不能在两个always内对Start 赋值:
/**********************************/
module test_module
(
clk1,clk2,RSTn,Done
);
input clk1;
input clk2;
input RSTn;
output Done
reg Start ;
reg [3:0] i ;
always@(posedge clk1 or negedge RSTn )
if(!RSTn) begin
Start <= 1'b0;
end
else begin
Start <= 1'b1;
end
always@(posedge clk2 or negedge RSTn )
if(!RSTn) begin
i <= 1'b0;
end
else if(Start) begin
case(i)
0,1,2,3...:
i <= i+1'b1 ;
n-1: begin
Start <= 1'b0;
Done <= 1'b1;
i <= i+1'b1 ;
end
n: begin
Done <= 1'b0;
i <= 1'b0;
end
endcase
end
endmodule
/**********************************/
|
|