OpenCores
URL https://opencores.org/ocsvn/uart_observer/uart_observer/trunk

Subversion Repositories uart_observer

[/] [uart_observer/] [trunk/] [verilog/] [uart_observer_demonstrator.v] - Rev 3

Go to most recent revision | Compare with Previous | Blame | View Log

/**
* Demonstrates the functionality of the UART observer.  Shows the 64 bits of
* binary data that, in this demo, are derived from push buttons and dip switches on FPGA board.
*/
module uart_observer_demonstrator (
  input USB_UART_TX_FPGA_RX_LS,
  input USB_UART_CTS_I_B_LS,
  input CLK_I,
 
  input GPIO_SW_E,
  input GPIO_SW_W,
  input GPIO_SW_S,
  input GPIO_SW_N,
  input GPIO_SW_C,  
 
  input GPIO_DIP_SW0,
  input GPIO_DIP_SW1,
  input GPIO_DIP_SW2,
  input GPIO_DIP_SW3,
 
  output GPIO_LED_0,
  output GPIO_LED_1,
  output GPIO_LED_2,
  output GPIO_LED_3,
  output GPIO_LED_4,
  output GPIO_LED_5,
  output GPIO_LED_6,
  output GPIO_LED_7,
 
  output USB_UART_RX_FPGA_TX_LS,
  output USB_UART_RTS_O_B_LS  
);
 
 // 64 bits we observe.
 wire [63:0] observables;
 
 // Observe the switches as example
 // First byte
 
 assign observables[0] = GPIO_SW_E;
 assign observables[1] = GPIO_SW_W;
 assign observables[2] = GPIO_SW_S;
 assign observables[3] = GPIO_SW_N;
 
 assign observables[4] = GPIO_SW_E;
 assign observables[5] = GPIO_SW_W;    
 assign observables[6] = GPIO_SW_S;
 assign observables[7] = GPIO_SW_N;
 
 // Second
 
 assign observables[8] = GPIO_SW_E;
 assign observables[9] = GPIO_SW_W;
 assign observables[10] = GPIO_SW_S;
 assign observables[11] = GPIO_SW_N;
 
 assign observables[12] = GPIO_SW_E;
 assign observables[13] = GPIO_SW_W;
 assign observables[14] = GPIO_SW_S;
 assign observables[15] = GPIO_SW_N;
 
 // Third
 
 assign observables[16] = GPIO_DIP_SW0;
 assign observables[17] = GPIO_DIP_SW1; 
 assign observables[18] = GPIO_DIP_SW2;
 assign observables[19] = GPIO_DIP_SW3;
 
 assign observables[20] = GPIO_DIP_SW3;
 assign observables[21] = GPIO_DIP_SW2;
 assign observables[22] = GPIO_DIP_SW1;
 assign observables[23] = GPIO_DIP_SW0;
 
 // Forth
 
 assign observables[24] = GPIO_SW_E; 
 assign observables[25] = GPIO_SW_W;
 assign observables[26] = GPIO_SW_S;
 assign observables[27] = GPIO_SW_N;
 
 assign observables[28] = GPIO_SW_E;  
 assign observables[29] = GPIO_SW_W;
 assign observables[30] = GPIO_SW_S;
 assign observables[31] = GPIO_SW_N;
 
 assign observables[63] = GPIO_SW_C;
 
 uart_observer #(.CLOCK_FREQ (90_000_000), .BAUDS(921600), .BITS(64) ) 
 U0(
  // Clock
  .CLK_I(CLK_I),
 
  // Values to observer
  .DAT_I(observables),
 
  // UART
  .TXD(USB_UART_RX_FPGA_TX_LS), // data  
  .RTS(USB_UART_RTS_O_B_LS),    // request to send
  .CTS(USB_UART_CTS_I_B_LS)    // clear to send
 
 ); 
 
 assign GPIO_LED_0 = observables[0];
 assign GPIO_LED_1 = observables[1];
 assign GPIO_LED_2 = observables[2];
 assign GPIO_LED_3 = observables[3]; 
 assign GPIO_LED_4 = observables[4];
 
 
endmodule
 

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.