T
teja321
Guest
보드에 입력 16 Mhz에있습니다.그러므로 SRL 사용하고 1 Hz에서 그리고 난 주파수 시퀀스 LED의 운전이 시계를 사용하고 시계를 나누어있다.
코드 :모듈 led_counter (CLK, led_out, 세 계 최 초의);입력 CLK, 세 계 최 초의;
출력 reg [3시] led_out;와이어 clk_buf;한 = 1'b1 할당;
0 = 1'b0 할당;철사 [6시] clk_en;//////////// BUFG 인스턴스화 /////////////////////BUFG BUFG_1 (
. 오 (clk_buf), / / 클럭 버퍼 출력
. 난 (CLK) / / 클럭 버퍼 입력
);
//////////////////////////////////////////////////
/ / 16의 입력 클럭 Mhz에
/ / 16으로 나누기SRLC16E # (. INIT (16'h0001)) / / 초기 값 시프트 레지스터
SRLC16E_1 (
. 질문 (), / / SRL 데이터 출력
. 질문 15 (clk_en [0]), / / 운반 출력 (다음 SRL)를 연결
. A0 (1), / / 선택 [0] 입력
. 대답 (1), / / 선택 [1] 입력
. A2에서 (1), / / 선택하고 [2] 입력
. 쓰리 (1), / / 선택 [3] 입력
. 가전 (1), / / 클럭 입력을 사용
. CLK (clk_buf), / / 클럭 입력
. D 조 (clk_en [0]) / / SRL 데이터 입력
);genvar 난;생성
위한은 (i = 0; 난 "6; 전 = 내가 1)
시작 : gen_10_srl
/ / 16 × 10로 나누어 ^ 6 = 16 Mhz/16_000_000 = 1Hz
SRLC16E # (. INIT (16'h0001)) / / 초기 값 시프트 레지스터
SRLC16E_2 (
. 질문 (clk_en [내가 1]), / / SRL 데이터 출력
. 질문 15 (), / / 운반 출력 (다음 SRL)를 연결
. A0 (1), / / 선택 [0] 입력
. 대답 (0), / / 선택 [1] 입력
. A2에서 (0), / / 선택하고 [2] 입력
. 쓰리 (1), / / 선택 [3] 입력
. 가전 (1), / / 클럭 입력을 사용
. CLK (clk_en [난]), / / 클럭 입력
. D 조 (clk_en [내가 1]) / / SRL 데이터 입력
);
끝
endgenerateclk_1s_d reg;항상 (posedge clk_buf) @
clk_1s_d "= clk_en [6];clk_1s = clk_en [6을 할당] & (~ clk_1s_d);(posedge clk_buf 또는 posedge 세 계 최 초의)은 항상 @ 시작
(세 계 최 초의 == 1'b1)하는 경우
led_out "= 4'b1110;
다른 경우 (clk_1s == 1'b1) 시작
케이스 (led_out)
4'b0111 : led_out "= 4'b1110;
4'b1110 : led_out "= 4'b1101;
4'b1101 : led_out "= 4'b1011;
4'b1011 : led_out "= 4'b0111;
endcase
끝
끝endmodule
코드 :모듈 led_counter (CLK, led_out, 세 계 최 초의);입력 CLK, 세 계 최 초의;
출력 reg [3시] led_out;와이어 clk_buf;한 = 1'b1 할당;
0 = 1'b0 할당;철사 [6시] clk_en;//////////// BUFG 인스턴스화 /////////////////////BUFG BUFG_1 (
. 오 (clk_buf), / / 클럭 버퍼 출력
. 난 (CLK) / / 클럭 버퍼 입력
);
//////////////////////////////////////////////////
/ / 16의 입력 클럭 Mhz에
/ / 16으로 나누기SRLC16E # (. INIT (16'h0001)) / / 초기 값 시프트 레지스터
SRLC16E_1 (
. 질문 (), / / SRL 데이터 출력
. 질문 15 (clk_en [0]), / / 운반 출력 (다음 SRL)를 연결
. A0 (1), / / 선택 [0] 입력
. 대답 (1), / / 선택 [1] 입력
. A2에서 (1), / / 선택하고 [2] 입력
. 쓰리 (1), / / 선택 [3] 입력
. 가전 (1), / / 클럭 입력을 사용
. CLK (clk_buf), / / 클럭 입력
. D 조 (clk_en [0]) / / SRL 데이터 입력
);genvar 난;생성
위한은 (i = 0; 난 "6; 전 = 내가 1)
시작 : gen_10_srl
/ / 16 × 10로 나누어 ^ 6 = 16 Mhz/16_000_000 = 1Hz
SRLC16E # (. INIT (16'h0001)) / / 초기 값 시프트 레지스터
SRLC16E_2 (
. 질문 (clk_en [내가 1]), / / SRL 데이터 출력
. 질문 15 (), / / 운반 출력 (다음 SRL)를 연결
. A0 (1), / / 선택 [0] 입력
. 대답 (0), / / 선택 [1] 입력
. A2에서 (0), / / 선택하고 [2] 입력
. 쓰리 (1), / / 선택 [3] 입력
. 가전 (1), / / 클럭 입력을 사용
. CLK (clk_en [난]), / / 클럭 입력
. D 조 (clk_en [내가 1]) / / SRL 데이터 입력
);
끝
endgenerateclk_1s_d reg;항상 (posedge clk_buf) @
clk_1s_d "= clk_en [6];clk_1s = clk_en [6을 할당] & (~ clk_1s_d);(posedge clk_buf 또는 posedge 세 계 최 초의)은 항상 @ 시작
(세 계 최 초의 == 1'b1)하는 경우
led_out "= 4'b1110;
다른 경우 (clk_1s == 1'b1) 시작
케이스 (led_out)
4'b0111 : led_out "= 4'b1110;
4'b1110 : led_out "= 4'b1101;
4'b1101 : led_out "= 4'b1011;
4'b1011 : led_out "= 4'b0111;
endcase
끝
끝endmodule