Advertisement
tariq786

Untitled

Oct 13th, 2014
327
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. `timescale 1ns / 1ps
  2. //////////////////////////////////////////////////////////////////////////////////
  3. // Company:
  4. // Engineer:
  5. //
  6. // Create Date:    23:49:20 10/13/2014
  7. // Design Name:
  8. // Module Name:    top
  9. // Project Name:
  10. // Target Devices:
  11. // Tool versions:
  12. // Description:
  13. //
  14. // Dependencies:
  15. //
  16. // Revision:
  17. // Revision 0.01 - File Created
  18. // Additional Comments:
  19. //
  20. //////////////////////////////////////////////////////////////////////////////////
  21. module top(
  22. input clk_100,
  23. output ser_tx,
  24. input ser_rx
  25.     );
  26.      
  27.     wire [7:0]  rx_data; //output of uart_rx
  28.     reg         read_from_uart;
  29.     reg         en_16_x_baud;
  30.     wire    rx_data_present;
  31.     wire    rx_full;
  32.     wire    rx_half_full;
  33.    
  34.     wire    write_to_uart;
  35.     wire    tx_full;
  36.     wire    tx_half_full;
  37.    
  38.    
  39.     wire [7:0] uart_status_port;
  40.     assign uart_status_port = {3'b000,rx_data_present,rx_full,rx_half_full,tx_full,tx_half_full};
  41.  
  42.  
  43. //instantiation
  44. uart_rx receive (
  45.         .serial_in(ser_rx),
  46.         .data_out(rx_data),                         ////output
  47.         .read_buffer(read_from_uart),
  48.         .reset_buffer(1'b0),
  49.         .en_16_x_baud(en_16_x_baud),
  50.         .buffer_data_present(rx_data_present), //output
  51.         .buffer_full(rx_full),                      //output
  52.         .buffer_half_full(rx_half_full),            //output
  53.         .clk(clk100));
  54.  
  55.  
  56. uart_tx transmit (
  57.         .data_in(rx_data/*out_port*/), //echo back rx to tx
  58.         .write_buffer(write_to_uart),
  59.         .reset_buffer(1'b0),
  60.         .en_16_x_baud(en_16_x_baud),
  61.         .serial_out(ser_tx),            //output
  62.         .buffer_full(tx_full),          //output
  63.         .buffer_half_full(tx_half_full),//output
  64.         .clk(clk100));
  65.  
  66.  
  67.     reg [9:0]   baud_count;
  68.  
  69.     // UART baud rate generator - 9600 baud
  70.     always @(posedge clk100)
  71.         if (baud_count == 651) begin
  72.             baud_count <= 1'b0;
  73.             en_16_x_baud <= 1'b1;
  74.         end else begin
  75.             baud_count <= baud_count + 1'b1;
  76.             en_16_x_baud <= 1'b0;
  77.         end
  78.  
  79. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement