{"id":926,"date":"2010-03-22T14:11:33","date_gmt":"2010-03-22T21:11:33","guid":{"rendered":"https:\/\/blogs.mentor.com\/verificationhorizons\/?p=926"},"modified":"2026-03-27T08:45:13","modified_gmt":"2026-03-27T12:45:13","slug":"ovm-211-now-ready-for-download","status":"publish","type":"post","link":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/2010\/03\/22\/ovm-211-now-ready-for-download\/","title":{"rendered":"OVM 2.1.1 Now Ready for Download"},"content":{"rendered":"<h3><a href=\"https:\/\/verificationacademy.com\/forums\/downloads\/ovm\/uvm-download-kits\" target=\"_blank\" rel=\"noopener\">Download<\/a> OVM 2.2.1 from Verification Academy<\/h3>\n<p><a href=\"https:\/\/verificationacademy.com\/cookbook\/ovm\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"margin-left: 0px;margin-right: 0px;border: 0pt none\" src=\"https:\/\/s3.amazonaws.com\/ovmworld\/files\/images\/logo_OVM.gif\" alt=\"logo_OVM\" width=\"109\" height=\"76\" align=\"right\" border=\"0\" \/><\/a> An important OVM update is now available for download and production use.\u00a0 Several bugs have been corrected, features altered to improve performance, documentation issues addressed and miscellaneous items improved.<\/p>\n<p>A list of OVM 2.1.1 items from the Release Notes is shown below.\u00a0 And if you ever have a use issue with OVM and want to contact the OVM Team about it, you can always do so <a href=\"https:\/\/verificationacademy.com\/contact\" target=\"_blank\" rel=\"noopener\">online<\/a>.<\/p>\n<h3>Bug Fixes<\/h3>\n<ul>\n<li>ovm_report_enabled() method now also tests the configured action as well as its verbosity when determining whether to process the report. If a report&#8217;s action is configured to OVM_NO_ACTION, or if its verbosity is higher than the configured verbosity, ovm_report_enabled() returns 0.\u00a0 Because the `ovm_* report macros use ovm_report_enabled(), they too benefit from this performance improvement.<\/li>\n<li>Verbosity was not being ignored for fatals, errors, and warnings. This is now fixed.<\/li>\n<li>Added is_locked() method to ovm_sequence_base.<\/li>\n<li>Fixed ovm_queue #(T) to not assume its parameter, T, was an object.<\/li>\n<li>A FATAL report is issued if an attempt is made to connect() ports at or after the end_of_elaboration phase.<\/li>\n<li>Fixed multi-field configuration matching for ovm_field macros. In OVM 2.1 only the first matching field in a component was applied, now all matching fields are applied.<\/li>\n<li>Sequence arbitration was broken when in strict_fifo or strict_random modes.\u00a0 When used in conjunction with is_relevant() or is_blocked(), the priority queue was incorrectly determined, resulting in blocked or irrelevant sequences potentially being chosen. This has been fixed.<\/li>\n<li>Fixed bug in transaction recording that was resulting in nested objects not being recorded.<\/li>\n<li>Fixed ovm_field_int_*_unsigned macros by removing unnecessary attempt to cast to &#8216;int unsigned&#8217;.<\/li>\n<li>Added force_stop() method to ovm_test_done_objection that forces a stop despite outstanding objections. This effectively cancels an objection.\u00a0\u00a0 By default, the objection state is printed if there are outstanding objections at the time of the call.<\/li>\n<li>Fixed ovm_sequence&#8217;s kill() and ovm_sequencer&#8217;s stop_sequences() behavior whereby a killed\/stopped sequence&#8217;s post_body method was allowed to execute.\u00a0 Now, calls to kill() or stop_sequences() will absolutely kill the affected sequence(s) and leave the sequence in the STOPPED state.<\/li>\n<\/ul>\n<h3>Documentation Fixes<\/h3>\n<ul>\n<li>Corrected documentation for (un)pack_string.<\/li>\n<li>Fixed HTML documentation &#8216;search&#8217; engine to include macros. It was not properly handling the macros&#8217; leading backtick (`).<\/li>\n<li>Changed macro documentation to be consistent: The backtick is included, whereas the arguments are not.<\/li>\n<li>Documented do_kill_all() method as a means of recursively killing the processes forked during a component&#8217;s run phase. The objection and stop mechanisms remain the preferred way to end the run phase.<\/li>\n<\/ul>\n<h3>Miscellaneous<\/h3>\n<ul>\n<li>Turned off auto-config for all port objects.<\/li>\n<li>ovm_sequencer_base::get_seq_kind() was changed to issue a WARNING instead of an FATAL if the named sequence is not found. This allows users to check if a specifically named sequence is registered. A return value of -1 indicates the sequence does not exist.<\/li>\n<li>Removed an old, unnecessary ifdef INCA in the ovm_component::find() code.<\/li>\n<li>Changed internal macros in ovm_object_defines.svh to use m_ to provide visual indication that the macros are for internal use only.<\/li>\n<li>ovm_port_base::connect() and resolve_bindings() were made virtual to allow their override in port derivatives.<\/li>\n<li>Made sequence registration methods protected and virtual to allow internal tools to work with them.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Download OVM 2.2.1 from Verification Academy An important OVM update is now available for download and production use.\u00a0 Several bugs&#8230;<\/p>\n","protected":false},"author":71541,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spanish_translation":"","french_translation":"","german_translation":"","italian_translation":"","polish_translation":"","japanese_translation":"","chinese_translation":"","footnotes":""},"categories":[1],"tags":[623,732],"industry":[],"product":[],"coauthors":[],"class_list":["post-926","post","type-post","status-publish","format-standard","hentry","category-news","tag-ovm","tag-standards"],"_links":{"self":[{"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/926","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/users\/71541"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/comments?post=926"}],"version-history":[{"count":1,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/926\/revisions"}],"predecessor-version":[{"id":14708,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/926\/revisions\/14708"}],"wp:attachment":[{"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/media?parent=926"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/categories?post=926"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/tags?post=926"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/industry?post=926"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/product?post=926"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/coauthors?post=926"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}