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 -
   281   282   283   284   285   286   287   288   289   290   291