Page 286 - 3-2
P. 286
9. 소프트웨어 작성하기
가. FPGA 칩 관련 소스
project.v 상위 모듈
module project (clk,reset,fnd_data,fnd_en,fnd_sel,uart_rxd,uart_txd,led1,led2);
input clk,reset;
input uart_rxd;
output uart_txd;
output [7:0] led1;
output [7:0] led2;
output [6:0] fnd_data; // fnd 에 표시할 숫자 data 출력선(dog,g,f,e,...a)
output fnd_en; // fnd_data 출력을 위한 enable 신호출력선
output [1:0] fnd_sel; // fnd 자리 선택을 위한 신호 출력
wire [15:0] string;
fnd u0 (.clk(clk),.reset(reset),.fnd_data(fnd_data),.fnd_en(fnd_en),.fnd_sel(fnd_sel),.string(string));
rx_tx u1
(.reset(reset),.clk(clk),.uart_rxd(uart_rxd),.uart_txd(uart_txd),.led1(led1),.led2(led2),.stream(string));
endmodule
rx_tx.v // 송수신 모듈
module rx_tx(reset,clk,uart_rxd,uart_txd,led1,led2,stream);
input clk,reset;
input uart_rxd;
output uart_txd;
output [7:0] led1;
output [7:0] led2;
output [15:0] stream;
// 수신부
reg [7:0] rx_data; // 수신(rxd) 데이터를 임시 저장하는 레지스터
reg [3:0] rx_bit_cnt; // 수신데이터 비트 카운터 0~9 10 개 bit cnt
reg [31:0] rx_clk_cnt; // 데이터 수신시 통신 속도 (9600bps)
reg [31:0] start_cnt;
reg [7:0] data[1:0];
reg cnt;
reg rx_en = 0;
reg [1:0] rx_en_buffer;
reg state_rx; // state_rx=1 => receive mode
- 286 -