Verilog code 단순화?

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

게시판 리스트
번호 제목 글쓴이 등록일 조회 추천
4284 유기합성물중 존재하는 소량의 물의 존재 확인 댓글 3 공부하자 12-21 2410 0
4283 물리량의 무차원화에 대하여 타임스케일 10-09 3167 0
4282 국가 단위의 개발 사업(발사체, 전투기, 미사일 등)에서의 정출연과 기업 각각의 역할에 대한 궁금증 댓글 10 붉은밭 03-06 6396 0
4281 positively charged particle 종류.. 댓글 1 화공대학생 10-06 2831 0
4280 XRD JCPDS CARD NO.를 오픈소스 넘버로 찾고 싶습니다. 댓글 1 공부하자 09-28 6813 0
4279 반도체 소자(DRAM, NAND Flash) 워드라인과 비트라인에 사용되는 물질 회사공돌이 06-16 3591 0
4278 회로, 전자공학관련 Q&A 사이트 추천해주세요 겸손 04-13 3921 0
4277 MIM capacitor 전기적특성 측정방법 댓글 2 회사공돌이 04-01 5684 0
4276 분말가루를 멀리보내고 싶습니다. ibyun 03-16 3720 0
4275 LDO 의 PSRR 에 관한 공부를 하던 도중 궁금한 것이 생겼습니다. 전자공공재 02-13 3086 0
4274 동영상 코덱(h264)을 공부하고 있습니다. 댓글 2 pyong 01-23 3696 0
4273 국내에서 의료용 폴리카보네이트 생산하는곳이 있을까요? kizer 12-13 2837 0
4272 JK플립플롭 문제 질문합니다. 댓글 1 막하자 11-19 5266 0
4271 초음파 용탕 처리 관련 질문 아자로 10-16 3008 0
4270 500w모터로 음료캔을 압축시키는게 가능할까요? 댓글 2 무백 10-02 3678 0
4269 반도체 공정과정 중에!! 역추적 댓글 7 mikamikaa 09-10 5467 0
4268 삼성전자 회로설계 댓글 2 jggee 08-15 8152 0
4267 아날로그 반도체와 아날로그 회로 설계 댓글 4 jggee 08-07 6819 0
4266 거대과학시설을 완공하기까지의 일련의 과정이 궁금합니다. 댓글 3 붉은밭 07-05 5259 0
4265 배달 물류 파이프라인에 대한 제 상상입니다 댓글 4 날아오르닷 07-01 4502 0


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