설계"내

M

MRFGUY

Guest
난 그냥 FSM 공부하려고합니다.

난 그냥 Verilog를 사용하여 FSM 썼습니다.내 계획은 15 티켓을 판매하고있다.사용자를 추가할 수있습니다 5 또는 10.15 때마다 티켓을 다시 나올 것이다 도달 상태를 시작합니다.만약 20, 항공권 및 변경 5 도달 범위 및 반환 상태로 시작합니다.그것은 지금이 순간에 확인을 보인다.(하지만 내게 뭘 난 내 프로그램에서 변경해야합니다 알고)하자

그러나 나는 또한 7 점 두 개 들어가는 DISP에서 보여주고 싶어요.얼마나 많은 사용자를 더 추가할 수 권을 구하기 위해 필요합니다.어떻게 추가하지 않도록 오전이 시점에서.

두 조건으로 7 들어가는 가정이 있어야합니다 (그리고 옆에있는 LED가 현재 주도).

난 여기 내 프로그램을 첨부했습니다.

감사합니다`timescale 1ns / 1ps
////////////////////////////////////////////////// //////////////////////////////
/ / 회사명 :
/ / 엔지니어 :
/ /
/ / 날짜를 만듭니다 : 16시 15분 8초 08/29/05
/ / 디자인이 름 :
/ / 모듈 이름 : sell_ticket
/ / 프로젝트 이름 :
/ / 목표 장치 :
/ / 도구 버전 :
/ / 설명 : 15 티켓을 판매.만약 사용자가 나올 것입니다 15만이 티켓을 추가할 수있습니다.
/ / 사용자를 추가할 경우 20 기계 chnage 5 티켓 나올 것입니다.
/ /
/ / 의존성 :
/ /
/ / 수정 :
/ / 수정 0.01 - 파일이 만들어집니다
/ / 추가 코멘트 :
/ /
////////////////////////////////////////////////// //////////////////////////////
모듈 sell_ticket (A와 B, 재설정, CLK, 마에서는 c);

입력 A와 B, 재설정, CLK, / / 5 $ 입력 및 B 10 $ 입력입니다

출력 마에서는 c; / / c를 동전을 변경 요 티켓

는 C T는 reg;
[2시 reg] 상태, next_state;

매개 변수를 0 = 3'b000;
매개 변수를 5 = 3'b001;
매개 변수를 10 = 3'b010;
매개 변수를 15 = 3'b011;
매개 변수를 20 = 3'b100;항상 (posedge CLK) @
시작
(리셋)하는 경우
상태 "= 0;
그 밖의
상태 "= next_state;


(A와 B, 주)은 항상 @
시작
경우에는 (주)

0 : 케이스 ((B가))
2'b00 : next_state = 0;
2'b01 : next_state = 5;
기본값 : next_state = 10;
endcase

5 : 케이스 ((B가))
2'b00 : next_state = 5;
2'b01 : next_state = 10;
기본값 : next_state = 15;
endcase

10 : 케이스 ((B가))
2'b00 : next_state = 10;
2'b01 : next_state = 15;
기본값 : next_state = 20;
endcase

기본값 : next_state = 0;
endcase / / 상태를 상태로 끝날 경우
최종 / / 항상 끝항상 (주) @
시작
경우에는 (주)
15 : (마에서는 c) = 2'b10;
20 : (마에서는 c) = 2'b11;
기본값 : (t은는 C) = 2'b00;
endcase


endmodule

 
나 여기 7 .... 코드를 통해 UR 표시 들어가는 추가코드 :

`timescale 1ns / 1ps

모듈 sell_ticket (A와 B, 재설정, CLK, 마, c는 seven_seg_led_0, seven_seg_led_1);입력 A와 B, 재설정, CLK, / / 5 $ 입력 및 B 10 $ 입력입니다출력 마에서는 c; / / c를 동전을 변경 요 티켓

출력 [6시] seven_seg_led_0, seven_seg_led_1;는 C T는 reg;

[6시] seven_seg_led_0, seven_seg_led_1 reg;

[2시 reg] 상태, next_state;매개 변수를 0 = 3'b000;

매개 변수를 5 = 3'b001;

매개 변수를 10 = 3'b010;

매개 변수를 15 = 3'b011;

매개 변수를 20 = 3'b100;항상 (posedge CLK) @

(리셋)하는 경우

상태 "= 0;

그 밖의

상태 "= next_state;항상 @ (또는 B 또는 주)을 시작

next_state = 상태;

경우에는 (주)

0 : 케이스 ((B가))

2'b00 : next_state = 0;

2'b01 : next_state = 5;

기본값 : next_state = 10;

endcase5 : 케이스 ((B가))

2'b00 : next_state = 5;

2'b01 : next_state = 10;

기본값 : next_state = 15;

endcase10 : 케이스 ((B가))

2'b00 : next_state = 10;

2'b01 : next_state = 15;

기본값 : next_state = 20;

endcase

15 : next_state = 0;

20 : next_state = 0;

endcase / / 상태를 상태로 끝날 경우

최종 / / 항상 끝항상 (주)를 시작 @

경우에는 (주)

제로 : 시작

(t은는 C) = 2'b00; / / abcdefg

seven_seg_led_1 = 7'b0110000; / / 디스플레이 15

seven_seg_led_0 = 7'b1011011;



5 : 시작

(t은는 C) = 2'b00; / / abcdefg

seven_seg_led_1 = 7'b0110000; / / 디스플레이 10

seven_seg_led_0 = 7'b0000000;



10 : 시작

(t은는 C) = 2'b00; / / abcdefg

seven_seg_led_1 = 7'b0000000; / / 디스플레이 05

seven_seg_led_0 = 7'b1011011;



15 : 시작

(t은는 C) = 2'b10; / / abcdefg

seven_seg_led_1 = 7'b0000000; / / 디스플레이 00

seven_seg_led_0 = 7'b0000000;



20 : 시작

(t은는 C) = 2'b11; / / abcdefg

seven_seg_led_1 = 7'b0000001; / / 디스플레이 -5

seven_seg_led_0 = 7'b1011011;



기본값 : 시작

(t은는 C) = 2'b00;

seven_seg_led_1 = 7'b0000000; / / 디스플레이 00

seven_seg_led_0 = 7'b0000000;



endcase



endmodule
 
도와 주셔서 감사 nand_gates.

만약 내가 언젠가는 주 15 또는 20 기타 활동에서 기다리고 싶지 티켓을 변경할 수있습니다 동전을주고, 우리가 어떻게 추가할 수있다.

감사합니다

 

Welcome to EDABoard.com

Sponsor

Back
Top