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 -