Page 691 - 3-2
P. 691

input [5:0]lim;
            input reset,clk;
            output reg [7:0]var2;
            wire [4:0]var;


            assign var=lim[0]+lim[1]+lim[2]+lim[3]+lim[4]+lim[5];


            always @ (var)
            begin
                    case(var)
                    0:var2="0";
                    1:var2="1";
                    2:var2="2";
                    3:var2="3";
                    4:var2="4";
                    5:var2="5";
                    6:var2="6";
                    default var2="0";
                    endcase
            end


            endmodule


            ------------------------------------------------------------
            D. uart_rx-NFC 가 찍혔을 때 Raspberry pi      에서 보낸 신호를 받는 소스
            module uart_rx (clk, reset, uart_rxd,state);


            input [3:0]state;
            input clk, reset, uart_rxd;// 수신선
            output reg [7:0] rx_data;// 수신(rxd) 데이터를 임시 저장하는 레지스터


            reg [7:0]   data_buffer; //rxd 에서 수신된 데이터를 임시로 저장하기 위한 레지스터
            reg [3:0]       rx_bit_cnt; // 수신데이터 비트 카운터 0~9 10         개 bit cnt
            reg [19:0]      rx_clk_cnt; // 데이터 수신시 통신 속도 (9600bps)
            reg state_rx;  // state_rx=1 => receive mode, 수신완료시 0(     휴지상태)


            parameter CLOCKS_PER_BIT = 5208;                                        // = 54Hz / 9600bps
            parameter CLOCKS_WAIT_FOR_RECEIVE = 5208 / 2; //        휴지상태인 상태에서 0         이 들어오면 start bit
            를 확인하는데, 2812      개의 clk  이 들어오는동안 0        이 유지되면 start    로 간주 -    즉,start bit  간주하는데 걸리
            는 시간


            always @ (posedge clk, negedge reset) //state_rx 1: 수신모드 0:    휴지상태
            begin
               if(!reset) state_rx<=0;


                                                         - 691 -
   686   687   688   689   690   691   692   693   694   695   696