|
发表于 2006-2-13 11:35:15
|
显示全部楼层
最近小作:Verilog版的dpll
我对IDcounter作的改动
module IDcounter ( IDclk, nrst, inc, dec, IDout );
inputIDclk;
inputnrst;
inputinc;
inputdec;
outputIDout;
reg[ 1 : 0 ]currentstates, nextstates;
regtmp;
always @ ( posedge IDclk or negedge nrst )
if ( ~ nrst )
currentstates <= 0;
else
currentstates <= nextstates;
always @ ( currentstates or inc or dec )
casex ( { currentstates, inc, dec } )
4'b0000:nextstates <= 1;
4'b0011:nextstates <= 1;
4'b0010:nextstates <= 0;
4'b0001:nextstates <= 3;
4'b0100:nextstates <= 0;
4'b0111:nextstates <= 0;
4'b0110:nextstates <= 2;
4'b0101:nextstates <= 1;
4'b10xx:nextstates <= 0;
4'b11xx:nextstates <= 1;
default:nextstates <= 1;
endcase
always @ ( currentstates )
casex ( currentstates )
2'b00:tmp <= 0;
2'b01:tmp <= 1;
2'b10:tmp <= 0;
2'b11:tmp <= 1;
default:tmp <= 0;
endcase
assign IDout = ( ~ IDclk ) & tmp;
endmodule |
|