Verilog code 단순화?

글쓴이
알고리듬
등록일
2018-05-11 02:28
조회
1,234회
추천
0건
댓글
3건
module Billboard(
    output reg [7:0] LAMP,
    input wire      enable,
    input wire      nrst,
    input wire      clk);
   
parameter [3:0] START = 4'd0,
                    S0    = 4'd1,
                    S1    = 4'd2,
                    S2    = 4'd3,
                    S3    = 4'd4,
                    S4    = 4'd5,
                    S5    = 4'd6,
                    S6    = 4'd7,
                    S7    = 4'd8,
                    S8    = 4'd9,
                    S9    = 4'd10;
                   
reg [3:0] state;
reg [3:0] cnt;

always @(posedge clk or negedge nrst) begin
    if(!nrst) begin
        state <= START;
    end
    else begin
        case(state)
            START: begin
                LAMP <= 8'b0;
                cnt <= 4'b0;
               
                if(enable)    state <= S0;
                else      state <= START;
            end
           
            S0: begin
                LAMP[0] <= 1'b1;
                state <= S1;
            end
           
            S1: begin
                LAMP[1] <= 1'b1;
                state <= S2;
            end
           
            S2: begin
                  LAMP[2] <= 1'b1;
                  state <= S3;
            end
           
            S3: begin
                  LAMP[3] <= 1'b1;
                  state <= S4;
            end
           
            S4: begin
                  LAMP[4] <= 1'b1;
                  state <= S5;
            end
           
            S5: begin
                  LAMP[5] <= 1'b1;
                  state <= S6;
            end
           
            S6: begin
                  LAMP[6] <= 1'b1;
                  state <= S7;
            end
           
            S7: begin
                  LAMP[7] <= 1'b1;
                  state <= S8;
            end
           
            S8: begin
                  LAMP <= 8'b0;
                 
                  if(cnt < 5)  state <= S9;
                  else      state <= START;
            end
           
            S9: begin
                  LAMP <= 8'b11111111;
                 
                  cnt <= cnt + 4'd1;
                  state <= S8;
            end
        endcase   
        end
        end                                                                         
endmodule

광고판에 불을 들어오게하는 간단한 코드입니다.
이 코드를 간략하게 줄여서 작성이 가능하다는데
도저히 머리를 싸매도 간략하게 줄이는 방법을 모르겠습니다.
선배님들께 도움을 요청합니다ㅠㅠ

  • 토루크막토 ()

    그 디지털회로 강의때 배운 카누맵이나 최적화 방법론 같은것들 기억나시죠? 이럴때 쓰라고 있는겁니다. 필요없는 state 들을  optimization하는게 최선인데 코드라인이 많이줄지는 않을것같네요.

  • 댓글의 댓글 알고리듬 ()

    감사합니다!!

  • 달빛연구자 ()

    얼른 봐서는 for문으로 단순화 할 수 있을 것 같은데요.

목록


과학기술Q&A

게시판 리스트
번호 제목 글쓴이 등록일 조회 추천
4226 용액속 수소이온 농도 측정법? 댓글 1 고민이많구만 12-07 64 0
4225 자동차 변속원리와 rpm에 관해 몇가지 묻고싶습니다 댓글 9 기계꽈 12-03 404 0
4224 current source에 관하여 댓글 2 루아르 12-01 281 0
4223 도핑 특성 측정 방법(@solar cell) 공정기술 11-22 143 0
4222 SCLC(공간전하제한전류) 측정방법이 궁금합니다. 마이노 11-07 142 0
4221 물리 힘에 대하여 댓글 2 directly 10-29 443 0
4220 하드카피 도면을 영상처리 해서 알아서 DB화 시키는 방법이 궁금합니다. 댓글 7 양적피드백 10-17 492 0
4219 [임베디드]어떤거 부터 배워야할지 방향을잡아주세요ㅠ 댓글 4 makethescene 10-09 711 0
4218 머신러닝과련 데이터 과학 하시는분 데이터셋에 대하여 질문있습니다. SC전공 10-08 366 0
4217 Hanbury Brown-Twiss 간섭실험 나박사 10-05 285 0
4216 송전선 전압이 높을수록 자기장이 약해져야 정상 아닌가요? 댓글 4 양적피드백 09-26 1034 0
4215 cyclic voltammetry 측정을 하고싶습니다 댓글 2 팔월의영광 09-20 504 0
4214 간단한 물리(진동) 질문 하나 하고싶습니다.. 너무 궁금합니다.. 댓글 11 삼어 09-17 830 0
4213 힉스입자에 관한 짧은 질문 퀀텀팩토리 09-19 467 0
4212 전기차와 하이브리드 차의 전망 댓글 2 HiDee 08-23 1289 0
4211 heater system꾸미는데 문제점 댓글 5 directly 07-28 793 0
4210 데이터 헌팅이라는 말의 유래, 어원?! 댓글 3 아중 07-23 845 0
4209 혹 ADC에 대하여 아시는 분 계신지요? 댓글 4 인생은길게 07-19 1036 0
4208 펌프 1개 추가로 인한 탱크내 과압이 발생하는가 ? 댓글 1 ozbbq 07-04 700 0
4207 ZPL(zero phonon line)에 대해서 궁금합니다. 나박사 06-21 525 0


랜덤글로 점프
과학기술인이 한국의 미래를 만듭니다.
© 2002 - 2015 scieng.net
모바일 버전으로 보기