⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 controller.v

📁 rs编码vvhdl 希望能通过 我不晓得具体对大家有用否 希望懂rs编码的多多交流
💻 V
📖 第 1 页 / 共 2 页
字号:
               decode_fail = 0;               en_outfifo = 1;               end        st1_13:begin               ready = 1;               active_sc = 1;               active_kes = 0;               active_csee = 0;               evalsynd = 0;               errfound = 0;               decode_fail = 0;               en_outfifo = 1;               end        st1_14:begin               ready = 1;               active_sc = 0;               active_kes = 0;               active_csee = 0;               evalsynd = 0;               errfound = 0;               decode_fail = 0;               en_outfifo = 1;               end       default:begin               ready = 1;               active_sc = 0;               active_kes = 0;               active_csee = 0;               evalsynd = 0;               errfound = 0;               decode_fail = 0;               en_outfifo = 0;               end    endcaseend       //****************************************// //                 FSM 2                  ////****************************************//always@(posedge clock2 or negedge reset)begin   if(~reset)      state2 = st2_0;   else      state2 = nxt_state2;end      always@(state2 or active_sc or cntdatain or lastdataout or en_outfifo)begin   case(state2)      st2_0 : begin              if(active_sc)                 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_sc)                 nxt_state2 = st2_8;              else                 nxt_state2 = st2_5;              end      st2_5 : begin              if(active_sc)                 nxt_state2 = st2_9;              else                 nxt_state2 = st2_6;              end      st2_6 : begin              if(active_sc)                 nxt_state2 = st2_9;              else if((lastdataout) && (~active_sc))                 nxt_state2 = st2_7;              else                 nxt_state2 = st2_6;              end      st2_7 : begin              if(active_sc)                 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;   endcaseend// Output logic of FSM 2 //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        //*********************//// Counter for dataout //               always@(posedge clock1)begin   if(encntdataout)      cntdataout =  cntdataout + 1;   else      cntdataout = 5'b0;end// Counter for datain //               always@(posedge clock1)begin   if(encntdatain)      cntdatain =  cntdatain + 1;   else      cntdatain = 5'b0;end// lastdataout is 1 if cntdataout = 5'b11111 //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 + -