Jump to content

Search the Community

Showing results for tags 'uvm'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Accellera Systems Initiative
    • Information
    • Announcements
    • In the News
  • SystemC
    • SystemC Language
    • SystemC AMS (Analog/Mixed-Signal)
    • SystemC TLM (Transaction-level Modeling)
    • SystemC Verification (UVM-SystemC, SCV)
    • SystemC CCI (Configuration, Control & Inspection)
    • SystemC Datatypes
  • UVM (Universal Verification Methodology)
    • UVM 2017 - Methodology and BCL Forum
    • UVM SystemVerilog Discussions
    • UVM Simulator Specific Issues
    • UVM Commercial Announcements
    • UVM (Pre-IEEE) Methodology and BCL Forum
    • UVM 1.2 Public Review
  • Portable Stimulus
    • Portable Stimulus Pre-Release Discussion
    • Portable Stimulus 1.0
  • IP Security
    • IP Security Assurance Whitepaper Discussion
  • IP-XACT
    • IP-XACT Discussion
  • IEEE 1735/IP Encryption
    • IEEE 1735/IP Encryption Discussion
  • OCP (Open Core Protocol)
  • UCIS (Unified Coverage Interoperability Standard)
  • Commercial Announcements
    • Announcements

Categories

  • SystemC
  • UVM
  • UCIS
  • IEEE 1735/IP Encryption

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests


Biography


Location


Interests


Occupation


Company

Found 74 results

  1. Hi, I have a doubt about requirement of raise/drop_objection. Why does a compiler need objections in run_phase? Why can it not just wait for time given like 100ns as following example? Ex. task run_phase(uvm_phase phase); //phase.raise_objection(this); #100ns; //phase.drop_objection(this); endtask
  2. Version 2016-06-24

    346 downloads

    This document is a printable version of the Easier UVM Coding Guidelines from Doulos. You are free to use these guidelines directly, to merge them into your own company-specific UVM coding guidelines, or merely to borrow some of the ideas. These coding guidelines are offered by Doulos for the benefit of the UVM community. They are not officially endorsed by Accellera.
  3. Hi all, I'm doing verification for an PHY between SPI master and a memory chip. I make two agents one for master to transfer the request, one mimics the memory slave to reply. PHY will be hooked up to two interfaces that of SPI Master and Memory. During sending request and reply data, Chip Select Pin (in SPI interface) must go low to enable the transaction. But I don't know how to control this pin when It sends the reply from memory. Because this pin is not an interface of memory slave agent. Could anyone give me some advice? Could I use phases to control the env that has different agents? Thank you, Nhat
  4. To view this announcement on the IEEE web site click here. Purpose Verification components and environments are currently created in different forms, making interoperability among verification tools and/or geographically-dispersed design environments both time consuming to develop and error prone. The results of the UVM standardization effort will improve interoperability and reduce the cost of repurchasing and rewriting Intellectual Property (IP) for each new project or electronic design automation tool, as well as make it easier to reuse verification components. Overall, the UVM standardization effort will lower verification costs and improve design quality throughout the industry. Need for the Project As the electronics industry builds more complex systems involving large numbers of components, the challenge of verifying such systems multiplies by orders of magnitude. In order to bring costs and time to market down, standardization must happen to enable as much modularity and reuse across verification components as possible. The UVM standard will propagate an API that will manage this explosion in verification complexity, allowing the entire industry to write and reuse verification components both (a) internally in companies having geographically widespread teams, and (externally between vendors and user companies in the electronics industry, who are developing, selling and using verification components Call for Contribution Please review the IEEE P1800.2 ™ PAR and, if you are interested in participating, Register for the first working group meeting scheduled to occur on August 6th, 2015 from 12pm – 2pm Eastern Daylight Time (EDT) / 9am – 11am Pacific Daylight Time (PDT). Please feel free to connect with the Working Group Chair, Thomas Alsop at thomas.r.alsop@intel.com or IEEE-SA staff Jonathan Goldberg at goldberg.j@ieee.org directly for further information.
  5. Hi, I am using uvm_resource_db to set and get any component configuration. But I am getting an error saying configuration object is not found. Its something that its not able to get the config object from configuration space. In env build_phase, I do set the configuration as below: uvm_resource_db#(io_config)::set("io_agent_0*","io_agent_config",m_io_config,this); And in io_agent, below code is used to get the configuration: assert(uvm_resource_db#(io_config)::read_by_name(get_full_name(),"io_agent_config",cfg,this) else uvm_report_fatal("io_agent","not able to get the configuration object"); Kindly let me know if there is anything wrong in the above usage. And also, can I do setting configuration through uvm_resource_db and getting it through uvm_config_db. Thanks A.Sunitha
  6. a usual way to do it is to create a wrapper object and push the wrapper into config_db. Then get this wrapper object from config_db and assign it to the virtual interface pointer (not mentioning the details here) Creating the virtual interface container wrapper parameterized to the strongly typed interface helps here. but in the uvm component, a pointer needs to be created for the parameterised interface. If not wanting the classes to be parameterized, how the virtual interface handle can be created without specifying the parameter as either a default parameter in base class or override is necessary for creating handle?. The component will get the wrapper object from config_db and assign it (the virtual interface in the object) to the virtual interface pointer Thanks.
  7. This is a online training batch taught by experts working in Semiconductor Industry. Course starts with System Verilog and covers advanced level UVM. Course schedule is for 2.5 hours on Sat and Sun for 7 weeks. Graduates and working professionals can benefit from this training. Next batch starting on July 11th, 2015! For more details please email vlsitraining@artoflivinghet.org Course schedule is for 2.5 hours on Sat and Sun for 7 weeks. Graduates and working professionals can benefit from this training. For more details please email vlsitraining@artoflivinghet.org
  8. Hi all, First I apologize if I am using the wrong forum for the question. Please, I would like to know whether someone here could give updates on uvm-sc status. When will a first public release be available ? Regards
  9. Hello there, As per Mentor's UVM guidelines 5.2 [1], reset_phase() will be obsolete in future releases. During DVCon 2014, Cadence recommends to use run_phases() on slide 5 of [2]. With the release of UVM-1.2, I believed that the sub-phases of run_phase are now stable and clean. Now with the recommendations above, it seems that the it's better to stick with run_phase() itself. As UVM delelopers, what are your views about it ? What do you recommend ? My intention is not to start a flame war of any kind. But to understand which route to opt in order that most of my UVM code would be compatible with UVM 1.3. All in all, it appears that there is a miscommunication on the web. [1]: https://verificationacademy.com/cookbook/UVM/Guidelines [2]: http://proceedings.dvcon-europe.org/2014/presentations_and_papers/T5_3_presentation.pdf regards, Chitlesh
  10. Hi All, I am facing an issue: One of the register field is configured as : field_a.configure(this, 12, 17, "RO", 0, 12'h0, 1, 0, 1); field_a.set_compare(UVM_NO_CHECK); While doing a reset test, first I reset model then start test. But test fails with : UVM_ERROR -- value read from DUT (0x0000000080001e00) does not match mirrored value (0x00000000XxxXfe00) Basically the fields declared as RO and UVM_NO_CHECK goes X ? Any idea what I am missing or doing wrong ? Thanks.
  11. I am trying to run a couple of test cases using script.But I am getting an error message after running the first test case.This stops the simulation.I am attaching the LOG with this mail.I don't understand why this is happening. I checked previous posts and added +UVM_OBJECTION_TRACE in the vsim command.But I am not able to find out the cause of the error.Can anybody help me?? # UVM_INFO @ 0: run [OBJTN_TRC] Object uvm_test_top raised 1 objection(s): count=1 total=1 # UVM_INFO @ 0: run [OBJTN_TRC] Object uvm_top added 1 objection(s) to its total (raised from source object uvm_test_top): count=0 total=1 # AT TIME=0,APB MASTER IN RESET MODE # AT TIME=1200000,APB MASTER IN ACTIVE MODE # AT TIME=45400000,*************************** EXPECTED_DATA=1792474624,RECEIVED DATA=1792474624 # AT TIME=186600000,*************************** EXPECTED_DATA=222,RECEIVED DATA=222 # AT TIME=231800000,*************************** EXPECTED_DATA=1504340502,RECEIVED DATA=1504340502 # AT TIME=349000000,*************************** EXPECTED_DATA=2367782205,RECEIVED DATA=2367782205 # UVM_INFO Test_Cases/my_test.sv(40) @ 349000000: uvm_test_top [root objections] # The total objection count is 1 # --------------------------------------------------------- # Source Total # Count Count Object # --------------------------------------------------------- # 0 1 uvm_top # 1 1 uvm_test_top # --------------------------------------------------------- # # UVM_INFO Test_Cases/my_test.sv(43) @ 349000000: uvm_test_top [my_component objections] # The total objection count is 1 # --------------------------------------------------------- # Source Total # Count Count Object # --------------------------------------------------------- # 1 1 uvm_test_top # --------------------------------------------------------- # # UVM_INFO @ 349000000: run [OBJTN_TRC] Object uvm_test_top dropped 1 objection(s): count=0 total=0 # UVM_INFO @ 349000000: run [OBJTN_TRC] Object uvm_test_top all_dropped 1 objection(s): count=0 total=0 # UVM_INFO @ 349000000: run [OBJTN_TRC] Object uvm_top subtracted 1 objection(s) from its total (dropped from source object uvm_test_top): count=0 total=0 # UVM_INFO @ 349000000: run [OBJTN_TRC] Object uvm_top subtracted 1 objection(s) from its total (all_dropped from source object uvm_test_top): count=0 total=0 # UVM_INFO verilog_src/uvm-1.1d/src/base/uvm_objection.svh(1268) @ 349000000: reporter [TEST_DONE] 'run' phase is ready to proceed to the 'extract' phase # # --- UVM Report Summary --- # # ** Report counts by severity # UVM_INFO : 12 # UVM_WARNING : 0 # UVM_ERROR : 0 # UVM_FATAL : 0 # ** Report counts by id # [OBJTN_TRC] 6 # [Questa UVM] 2 # [RNTST] 1 # [TEST_DONE] 1 # [my_component objections] 1 # [root objections] 1 # ** Note: $finish : C:/questasim_10.2c/win32/../verilog_src/uvm-1.1d/src/base/uvm_root.svh(430) # Time: 349 us Iteration: 68 Instance: /my_top # 1 # Break in Task uvm_pkg/uvm_root::run_test at C:/questasim_10.2c/win32/../verilog_src/uvm-1.1d/src/base/uvm_root.svh line 430 # Simulation Breakpoint: 1 # Break in Task uvm_pkg/uvm_root::run_test at C:/questasim_10.2c/win32/../verilog_src/uvm-1.1d/src/base/uvm_root.svh line 430 # MACRO ./run_do PAUSED at line 18
  12. Hi, I am diagnosed with ‘Wrist tendinitis’/’tenosynovitis’ due to RSI (Repetitive Strain Injury). Hence I started using speech recognition as much as possible. On windows, controls are 80% accurate and dictation is 50% accurate. With practice, I am trying to use keyboard and voice recognition just the same way a pianist would sing. I think with the wealth of research in speech recognition, it is possible to get a decent accuracy 1. for coding (UVM, systemverilog) as there are predefined set of keywords, classes, functions etc. 2. for GUI tool controls An example of coding: to see in editor "class myenv extends uvm_env;" I would Say: "class" type: myenv Say:"extends uvm_env;" For GUI usage, tool vendors/users could come up with a number of useful features similar to keyboard shortcuts. These features may be implemented both on Windows and Linux platforms. (Hope in few years engineers are able to dictate their code into a tool and debug it too! Also wish there is research on use of various HCIs for EDA) Thanks for reading my request! Regards, Kal Gandikota P.S.: I used windows speech recognition to write this e-mail as I am suffering from wrist pain. Please kindly ignore grammar mistakes.
  13. Hello all, How would one go about leveraging UVM for ES level DUT verification? Most of the stuff from RTL still applies but how do we correctly use the driver and monitor if the DUT does not have signals, but has TLM ports/sockets. The UVM states that one agent should be used per interface, but the problem on the ESL is that there are no signals so how do we monitor TLM ports/sockets with the monitor, while the driver stimulates the DUT? How do we connect ports/exports to the driver, monitor and the DUT simultaneously? A solution without using analysis ports would be great. I've included an image for easier reference. I guess that on ES level the monitor and driver are redundant, but then the sequencer would have to send packets to a checker and the DUT simultaneously, which would require either two ports or an analysis port. Another option would be to keep everything the same as in the image and have two ports, one from the driver to the DUT, and one from the driver to the monitor and send packets simultaneously. Please state your thoughts on this.
  14. Hi there A register can have different RTL implementation based on access_mode. ie., When a register REG_1 is read in backdoor, actual HDLPATH of the register would point to 'top.abc.dout'. When a register REG_1 is written in backdoor, actual HDLPATH of the register would point to 'top.abc.dout_temp' We want to program different hdlpaths to REG_1 based on access mode (READ or WRITE). Does UVM_REG provide ready-made hookups or methods like add_hdl_path_slice() methods to setup different hdlpaths to READ/WRITE backdoor access? (Inside the DPI based backdoor access itself?) I checked that write_backdoor and read_backdoor methods need to be overwritten to setup different HDLPATHs based on READ/WRITE access modes. But this involves overriding string based DPI backdoor access factory methods. I'm looking for an alternative here, if it really exists. Suggestions to this requirement, very much appreciated. Best regards Balasubramanian G
  15. Hi there We want to traverse through all registers present in a UVM_REG_BLOCK based on increasing address. We have the following pseudocode: model.NTB_DB.get_registers(total_regs_ntb); foreach (total_regs_ntb) begin total_regs_btb.write(status, wdata, .parent(this)); end But, the above source code does not go through the registers space based on address. ie., When I have a 2-dimensional array of registers, array indices are chosen first(not addresses). Any help to workaround this problem is appreciated. Best regards Balasubramanian G
  16. Hi All, I have a sequence sending a created and randomized item using `uvm_send. The driver receives an item using try_next_item. Upon receiving, it drives the item and calls item_done. Using debug message after item_done, I can clearly see that item_done is called and returned but `uvm_send in sequence is still blocked and not doing forward to send next item (it implements a loop). Can anyone help me with possible reasons why `uvm_send would not return even when driver has called item_done and come out of item_done. Thanks in advance! Ninad
  17. Hi, While running simulation , i am getting the below mentioned error . Can anyone help me to fix this error. ncsim: *E,IMPDLL: Unable to load the implicit shared object. OSDLERROR: /prj/.../v/_sv_export.so: failed to map segment from shared object: Operation not permitted. ncsim: *W,LIBRUN: Could not load the dynamic library: ./INCA_libs/irun.lnx86.13.10.nc/librun System ERROR: ./INCA_libs/irun.lnx86.13.10.nc/librun.so: failed to map segment from shared object: Operation not permitted. ncsim: *F,NOFDPI: Function main not found in any of the shared object specified with -SV_LIB switchncsim: *E,IMPDLL: Unable to load the implicit shared object. Thanks Sidharth
  18. Mediatek is looking for verification engineers who are users of SV/UVM for their Bangalore center. Engineers in the experience range from 2-12 years can apply. If interested please send mail to ron.mediatek@gmail.com Essential Skills: Should have worked on at least one ASIC tapeout Hands on with SV/OVM/VMM/UVM Should have executed test planning at block/SoC level
  19. I don't know if I'm posting in the right forum section, so I apologize in advance. I have a couple of questions about the UVM-ML architecture. For reference, I will be using the sc-sv unified hierarchy example, which is provided with UVM-ML-1.4.2. 1) In the sctop.cpp file, which looks like this: #include "uvm_ml.h" #include "ml_tlm2.h" #include "producer.h" #include "consumer.h" using namespace uvm; using namespace uvm_ml; // The environment component contains a producer and a consumer class env : public uvm_component { public: producer prod; consumer cons; env(sc_module_name nm) : uvm_component(nm) , prod("prod") , cons("cons") { cout << "SC env::env name= " << this->name() << endl; } void before_end_of_elaboration() { cout << "SC env::before_end_of_elaboration " << this->name() << endl; std::string full_initiator_b_socket_name = ML_TLM2_REGISTER_INITIATOR(prod, tlm_generic_payload, b_isocket , 32); cout << "SC env registered " << full_initiator_b_socket_name << endl; std::string full_initiator_nb_socket_name = ML_TLM2_REGISTER_INITIATOR(prod, tlm_generic_payload, nb_isocket , 32); cout << "SC env registered " << full_initiator_nb_socket_name << endl; std::string full_target_socket_name = ML_TLM2_REGISTER_TARGET(cons, tlm_generic_payload, tsocket , 32); cout << "SC env registered " << full_target_socket_name << endl; } ... UVM_COMPONENT_UTILS(env) }; UVM_COMPONENT_REGISTER(env) // Top level component instantiates env class sctop : public uvm_component { public: env sc_env; sctop(sc_module_name nm) : uvm_component(nm) , sc_env("sc_env") { cout << "SC sctop::sctop name= " << this->name() << " type= " << this->get_type_name() << endl; } ... UVM_COMPONENT_UTILS(sctop) }; UVM_COMPONENT_REGISTER(sctop) #ifdef NC_SYSTEMC NCSC_MODULE_EXPORT(sctop) #else int sc_main(int argc, char** argv) { return 0; } UVM_ML_MODULE_EXPORT(sctop) #endif What is the NC_SYSTEMC define and where is it used? What is UVM_ML_MODULE_EXPORT() and when is it used? 2) In file test.sv: import uvm_pkg::*; `include "uvm_macros.svh" import uvm_ml::*; `include "producer.sv" `include "consumer.sv" ... // Test instantiates the "env" and "testbench" which has a foreign child class test extends uvm_env; env sv_env; testbench tb; ... task run_phase(uvm_phase phase); `uvm_info(get_type_name(),$sformatf("SV test::%s %s", phase.get_name(), get_full_name()),UVM_LOW); while (1) begin #1 uvm_ml::synchronize(); end endtask ... `uvm_component_utils(test) endclass What is the uvm_ml::synchronize() function and when is appropriate to use it? If there are documents where I can find out more please mention them.
  20. Hi there From the UVM users guide, a register read access can be executed as reg_model.BLK1.REG_FILE1.REG_1.read(status, rdata); But this mandates us to know the hierarchy of the register instantiation. ie., 'reg_model.BLK1.REG_FILE1' needs to be known to execute a read on register 'REG_1'. Is it possible to perform read/write access based on address instead of this hierarchy? Something like: generic_uvm_read (.address(0x0), rdata); In otherwords, we need not even know the register type or register instantiation hierarchy to issue a read access to that register. Can this be performed with UVM_REG? Requesting thoughts here. Best regards Balasubramanian G
  21. This is a online training batch taught by experts working in Semiconductor Industry. Course schedule is for 2.5 hours on Sat and Sun for 7 weeks. Graduates and working professionals can benefit from this training. For more details please email vlsitraining@sumerusolutions.com
  22. Hi there I couldn't find enough information about capturing whitebox information with respect to a register defined in IP-XACT standard. Could this be done somehow? The closest that could be found was WHITEBOX information with respect to models.(not registers) Though the register definition can be captured in IP-XACT XML, there isn't proper way to capture RTL implementation of a register in IP-XACT. Capturing RTL implementation of a register in IP-XACT XML would enable us to stitch UVM_REG backdoor access. (without vendorExtensions) We feel the urge/need to enhance IP-XACT standard regarding the same. Requesting thoughts regarding the same. Best regards Balasubramanian G
  23. Hi there IPXACT needs to capture array of registers properly in a design. Currently there is only one tag ''spirit:dim" to represent an array of registers. This does not enable us to capture an array of register effectively. Consider the following cases: 1. An array of registers can be one dimensional with each element offset by offset address 0x10. 2. An Array of multidimensional registers something like this: register_1[0][0] -> 0x0 register_1[0][1] -> 0x4 register_1[1][0] -> 0x10 register_1[1][1] -> 0x14 ... likewise Is there any way to capture just the address relationship to an array instance within IP-XACT XML tags? (Without using vendorExtensions tag?) We have not been able to capture the above said information inside IPXACT XML.(using only IP-XACT tags) Requesting thoughts regarding the same. Best regards Balasubramanian G
  24. Hi, When I use the automation of register model by register assistant, in the video, it use the command 'vreguvm - gui' to translate the .csv file to register package. But When I input this command, it reminds me 'command not found'. what's the reason of that? The version I use is 10.2c_2. Do I need to install some package? If need, please tell me. I will ask the CAD administrator in my company to install it. And where can I get the csv templates mentioned in the mentor's video? Thanks
  25. Hello Everyone, Cadence recently released an update to its UVM multi-language (ML) open architecture library. This version 1.4 is available in the Accellera Upload area at: http://forums.accellera.org/files/file/65-uvm-ml-open-architecture/ For more information, you can see this blog posted at Cadence.com: http://www.cadence.com/Community/blogs/fv/archive/2014/06/03/updates-from-the-uvm-multi-language-ml-front.aspx?postID=1334799 =Adam "ML" Sherilog
×
×
  • Create New...