LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Sponsors
  • Mirrors
  • Logos
  • Contact us
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Overview :: News :: Downloads :: Tracker    

    UART 16550 core: Tracker : Need to fix commenting-out style in rtl/verilog/uart_defines.v

    Monitor this item

    You will be notified via email when status of this item is changed or if somebody adds a comment.

    Your email

      Need to fix commenting-out style in rtl/verilog/uart_defines.v

    Type BUG
    Status OPENED
    Top
    Hi. There are numerous instances in rtl/verilog/uart_defines.v of using single line comments ("//") in a `define statement. For me (at least), the Modelsim simulator barfs with this.

    For example, if you
    `define TRUE 1 // Hi mom
    in a header file and then later on `include that header file and
    try to assign something the macro TRUE:
    foo <= `TRUE;
    with a simplistic substitution, you would get
    foo <= 1 // Hi mom;
    which is a syntax error (missing semicolon).

    This is why you should define
    `define TRUE 1 /* Hi mom using no single line comments! */

    Some C compilers have the same issue. This is why you should not use single line comments on a `define or #define macro assignment!

    Here is my proposed patch to rtl/verilog/uart_defines.v. This is the output of diff -c3 (your version) (my patched version).

    Regards,
    Jeff

    *** dist/uart_defines.v Fri Sep 12 00:26:58 2003
    --- uart_defines.v Mon May 15 10:53:55 2006
    ***************
    *** 152,234 ****

    // `define UART_HAS_BAUDRATE_OUTPUT

    ! // Register addresses
    ! `define UART_REG_RB `UART_ADDR_WIDTH'd0 // receiver buffer
    ! `define UART_REG_TR `UART_ADDR_WIDTH'd0 // transmitter
    ! `define UART_REG_IE `UART_ADDR_WIDTH'd1 // Interrupt enable
    ! `define UART_REG_II `UART_ADDR_WIDTH'd2 // Interrupt identification
    ! `define UART_REG_FC `UART_ADDR_WIDTH'd2 // FIFO control
    ! `define UART_REG_LC `UART_ADDR_WIDTH'd3 // Line Control
    ! `define UART_REG_MC `UART_ADDR_WIDTH'd4 // Modem control
    ! `define UART_REG_LS `UART_ADDR_WIDTH'd5 // Line status
    ! `define UART_REG_MS `UART_ADDR_WIDTH'd6 // Modem status
    ! `define UART_REG_SR `UART_ADDR_WIDTH'd7 // Scratch register
    ! `define UART_REG_DL1 `UART_ADDR_WIDTH'd0 // Divisor latch bytes (1-2)
    `define UART_REG_DL2 `UART_ADDR_WIDTH'd1

    ! // Interrupt Enable register bits
    ! `define UART_IE_RDA 0 // Received Data available interrupt
    ! `define UART_IE_THRE 1 // Transmitter Holding Register empty interrupt
    ! `define UART_IE_RLS 2 // Receiver Line Status Interrupt
    ! `define UART_IE_MS 3 // Modem Status Interrupt
    !
    ! // Interrupt Identification register bits
    ! `define UART_II_IP 0 // Interrupt pending when 0
    ! `define UART_II_II 3:1 // Interrupt identification
    !
    ! // Interrupt identification values for bits 3:1
    ! `define UART_II_RLS 3'b011 // Receiver Line Status
    ! `define UART_II_RDA 3'b010 // Receiver Data available
    ! `define UART_II_TI 3'b110 // Timeout Indication
    ! `define UART_II_THRE 3'b001 // Transmitter Holding Register empty
    ! `define UART_II_MS 3'b000 // Modem Status
    !
    ! // FIFO Control Register bits
    ! `define UART_FC_TL 1:0 // Trigger level
    !
    ! // FIFO trigger level values
    ! `define UART_FC_1 2'b00
    ! `define UART_FC_4 2'b01
    `define UART_FC_8 2'b10
    `define UART_FC_14 2'b11

    ! // Line Control register bits
    ! `define UART_LC_BITS 1:0 // bits in character
    ! `define UART_LC_SB 2 // stop bits
    ! `define UART_LC_PE 3 // parity enable
    ! `define UART_LC_EP 4 // even parity
    ! `define UART_LC_SP 5 // stick parity
    ! `define UART_LC_BC 6 // Break control
    ! `define UART_LC_DL 7 // Divisor Latch access bit

    ! // Modem Control register bits
    `define UART_MC_DTR 0
    `define UART_MC_RTS 1
    `define UART_MC_OUT1 2
    `define UART_MC_OUT2 3
    ! `define UART_MC_LB 4 // Loopback mode

    ! // Line Status Register bits
    ! `define UART_LS_DR 0 // Data ready
    ! `define UART_LS_OE 1 // Overrun Error
    ! `define UART_LS_PE 2 // Parity Error
    ! `define UART_LS_FE 3 // Framing Error
    ! `define UART_LS_BI 4 // Break interrupt
    ! `define UART_LS_TFE 5 // Transmit FIFO is empty
    ! `define UART_LS_TE 6 // Transmitter Empty indicator
    ! `define UART_LS_EI 7 // Error indicator

    ! // Modem Status Register bits
    ! `define UART_MS_DCTS 0 // Delta signals
    `define UART_MS_DDSR 1
    `define UART_MS_TERI 2
    `define UART_MS_DDCD 3
    ! `define UART_MS_CCTS 4 // Complement signals
    `define UART_MS_CDSR 5
    `define UART_MS_CRI 6
    `define UART_MS_CDCD 7

    ! // FIFO parameter defines

    `define UART_FIFO_WIDTH 8
    `define UART_FIFO_DEPTH 16
    --- 152,234 ----

    // `define UART_HAS_BAUDRATE_OUTPUT

    ! /* Register addresses */
    ! `define UART_REG_RB `UART_ADDR_WIDTH'd0 /* receiver buffer */
    ! `define UART_REG_TR `UART_ADDR_WIDTH'd0 /* transmitter */
    ! `define UART_REG_IE `UART_ADDR_WIDTH'd1 /* Interrupt enable */
    ! `define UART_REG_II `UART_ADDR_WIDTH'd2 /* Interrupt identification */
    ! `define UART_REG_FC `UART_ADDR_WIDTH'd2 /* FIFO control */
    ! `define UART_REG_LC `UART_ADDR_WIDTH'd3 /* Line Control */
    ! `define UART_REG_MC `UART_ADDR_WIDTH'd4 /* Modem control */
    ! `define UART_REG_LS `UART_ADDR_WIDTH'd5 /* Line status */
    ! `define UART_REG_MS `UART_ADDR_WIDTH'd6 /* Modem status */
    ! `define UART_REG_SR `UART_ADDR_WIDTH'd7 /* Scratch register */
    ! `define UART_REG_DL1 `UART_ADDR_WIDTH'd0 /* Divisor latch bytes (1-2) */
    `define UART_REG_DL2 `UART_ADDR_WIDTH'd1

    ! /* Interrupt Enable register bits */
    ! `define UART_IE_RDA 0 /* Received Data available interrupt */
    ! `define UART_IE_THRE 1 /* Transmitter Holding Register empty interrupt */
    ! `define UART_IE_RLS 2 /* Receiver Line Status Interrupt */
    ! `define UART_IE_MS 3 /* Modem Status Interrupt */
    !
    ! /* Interrupt Identification register bits */
    ! `define UART_II_IP 0 /* Interrupt pending when 0 */
    ! `define UART_II_II 3:1 /* Interrupt identification */
    !
    ! /* Interrupt identification values for bits 3:1 */
    ! `define UART_II_RLS 3'b011 /* Receiver Line Status */
    ! `define UART_II_RDA 3'b010 /* Receiver Data available */
    ! `define UART_II_TI 3'b110 /* Timeout Indication */
    ! `define UART_II_THRE 3'b001 /* Transmitter Holding Register empty */
    ! `define UART_II_MS 3'b000 /* Modem Status */
    !
    ! /* FIFO Control Register bits */
    ! `define UART_FC_TL 1:0 /* Trigger level */
    !
    ! /* FIFO trigger level values */
    ! `define UART_FC_1 2'b00 */
    ! `define UART_FC_4 2'b01 */
    `define UART_FC_8 2'b10
    `define UART_FC_14 2'b11

    ! /* Line Control register bits */
    ! `define UART_LC_BITS 1:0 /* bits in character */
    ! `define UART_LC_SB 2 /* stop bits */
    ! `define UART_LC_PE 3 /* parity enable */
    ! `define UART_LC_EP 4 /* even parity */
    ! `define UART_LC_SP 5 /* stick parity */
    ! `define UART_LC_BC 6 /* Break control */
    ! `define UART_LC_DL 7 /* Divisor Latch access bit */

    ! /* Modem Control register bits */
    `define UART_MC_DTR 0
    `define UART_MC_RTS 1
    `define UART_MC_OUT1 2
    `define UART_MC_OUT2 3
    ! `define UART_MC_LB 4 /* Loopback mode */

    ! /* Line Status Register bits */
    ! `define UART_LS_DR 0 /* Data ready */
    ! `define UART_LS_OE 1 /* Overrun Error */
    ! `define UART_LS_PE 2 /* Parity Error */
    ! `define UART_LS_FE 3 /* Framing Error */
    ! `define UART_LS_BI 4 /* Break interrupt */
    ! `define UART_LS_TFE 5 /* Transmit FIFO is empty */
    ! `define UART_LS_TE 6 /* Transmitter Empty indicator */
    ! `define UART_LS_EI 7 /* Error indicator */

    ! /* Modem Status Register bits */
    ! `define UART_MS_DCTS 0 /* Delta signals */
    `define UART_MS_DDSR 1
    `define UART_MS_TERI 2
    `define UART_MS_DDCD 3
    ! `define UART_MS_CCTS 4 /* Complement signals */
    `define UART_MS_CDSR 5
    `define UART_MS_CRI 6
    `define UART_MS_CDCD 7

    ! /* FIFO parameter defines */

    `define UART_FIFO_WIDTH 8
    `define UART_FIFO_DEPTH 16
    ***************
    *** 238,246 ****
    `define UART_FIFO_REC_WIDTH 11


    ! `define VERBOSE_WB 0 // All activity on the WISHBONE is recorded
    ! `define VERBOSE_LINE_STATUS 0 // Details about the lsr (line status register)
    ! `define FAST_TEST 1 // 64/1024 packets are sent



    --- 238,246 ----
    `define UART_FIFO_REC_WIDTH 11


    ! `define VERBOSE_WB 0 /* All activity on the WISHBONE is recorded */
    ! `define VERBOSE_LINE_STATUS 0 /* Details about the lsr (line status register) */
    ! `define FAST_TEST 1 /* 64/1024 packets are sent */



     
    Stats

    Nobody is monitoring this item

    Progress
     
    Submited date 15-May-2006
    Submited by jcollins@l...
     
    Assigned date
    Assigned to
     
    Closed date
    Closed by

    Top

    Comments

    No comments yet..

    Add your comment

    Your email:

    Retype key:
    Top

     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.