?? controller.v
字號:
active_SYN = 1;
active_BM = 0;
active_CHIEN = 0;
evalsynd = 0;
errfound = 0;
decode_fail = 0;
en_outfifo = 1;
end
st1_14:begin
ready = 1;
active_SYN = 0;
active_BM = 0;
active_CHIEN = 0;
evalsynd = 0;
errfound = 0;
decode_fail = 0;
en_outfifo = 1;
end
default:begin
ready = 1;
active_SYN = 0;
active_BM = 0;
active_CHIEN = 0;
evalsynd = 0;
errfound = 0;
decode_fail = 0;
en_outfifo = 0;
end
endcase
end
always@(posedge clock2 or negedge reset)
begin
if(~reset)
state2 = st2_0;
else
state2 = nxt_state2;
end
always@(state2 or active_SYN or cntdatain or lastdataout or en_outfifo)
begin
case(state2)
st2_0 : begin
if(active_SYN)
nxt_state2 = st2_1;
else
nxt_state2 = st2_0;
end
st2_1 : begin
if(cntdatain == 5'b11110)
nxt_state2 = st2_2;
else
nxt_state2 = st2_1;
end
st2_2 : nxt_state2 = st2_3;
st2_3 : begin
if(en_outfifo)
nxt_state2 = st2_4;
else
nxt_state2 = st2_3;
end
st2_4 : begin
if(active_SYN)
nxt_state2 = st2_8;
else
nxt_state2 = st2_5;
end
st2_5 : begin
if(active_SYN)
nxt_state2 = st2_9;
else
nxt_state2 = st2_6;
end
st2_6 : begin
if(active_SYN)
nxt_state2 = st2_9;
else if((lastdataout) && (~active_SYN))
nxt_state2 = st2_7;
else
nxt_state2 = st2_6;
end
st2_7 : begin
if(active_SYN)
nxt_state2 = st2_1;
else
nxt_state2 = st2_0;
end
st2_8 : nxt_state2 = st2_9;
st2_9 : begin
if((lastdataout) && (cntdatain==5'b11110))
nxt_state2 = st2_10;
else if(lastdataout)
nxt_state2 = st2_11;
else
nxt_state2 = st2_9;
end
st2_10: nxt_state2 = st2_3;
st2_11: begin
if(cntdatain==5'b11110)
nxt_state2 = st2_2;
else
nxt_state2 = st2_1;
end
default: nxt_state2 = st2_0;
endcase
end
always@(state2)
begin
case(state2)
st2_0 : begin
dataoutstart = 0;
dataoutend = 0;
shift_fifo = 0;
hold_fifo = 0;
en_infifo = 0;
encntdatain = 0;
encntdataout = 0;
holdsynd = 0;
datainfinish = 0;
end
st2_1 : begin
dataoutstart = 0;
dataoutend = 0;
shift_fifo = 1;
hold_fifo = 0;
en_infifo = 1;
encntdatain = 1;
encntdataout = 0;
holdsynd = 0;
datainfinish = 0;
end
st2_2 : begin
dataoutstart = 0;
dataoutend = 0;
shift_fifo = 1;
hold_fifo = 0;
en_infifo = 1;
encntdatain = 0;
encntdataout = 0;
holdsynd = 0;
datainfinish = 1;
end
st2_3 : begin
dataoutstart = 0;
dataoutend = 0;
shift_fifo = 0;
hold_fifo = 1;
en_infifo = 0;
encntdatain = 0;
encntdataout = 0;
holdsynd = 1;
datainfinish = 0;
end
st2_4 : begin
dataoutstart = 0;
dataoutend = 0;
shift_fifo = 0;
hold_fifo = 1;
en_infifo = 0;
encntdatain = 0;
encntdataout = 1;
holdsynd = 0;
datainfinish = 0;
end
st2_5 : begin
dataoutstart = 1;
dataoutend = 0;
shift_fifo = 1;
hold_fifo = 0;
en_infifo = 0;
encntdatain = 0;
encntdataout = 1;
holdsynd = 0;
datainfinish = 0;
end
st2_6 : begin
dataoutstart = 0;
dataoutend = 0;
shift_fifo = 1;
hold_fifo = 0;
en_infifo = 0;
encntdatain = 0;
encntdataout = 1;
holdsynd = 0;
datainfinish = 0;
end
st2_7 : begin
dataoutstart = 0;
dataoutend = 1;
shift_fifo = 0;
hold_fifo = 0;
en_infifo = 0;
encntdatain = 0;
encntdataout = 0;
holdsynd = 0;
datainfinish = 0;
end
st2_8 : begin
dataoutstart = 1;
dataoutend = 0;
shift_fifo = 1;
hold_fifo = 0;
en_infifo = 1;
encntdatain = 1;
encntdataout = 1;
holdsynd = 0;
datainfinish = 0;
end
st2_9 : begin
dataoutstart = 0;
dataoutend = 0;
shift_fifo = 1;
hold_fifo = 0;
en_infifo = 1;
encntdatain = 1;
encntdataout = 1;
holdsynd = 0;
datainfinish = 0;
end
st2_10: begin
dataoutstart = 0;
dataoutend = 1;
shift_fifo = 1;
hold_fifo = 0;
en_infifo = 1;
encntdatain = 0;
encntdataout = 0;
holdsynd = 0;
datainfinish = 1;
end
st2_11: begin
dataoutstart = 0;
dataoutend = 1;
shift_fifo = 1;
hold_fifo = 0;
en_infifo = 1;
encntdatain = 1;
encntdataout = 0;
holdsynd = 0;
datainfinish = 0;
end
default: begin
dataoutstart = 0;
dataoutend = 0;
shift_fifo = 0;
hold_fifo = 0;
en_infifo = 0;
encntdatain = 0;
encntdataout = 0;
holdsynd = 0;
datainfinish = 0;
end
endcase
end
always@(posedge clock1)
begin
if(encntdataout)
cntdataout = cntdataout + 1;
else
cntdataout = 5'b0;
end
always@(posedge clock1)
begin
if(encntdatain)
cntdatain = cntdatain + 1;
else
cntdatain = 5'b0;
end
assign lastdataout = cntdataout[4] & (cntdataout[3]&cntdataout[2]) &
(cntdataout[1]&cntdataout[0]);
assign evalerror = encntdataout;
endmodule
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -