Verilog code 단순화?

글쓴이
알고리듬
등록일
2018-05-11 02:28
조회
3,549회
추천
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

게시판 리스트
번호 제목 글쓴이 등록일 조회 추천
4204 용액의 총괄성 댓글 2 결성이 06-14 3642 0
4203 디스플레이전공하신분이나 잘아시는선배님계실까요? 가즈앗아 06-10 3085 0
4202 태양 전지 효율 평가 장치 수리 업체 질문드려요! 유랑소년 06-08 2981 0
4201 기구학 레버 휠체어의 kinematic diagram을 어떻게 그려야할지 모르겠습니다 ㅠ IWWTTRY 06-02 3196 0
열람중 Verilog code 단순화? 댓글 3 알고리듬 05-11 3550 0
4199 안녕하세요 프로젝터관련 질문드립니다 댓글 1 호도구리 05-06 2446 0
4198 칩설계와 회로설계의 차이에 대하여 댓글 6 겸손 04-28 10355 0
4197 논문은 어디에 어떻게 내는 건가요? 댓글 1 퀀텀 04-28 3547 0
4196 이상기체방정식으로부터 식 유도.. 댓글 2 빡대가리 04-20 3887 0
4195 Na^-와 e^+ 어디에 쓰이나요?? 김빡구 04-14 3305 0
4194 필로티구조에서 지진에 의한 하중에는 어떤것들이 있을까요? 댓글 1 IWWTTRY 04-07 2646 0
4193 음성인식은 한국어랑 영어랑 댓글 2 캠뉴튼 03-31 3092 0
4192 반도체 물질의 유전율에 관하여 댓글 5 타라쥬 03-29 6398 0
4191 눈먼 과학 참나리 03-29 2762 0
4190 지리학 고견을 듣고 싶습니다 참나리 03-12 2660 0
4189 CFD MATLAB 어느 것을 배우는게 좋을까요? 댓글 6 jucto 03-01 4084 0
4188 파괴 시뮬레이션 툴 질문드립니다 댓글 2 배우는공돌이 03-01 3090 0
4187 전자과분들중에 혹시 외장하드에 툴 깔으셔서 사용해보신분 계시나요? 댓글 1 경연일기 02-10 4004 0
4186 진공상태에서 질소가소가 얼마나 투입되는지 알고싶어요(기본적 질문 ㅜ) 댓글 1 어렵다어려워11 02-07 3315 0
4185 이 소자 데이터 시트나 파트넘버 아시는분 계신가요 댓글 1 SMPS 01-26 3028 0


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