• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Mixed-Signal Design
  3. how to convert text string to integer in VerilogA?

Stats

  • Locked Locked
  • Replies 12
  • Subscribers 64
  • Views 23266
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

how to convert text string to integer in VerilogA?

DavidLou
DavidLou over 7 years ago

hello experts,

in VerilogA, "reg" is not supported in Cadence yet even it's described in the Cadence version of VerilogA manual, and I'm having a hard time to pass some text string into integer value (ideally into bit values). I can not access individual bit of a string type. seems wire [] array is type of node and therefore I can't use it in assignment. anyway, I'm seeking for someway to convert string like "Hello World" into integer (ascii) values. 

thanks a lot,

David

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago

    Hi David,

    Which manual are you looking at? I just looked at the Cadence® Verilog®-A Language Reference manual from SPECTRE17.1 and there is no mentioned of "reg" there. I'd be surprised because it's a digital construct and so makes no sense in the analog Verilog-A language. If it was the Cadence® Verilog®-AMS Language Reference manual from an INCISIVE or XCELIUM stream (may be in the IC stream too - I forget) then that would make more sense, but then it would be talking about Verilog AMS and you'd have to use a Verilog AMS view and simulate it in AMS Designer.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • DavidLou
    DavidLou over 7 years ago in reply to Andrew Beckett

    Hi Andrew,

    very funny. we are looking up from Verilog-AMS for Verilog-A! 

    by all means, how can I convert text string (like "Hello World") into ASCII value (so that I can wiggle a vector variable for plotting purpose)? 

    thanks,

    David

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • DavidLou
    DavidLou over 7 years ago in reply to Andrew Beckett

    hi Andrew,

    one more thing regarding "reg" in VerilogAMS. I create VerilogAMS view from IC617, using the exact example as from AMS LRM, but the Text Editor still complains " `reg' is not a reserved keyword now but will be one in a future release." when I click "Check and Save". 

         reg [8*12:1] stringvar ;

         initial begin
              stringvar = "Hello world!" ;
         end

    you sure "reg" is supported in VerilogAMS? 

    I just like the way for easy string bit(s) access.

    thanks,

    David

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to DavidLou

    Hi David,

    This is for the same reason as your other post. You've not created a VerilogAMS view, but a VerilogA view which has a view name of "verilogams". That's not the same thing.

    I just tried this in a VerilogAMS view type (i.e. choice of type "VerilogAMSText" in the File->New form) and it works OK. You can tell because the messages you were getting above are coming from spectre, which is used as the language parser when you're using VerilogA, but if you use VerilogAMS it's using INCISIVE/XCELIUM instead.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • DavidLou
    DavidLou over 7 years ago in reply to Andrew Beckett

    yup, you are right. I made a shortcut. I got this work now. but unfortunately the tool still limiting me changing such "reg" varibles being changed inside "analog" block. anyway, I worked around. 

    thanks,

    David

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • DavidLou
    DavidLou over 7 years ago in reply to DavidLou

    just following up my side, I kind give up to let VerilogA convert text into ascii. I just give the ascii value directly. 

    here's the ascii display I get from VerilogA code in ViVa, 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to DavidLou

    That's because reg are digital, and so can only be changed in a digital block (i.e. outside of an analog block). That's expected and how the language works.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • DavidLou
    DavidLou over 7 years ago in reply to Andrew Beckett

    yup, I guess that's the way it meant to be. 

    one more question will we are still on this, I see from ViVa, I can have digital bus in radix of Binary, Hex, ..., Ascii. but when I create bus by awvCreateBus in Ocean, seems it doesn't support radix of "Ascii". Is it possible to create the bus in "Ascii" radix so I don't have to click every time a new waveform plotted?

    to further clarify what I'm seeing, regardless what radix I give to awvCreateBus, e.g., Binary or Ascii, the plot command always give "Hex" display. I have to manually change the Radix from ViVa. looks like plot command dropped radix info? better command I can use?

      comment_bus = awvCreateBus("comment_bus" list( ... ) "Ascii")

       plot( comment_bus ?expr '( "COMMENT" ) )

    thanks,

    David

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to DavidLou

    David,

    It works for me. Which IC subversion are you using?

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • DavidLou
    DavidLou over 7 years ago in reply to Andrew Beckett

    Hi Andrew, that's awesome if working there. 06.17.709

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
>

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information