<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet type="text/xsl" href="https://community.cadence.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0"><channel><title>Cadence Functional Verification Shared Code Forum</title><link>https://community.cadence.com/cadence_technology_forums/f/functional-verification-shared-code</link><description></description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:subtitle>Upload your code here. Please give a brief summary of how to use it. </itunes:subtitle><item><title>e-code: Shareware RAM</title><link>https://community.cadence.com/thread/57147?ContentTypeID=0</link><pubDate>Thu, 20 Apr 2023 02:17:26 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:5d9759df-309a-420e-be2b-5b013819f52f</guid><dc:creator>snaptube</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/57147?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/functional-verification-shared-code/57147/e-code-shareware-ram/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;span&gt;Modified version of shr_ram from erm_lib to support mvl_values&lt;br /&gt;&lt;/span&gt;regards: &lt;a href="https://snaptubedownload.one/"&gt;snaptube&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How to transfer trained an artificial neural network to Verilog-A</title><link>https://community.cadence.com/thread/52745?ContentTypeID=0</link><pubDate>Mon, 17 Oct 2022 11:58:59 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:c1d28995-872f-44e4-ac0e-2fd70903b91b</guid><dc:creator>CJL</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/52745?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/functional-verification-shared-code/52745/how-to-transfer-trained-an-artificial-neural-network-to-verilog-a/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi all, I&amp;#39;ve trained a device model with the approach of&amp;nbsp;an artificial neural network, and it shows well fit.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;May I know how to&amp;nbsp;transfer the trained model to Verilog-A, so that, we can use this model to do circuit simulation?&lt;/p&gt;
&lt;p&gt;And I&amp;#39;ve searched for some lectures that provide the Verilog-A code in the appendix, but I&amp;#39;m freshman in the field of Verilog-A,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;could anyone tell me each statement? such as&lt;/p&gt;
&lt;p&gt;real hlayer-w[0:(NI*NNHL)-1 &amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:480px;max-width:640px;" src="https://community.cadence.com/resized-image/__size/1280x960/__key/communityserver-discussions-components-files/69/pastedimage1666007833816v1.png" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Creating cover items for sparse values/queue or define in specman</title><link>https://community.cadence.com/thread/42133?ContentTypeID=0</link><pubDate>Fri, 12 Jul 2019 17:51:31 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:8cc0192e-8adb-4cb2-982c-1d43cb33fe50</guid><dc:creator>rgarcia071</dc:creator><slash:comments>2</slash:comments><comments>https://community.cadence.com/thread/42133?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/functional-verification-shared-code/42133/creating-cover-items-for-sparse-values-queue-or-define-in-specman/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I have a question I want to create a cover that consists a sparse values, pre-computed (a list or define) for example l = {1; 4; 7; 9; 2048; 700} I&amp;#39;d like to cover that data a (uint(bits:16)) had those values, Any suggestion on how to achieve this, I&amp;#39;d prefer to stay away from macros, and avoid to write a lot of code&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;struct inst {&lt;/p&gt;
&lt;p&gt;&amp;nbsp; data :uint(bits:16);&lt;br /&gt;&amp;nbsp; opcode :uint(bits:16);&lt;br /&gt;&amp;nbsp; !valid_data : list of uint(bits:16) = {0; 12; 10; 700; 890; 293;};&lt;br /&gt;&amp;nbsp; event data_e;&lt;br /&gt;&amp;nbsp; event opcode_e;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; cover data_e is {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;item data using radix = HEX, ranges = {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;//I dont want to write all of this&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;range([0], &amp;quot;My range1&amp;quot;);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;range([10], &amp;quot;My range2&amp;quot;);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;//... many values in between&lt;br /&gt;&amp;nbsp; &amp;nbsp; range([700], &amp;quot;My rangen&amp;quot;);&lt;br /&gt;&amp;nbsp; &amp;nbsp; };&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; item opcode;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;cross data, opcode; &lt;br /&gt; };&lt;/p&gt;
&lt;p&gt;post_generate() is also {&lt;br /&gt;&amp;nbsp; &amp;nbsp; emit data_e;&lt;br /&gt; };&lt;br /&gt;};&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>help for $sscanf</title><link>https://community.cadence.com/thread/35594?ContentTypeID=0</link><pubDate>Fri, 22 Apr 2016 04:03:22 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:b3fc80d6-2937-4412-af14-24836b68f199</guid><dc:creator>jaichandra</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/35594?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/functional-verification-shared-code/35594/help-for-sscanf/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Can anyone tell me how i can supress few strings or integers while reading with $sscanf.&lt;/p&gt;
&lt;p&gt;I read a line from a file into a string. there are few strings and integers seperated by white spaces in the line. I am interested in one string which comes at postion 5 in the line. how can i suppress all other strings and integers with $scanf.&lt;/p&gt;
&lt;p&gt;i tried the following syntax but it dint work.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;$sscanf(line,&amp;quot;* * * * %s&amp;quot;,string_arg);&lt;/p&gt;
&lt;p&gt;i am tring to supress first 4 integers/strings in the line.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>help with automating adding CLP files to DRA files</title><link>https://community.cadence.com/thread/29718?ContentTypeID=0</link><pubDate>Thu, 12 Jun 2014 16:50:37 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:9f33d1f8-7419-45ed-b40c-9f69a9da915c</guid><dc:creator>jen11</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/29718?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/functional-verification-shared-code/29718/help-with-automating-adding-clp-files-to-dra-files/rss?ContentTypeId=0</wfw:commentRss><description>&lt;div class=""&gt;Question for forum:&lt;/div&gt;

&lt;div class=""&gt;I&amp;rsquo;m currently working on a code
to automatically add CLP files to DRA files and then add two classes called &amp;ldquo;APPROVED&amp;rdquo;
and &amp;ldquo;CLP&amp;rdquo;. To do this manually you have to open a DRA file, click file import subdrawing
and choose the clp file with the same name as dra. (path already set). You then
set the clp to position x 0 0. And then click on Set Up &amp;gt; Subclasses &amp;gt;
Package geometry and type in &amp;ldquo;Approved&amp;rdquo; and &amp;ldquo;Clp.&amp;rdquo; &lt;/div&gt;

&lt;div class=""&gt;So far we&amp;rsquo;ve recorded the macros
in Allegro for all of these actions. The macros correspond to one specific file
name and we want to apply this to numerous files. To do this we created a
python program that locates all of the specified CLP and DRA files, and if they
have a matching name, runs a for loop that puts each file name into a stored
variable that runs a loop for each file. We converted this script into batch
and then added a function that we thought would run Allegro macros from batch. &lt;/div&gt;

&lt;div class=""&gt;In order to get the script
working, we need to have an allegro batch command that will run the script
without opening the Allegro start popup, or closing the popup when it appears.&amp;nbsp; We need to do this to run any script from
starting Allegro.&lt;/div&gt;

&lt;div class=""&gt;I&amp;rsquo;ve done another similar program
in batch where I made a for loop for each dra file and within the loop there
was a batch a2dxf command that converted all dra files to dxf files. Is there a
similar batch command for adding clp files to position 0 0 and/ or adding
classes? If anyone has done something similar please let me know!&lt;/div&gt;

&lt;div class=""&gt;Thank you very much for the help.&lt;/div&gt;

&lt;div class=""&gt;Jen&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Specman Mode for Emacs</title><link>https://community.cadence.com/thread/28436?ContentTypeID=0</link><pubDate>Tue, 11 Feb 2014 13:16:39 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:753a43d1-4853-4770-8c6f-a1e502a5e88e</guid><dc:creator>hannes</dc:creator><slash:comments>7</slash:comments><comments>https://community.cadence.com/thread/28436?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/functional-verification-shared-code/28436/specman-mode-for-emacs/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Attached is the latest emacs mode for e/Specman - version 1.23&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Please follow the install instructions in the top section of the actual file &lt;br /&gt;(after unzipping it) to install/load this package with your emacs.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure length="40384" type="application/x-zip-compressed" url="https://community.cadence.com/cfs-file/__key/telligent-evolution-components-attachments/00-69-00-00-00-02-84-36/specman_2D00_mode_5F00_1.23.zip"/><itunes:explicit/><itunes:subtitle>Attached is the latest emacs mode for e/Specman - version 1.23 Please follow the install instructions in the top section of the actual file (after unzipping it) to install/load this package with your emacs.</itunes:subtitle><itunes:summary>Attached is the latest emacs mode for e/Specman - version 1.23 Please follow the install instructions in the top section of the actual file (after unzipping it) to install/load this package with your emacs.</itunes:summary></item><item><title>memory leak in ncsim</title><link>https://community.cadence.com/thread/27071?ContentTypeID=0</link><pubDate>Fri, 16 Aug 2013 06:32:51 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:888e1dfd-51a7-425c-bd93-a194e548414f</guid><dc:creator>whiteriver1</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/27071?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/functional-verification-shared-code/27071/memory-leak-in-ncsim/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;ncsim will consume an increasing ammount of memory when a function has an output port that return an associative array which was not initialized. My simulator version is 12.10-s011.&lt;/p&gt;&lt;p&gt;Below is a code example to reproduce the failure. The code is inside a class (uvm_object):&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;function void a_function(output bit ret_val[int]);&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;	&lt;/span&gt;// empty&amp;nbsp;&lt;/p&gt;&lt;p&gt;endfunction : get_cov&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;each time the call is done a small ammount of memory is allocated. I n my case I call this function several (millions of) times during simulation and then I can see the memory leaking.&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Hold violation at post P&amp;R simulation</title><link>https://community.cadence.com/thread/23824?ContentTypeID=0</link><pubDate>Mon, 08 Oct 2012 04:28:27 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:45bc618a-429d-43a5-92fb-2b231cc9ed83</guid><dc:creator>shahein</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/23824?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/functional-verification-shared-code/23824/hold-violation-at-post-p-r-simulation/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello,&lt;/p&gt;&lt;p&gt;&amp;nbsp;I am working in a digital design. The functional, post synthesis and post P&amp;amp;R without IO pads are all working fine, i.e., functionally and with clean timing reports &amp;quot;no setup/hold violations&amp;quot;. I just added the IO pads to the same design, I had to change the timing constraints a bit for the synthesis but I have a clean design at SOC Encounter, i.e., clean DRC and clean timing reports &amp;quot;no setup/hold violations&amp;quot;. However, when I perform simulation using the exported net-list from SOC Encounter together with SDF exported from the same tool, I got a lot of hold violations. Consequently, the design is not funcitioning. &lt;/p&gt;&lt;p&gt;Why and how I can overcome or trobleshoot this issue?&lt;/p&gt;&lt;p&gt;In waiting for your feedback and comments.&lt;/p&gt;&lt;p&gt;Regards. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Simvision - Signal loading</title><link>https://community.cadence.com/thread/22415?ContentTypeID=0</link><pubDate>Fri, 04 May 2012 04:59:11 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:210f7713-e1a0-4615-98af-61f3c38d2abb</guid><dc:creator>Kirubha</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/22415?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/functional-verification-shared-code/22415/simvision---signal-loading/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi all&amp;nbsp;&lt;/p&gt;&lt;p&gt;Good day.&lt;/p&gt;&lt;p&gt;Can anyone tell me whether it is possible to view the signals once it is modified from its previous values without closing the simvision window. If possible kindly let me know the command for it(Linux). &lt;/p&gt;&lt;p&gt;&amp;nbsp;Is it possible to view the schematic for the code written?? Kindly instruct me.&lt;/p&gt;&lt;p&gt;&amp;nbsp;Thanks all.&lt;/p&gt;&lt;p&gt;S K S&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Einstein's puzzle (System Verilog) solved by Incisive92</title><link>https://community.cadence.com/thread/14085?ContentTypeID=0</link><pubDate>Fri, 20 Nov 2009 17:54:07 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:7adb417c-a350-423b-8d40-2961fd21a807</guid><dc:creator>Vinayhonnavara</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/14085?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/functional-verification-shared-code/14085/einstein-s-puzzle-system-verilog-solved-by-incisive92/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello All,&lt;/p&gt;&lt;p&gt;Following is the einstein&amp;#39;s puzzle solved by cadence Incisive92&amp;nbsp; (solved in less than 3 seconds -&amp;gt; FAST!!!!!!) &lt;/p&gt;&lt;p&gt;Thanks,&lt;/p&gt;&lt;p&gt;Vinay Honnavara&lt;/p&gt;&lt;p&gt;Verification engineer at Keyu Tech&lt;/p&gt;&lt;p&gt;vinayh@keyutech.com &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;// Author: Vinay Honnavara&lt;br /&gt;&lt;br /&gt;// Einstein formulated this problem : he said that only 2% in the world can solve this problem&lt;br /&gt;// There are 5 different parameters each with 5 different attributes&lt;br /&gt;// The following is the problem&lt;br /&gt;&lt;br /&gt;// -&amp;gt; In a street there are five houses, painted five different colors (RED, GREEN, BLUE, YELLOW, WHITE)&lt;br /&gt;&lt;br /&gt;// -&amp;gt; In each house lives a person of different nationality (GERMAN, NORWEGIAN, SWEDEN, DANISH, BRITAIN)&lt;br /&gt;&lt;br /&gt;// -&amp;gt; These five homeowners each drink a different kind of beverage (TEA, WATER, MILK, COFFEE, BEER),&lt;br /&gt;&lt;br /&gt;// -&amp;gt; smoke different brand of cigar (DUNHILL, PRINCE, BLUE MASTER, BLENDS, PALL MALL)&lt;br /&gt;&lt;br /&gt;// -&amp;gt; and keep a different pet (BIRD, CATS, DOGS, FISH, HORSES)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;// *************** Einstein&amp;#39;s riddle is: Who owns the fish? ***************************&lt;br /&gt;///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;Necessary clues:&lt;br /&gt;&lt;br /&gt;1. The British man lives in a red house.&lt;br /&gt;2. The Swedish man keeps dogs as pets.&lt;br /&gt;3. The Danish man drinks tea.&lt;br /&gt;4. The Green house is next to, and on the left of the White house.&lt;br /&gt;5. The owner of the Green house drinks coffee.&lt;br /&gt;6. The person who smokes Pall Mall rears birds.&lt;br /&gt;7. The owner of the Yellow house smokes Dunhill.&lt;br /&gt;8. The man living in the center house drinks milk.&lt;br /&gt;9. The Norwegian lives in the first house.&lt;br /&gt;10. The man who smokes Blends lives next to the one who keeps cats.&lt;br /&gt;11. The man who keeps horses lives next to the man who smokes Dunhill.&lt;br /&gt;12. The man who smokes Blue Master drinks beer.&lt;br /&gt;13. The German smokes Prince.&lt;br /&gt;14. The Norwegian lives next to the blue house.&lt;br /&gt;15. The Blends smoker lives next to the one who drinks water.&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;typedef enum bit [2:0]&amp;nbsp; {red, green, blue, yellow, white} house_color_type;&lt;br /&gt;typedef enum bit [2:0]&amp;nbsp; {german, norwegian, brit, dane, swede} nationality_type;&lt;br /&gt;typedef enum bit [2:0]&amp;nbsp; {coffee, milk, water, beer, tea} beverage_type;&lt;br /&gt;typedef enum bit [2:0]&amp;nbsp; {dunhill, prince, blue_master, blends, pall_mall} cigar_type;&lt;br /&gt;typedef enum bit [2:0]&amp;nbsp; {birds, cats, fish, dogs, horses} pet_type;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;class Einstein_problem;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;rand house_color_type house_color[5];&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;rand nationality_type nationality[5];&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;rand beverage_type beverage[5];&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;rand cigar_type cigar[5];&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;rand pet_type pet[5];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rand int arr[5];&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;constraint einstein_riddle_solver {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach (house_color[i])&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach (house_color[j])&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (i != j)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;house_color[i] != house_color[j];&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach (nationality[i])&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach (nationality[j])&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (i != j)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;nationality[i] != nationality[j];&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach (beverage[i])&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach (beverage[j])&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (i != j)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;beverage[i] != beverage[j];&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach (cigar[i])&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach (cigar[j])&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (i != j)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cigar[i] != cigar[j];&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach (pet[i])&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach (pet[j])&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (i != j)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;pet[i] != pet[j];&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//1) The British man lives in a red house.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach(nationality[i])&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(nationality[i] == brit) -&amp;gt; (house_color[i] == red);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//2) The Swedish man keeps dogs as pets.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach(nationality[i])&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(nationality[i] == swede) -&amp;gt; (pet[i] == dogs);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//3) The Danish man drinks tea.&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach(nationality[i])&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(nationality[i] == dane) -&amp;gt; (beverage[i] == tea);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//4) The Green house is next to, and on the left of the White house.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach(house_color[i])&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; if (i&amp;lt;4) &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(house_color[i] == green) -&amp;gt; (house_color[i+1] == white);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//5) The owner of the Green house drinks coffee.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach(house_color[i])&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(house_color[i] == green) -&amp;gt; (beverage[i] == coffee);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//6) The person who smokes Pall Mall rears birds.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach(cigar[i])&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(cigar[i] == pall_mall) -&amp;gt; (pet[i] == birds);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//7) The owner of the Yellow house smokes Dunhill.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach(house_color[i])&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(house_color[i] == yellow) -&amp;gt; (cigar[i] == dunhill);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//8) The man living in the center house drinks milk.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach(house_color[i])&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (i==2) // i==2 implies the center house (0,1,2,3,4) 2 is the center&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;beverage[i] == milk;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//9) The Norwegian lives in the first house.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach(nationality[i])&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (i==0) // i==0 is the first house&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;nationality[i] == norwegian;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//10) The man who smokes Blends lives next to the one who keeps cats.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach(cigar[i])&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (i==0) // if the man who smokes blends lives in the first house then the person with cats will be in the second&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(cigar[i] == blends) -&amp;gt; (pet[i+1] == cats);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach(cigar[i])&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (i&amp;gt;0 &amp;amp;&amp;amp; i&amp;lt;4) // if the man is not at the ends he can be on either side&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(cigar[i] == blends) -&amp;gt; (pet[i-1] == cats) || (pet[i+1] == cats);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach(cigar[i])&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (i==4) // if the man is at the last&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(cigar[i] == blends) -&amp;gt; (pet[i-1] == cats);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach(cigar[i])&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (i==4) &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(pet[i] == cats) -&amp;gt; (cigar[i-1] == blends);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//11) The man who keeps horses lives next to the man who smokes Dunhill.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach(pet[i])&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (i==0) // similar to the last case&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(pet[i] == horses) -&amp;gt; (cigar[i+1] == dunhill);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach(pet[i])&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (i&amp;gt;0 &amp;amp; i&amp;lt;4) &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(pet[i] == horses) -&amp;gt; (cigar[i-1] == dunhill) || (cigar[i+1] == dunhill);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach(pet[i])&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (i==4) &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(pet[i] == horses) -&amp;gt; (cigar[i-1] == dunhill);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//12) The man who smokes Blue Master drinks beer.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach(cigar[i])&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(cigar[i] == blue_master) -&amp;gt; (beverage[i] == beer);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//13) The German smokes Prince.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach(nationality[i])&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(nationality[i] == german) -&amp;gt; (cigar[i] == prince);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//14) The Norwegian lives next to the blue house.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach(nationality[i])&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (i==0) &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(nationality[i] == norwegian) -&amp;gt; (house_color[i+1] == blue);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach(nationality[i])&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (i&amp;gt;0 &amp;amp; i&amp;lt;4) &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(nationality[i] == norwegian) -&amp;gt; (house_color[i-1] == blue) || (house_color[i+1] == blue);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach(nationality[i])&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (i==4) &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(nationality[i] == norwegian) -&amp;gt; (house_color[i-1] == blue);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//15) The Blends smoker lives next to the one who drinks water.&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach(cigar[i])&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (i==0) &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(cigar[i] == blends) -&amp;gt; (beverage[i+1] == water);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach(cigar[i])&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (i&amp;gt;0 &amp;amp; i&amp;lt;4) &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(cigar[i] == blends) -&amp;gt; (beverage[i-1] == water) || (beverage[i+1] == water);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach(cigar[i])&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (i==4) &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(cigar[i] == blends) -&amp;gt; (beverage[i-1] == water);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;} // end of the constraint block&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// display all the attributes&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;task display ;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach (house_color[i])&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;begin&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$display(&amp;quot;HOUSE : %s&amp;quot;,house_color[i].name());&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;end&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach (nationality[i])&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;begin&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$display(&amp;quot;NATIONALITY : %s&amp;quot;,nationality[i].name());&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;end&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach (beverage[i])&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;begin&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$display(&amp;quot;BEVERAGE : %s&amp;quot;,beverage[i].name());&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;end&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach (cigar[i])&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;begin&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$display(&amp;quot;CIGAR: %s&amp;quot;,cigar[i].name());&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;end&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach (pet[i])&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;begin&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$display(&amp;quot;PET : %s&amp;quot;,pet[i].name());&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;end&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;foreach (pet[i])&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (pet[i] == fish)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$display(&amp;quot;THE ANSWER TO THE RIDDLE : The %s has %s &amp;quot;, nationality[i].name(), pet[i].name());&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;endtask // end display&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;endclass&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;program main ;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;initial&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;begin&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Einstein_problem ep;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ep = new();&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if(!ep.randomize())&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;$display(&amp;quot;ERROR&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ep.display();&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;end&lt;br /&gt;endprogram // end of main&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>latest Specman-Matlab package</title><link>https://community.cadence.com/thread/13458?ContentTypeID=0</link><pubDate>Tue, 15 Sep 2009 05:56:14 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:c81f985b-92d6-4c34-a5cd-f5c4078e5308</guid><dc:creator>teamspecman</dc:creator><slash:comments>3</slash:comments><comments>https://community.cadence.com/thread/13458?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/functional-verification-shared-code/13458/latest-specman-matlab-package/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;br /&gt;Attached is the latest revision of the venerable Specman-Matlab package (Lead Application Engineer&amp;nbsp;Jangook Lee is the latest to have refreshed it for a customer in Asia to support 64 bit mode.&amp;nbsp; Look for a guest blog post from him on this package shortly.)&lt;/p&gt;&lt;p&gt;There is a README file inside the package that gives a detailed overview, shows how to run a demo and/or validate it&amp;rsquo;s installed correctly, and explains the general test flow.&amp;nbsp; The test file included in the package called &amp;quot;test_get_cmp_mdim.e&amp;quot; shows all the capabilities of the package, including:&lt;/p&gt;&lt;p&gt;* Using Specman to initialize and tear down the Matlab engine in batch mode&lt;/p&gt;&lt;p&gt;* Issuing Matlab commands from &lt;em&gt;&lt;strong&gt;e&lt;/strong&gt;&lt;/em&gt;-code, using the Specman command prompt to load .m files, initializing variables, and other operational tasks.&lt;/p&gt;&lt;p&gt;* Transfering data to and from the Matlab engine to Specman / an &lt;strong&gt;&lt;em&gt;e&lt;/em&gt;&lt;/strong&gt; language test bench&lt;/p&gt;&lt;p&gt;* Comparing data of previously retrieved Matlab arrays&lt;/p&gt;&lt;p&gt;* Accessing Matlab arrays from &lt;strong&gt;&lt;em&gt;e&lt;/em&gt;&lt;/strong&gt;-code without converting them to &lt;strong&gt;&lt;em&gt;e&lt;/em&gt;&lt;/strong&gt; list data structure&lt;/p&gt;&lt;p&gt;* Convert Matlab arrays into &lt;strong&gt;&lt;em&gt;e&lt;/em&gt;&lt;/strong&gt;-lists&lt;/p&gt;&lt;p&gt;Happy coding!&lt;/p&gt;&lt;p&gt;Team Specman&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure length="605394" type="application/x-zip-compressed" url="https://community.cadence.com/cfs-file/__key/telligent-evolution-components-attachments/00-69-00-00-00-01-34-58/shr_5F00_sn_5F00_matlab.tar.zip"/><itunes:explicit/><itunes:subtitle>Attached is the latest revision of the venerable Specman-Matlab package (Lead Application Engineer&amp;nbsp;Jangook Lee is the latest to have refreshed it for a customer in Asia to support 64 bit mode.&amp;nbsp; Look for a guest blog post from him on this package shortly.) There is a README file inside the package that gives a detailed overview, shows how to run a demo and/or validate it&amp;rsquo;s installed correctly, and explains the general test flow.&amp;nbsp; The test file included in the package called &amp;quot;test_get_cmp_mdim.e&amp;quot; shows all the capabilities of the package, including: * Using Specman to initialize and tear down the Matlab engine in batch mode * Issuing Matlab commands from e-code, using the Specman command prompt to load .m files, initializing variables, and other operational tasks. * Transfering data to and from the Matlab engine to Specman / an e language test bench * Comparing data of previously retrieved Matlab arrays * Accessing Matlab arrays from e-code without converting them to e list data structure * Convert Matlab arrays into e-lists Happy coding! Team Specman &amp;nbsp;</itunes:subtitle><itunes:summary>Attached is the latest revision of the venerable Specman-Matlab package (Lead Application Engineer&amp;nbsp;Jangook Lee is the latest to have refreshed it for a customer in Asia to support 64 bit mode.&amp;nbsp; Look for a guest blog post from him on this package shortly.) There is a README file inside the package that gives a detailed overview, shows how to run a demo and/or validate it&amp;rsquo;s installed correctly, and explains the general test flow.&amp;nbsp; The test file included in the package called &amp;quot;test_get_cmp_mdim.e&amp;quot; shows all the capabilities of the package, including: * Using Specman to initialize and tear down the Matlab engine in batch mode * Issuing Matlab commands from e-code, using the Specman command prompt to load .m files, initializing variables, and other operational tasks. * Transfering data to and from the Matlab engine to Specman / an e language test bench * Comparing data of previously retrieved Matlab arrays * Accessing Matlab arrays from e-code without converting them to e list data structure * Convert Matlab arrays into e-lists Happy coding! Team Specman &amp;nbsp;</itunes:summary></item><item><title>ctags for e code, Vim compatible</title><link>https://community.cadence.com/thread/12927?ContentTypeID=0</link><pubDate>Mon, 13 Jul 2009 17:56:07 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:6c413020-4c03-44e2-ba1a-b6cc958cd200</guid><dc:creator>jpatel</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/12927?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/functional-verification-shared-code/12927/ctags-for-e-code-vim-compatible/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;In a nutshell, tags allows you to navigate through program code distributed over multiple files effectively. e.g if you see a function call or a struct in e-code and want to &amp;quot;jump&amp;quot; to the definition (which may be in a different file) then you just hit CTRL+] in Vim! Pressing CTRL+t will take you back where you came from. Check out &lt;a href="http://vim.wikia.com/wiki/Browsing_programs_with_tags#Using_tags"&gt;http://vim.wikia.com/wiki/Browsing_programs_with_tags#Using_tags&lt;/a&gt; if you want to learn more about how to use tags with Vim.&lt;/p&gt;&lt;p&gt;This utility can generate tags file for your e files. It can either walk through e import order, a directory recursively or all directories on SPECMAN_PATH recursively! The tags file will have tags for struct, unit, types, events, defines, fields, variables, etc.&lt;/p&gt;&lt;p&gt;For help and some examples, just run ctags4e -help.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure length="6506" type="application/zip" url="https://community.cadence.com/cfs-file/__key/telligent-evolution-components-attachments/00-69-00-00-00-01-29-27/ctags4e.zip"/><itunes:explicit/><itunes:subtitle>In a nutshell, tags allows you to navigate through program code distributed over multiple files effectively. e.g if you see a function call or a struct in e-code and want to &amp;quot;jump&amp;quot; to the definition (which may be in a different file) then you just hit CTRL+] in Vim! Pressing CTRL+t will take you back where you came from. Check out http://vim.wikia.com/wiki/Browsing_programs_with_tags#Using_tags if you want to learn more about how to use tags with Vim. This utility can generate tags file for your e files. It can either walk through e import order, a directory recursively or all directories on SPECMAN_PATH recursively! The tags file will have tags for struct, unit, types, events, defines, fields, variables, etc. For help and some examples, just run ctags4e -help. &amp;nbsp; &amp;nbsp;</itunes:subtitle><itunes:summary>In a nutshell, tags allows you to navigate through program code distributed over multiple files effectively. e.g if you see a function call or a struct in e-code and want to &amp;quot;jump&amp;quot; to the definition (which may be in a different file) then you just hit CTRL+] in Vim! Pressing CTRL+t will take you back where you came from. Check out http://vim.wikia.com/wiki/Browsing_programs_with_tags#Using_tags if you want to learn more about how to use tags with Vim. This utility can generate tags file for your e files. It can either walk through e import order, a directory recursively or all directories on SPECMAN_PATH recursively! The tags file will have tags for struct, unit, types, events, defines, fields, variables, etc. For help and some examples, just run ctags4e -help. &amp;nbsp; &amp;nbsp;</itunes:summary></item><item><title>IntelliGen Statistics Metrics Collection Utilility</title><link>https://community.cadence.com/thread/12630?ContentTypeID=0</link><pubDate>Thu, 04 Jun 2009 16:24:28 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:33ddd6ab-2438-46e4-8a65-dc7a68b61f0c</guid><dc:creator>Corey Goss</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/12630?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/functional-verification-shared-code/12630/intelligen-statistics-metrics-collection-utilility/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;As noted in white papers, posts on the Team Specman Blog, and the Specman documentation, IntelliGen is a totally new stimulus generator than the original &amp;quot;Pgen&amp;quot; and, as a result, there is some amount of effort needed to migrate an existing verification environment to fully leverage the power of IntelliGen.&amp;nbsp; One of the main steps in migrating code is running the linters on your code and adressing the issues highlighted.&amp;nbsp; &lt;/p&gt;&lt;p&gt;Included below is a simple utility you can include in your environment&amp;nbsp;that allows you to collect some valuable statistics about your code base to allow you to better gauge the amount of work that might be required to migrate from Pgen to IntelliGen.&amp;nbsp; The ICFS statistics reported&amp;nbsp;are of particular benefit as&amp;nbsp;the utility&amp;nbsp;not only identifies the approximate number of ICFSs in the environment, it also breaks the total number down according to generation contexts (structs/units and gen-on-the-fly statements) allowing you to better focus your migration efforts.&amp;nbsp; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;IMPORTANT&lt;/strong&gt;: Sometimes a given environment can trigger a large number of IntelliGen linting messages right off the bat.&amp;nbsp; Don&amp;#39;t let this freak you out!&amp;nbsp; This does not mean that migration will be a long effort as quite often some slight changes to an environment remove a large number of identified issues.&amp;nbsp; I recently encountered a situation where a simple change to three locations in the environment, removed 500+ ICFSs!&lt;/p&gt;&lt;p&gt;The methods included in&amp;nbsp;the utility can be used to report information on the following:&lt;br /&gt;- Number of e modules &lt;br /&gt;- Number of lines in the environment (including blanks and comments)&lt;br /&gt;- Number and type of IntelliGen Guidelines linting messages&lt;br /&gt;- Number of Inconsistently Connected Field Sets (ICFSs)&lt;br /&gt;- Number of ICFS contexts and how many ICFSs per context&lt;br /&gt;- Number of soft..select overlays found in the envioronment&lt;br /&gt;- Number of Laces identified in the environment&lt;/p&gt;&lt;p&gt;&lt;br /&gt;To use the code below, simply load it before/after loading e-code and then &lt;br /&gt;you can execute any of the following methods:&lt;/p&gt;&lt;p&gt;- sys.print_file_stats()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : prints # of lines and files &lt;br /&gt;- sys.print_constraint_stats()&amp;nbsp;&amp;nbsp; : prints # of constraints in the environment&lt;br /&gt;- sys.print_guideline_stats()&amp;nbsp;&amp;nbsp;&amp;nbsp; : prints # of each type of linting message&lt;br /&gt;- sys.print_icfs_stats()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; : prints # of ICFSs, contexts and #ICFS/context&lt;br /&gt;- sys.print_soft_select_stats() : prints # of soft select overlay issues&lt;br /&gt;- sys.print_lace_stats()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : *Only works for SPMNv6.2s4 and later* prints # of laces identified in the environment&lt;/p&gt;&lt;p&gt;Each of the above calls to methods produces it&amp;#39;s own log files (stored in the current working directory) containing relevant information for more detailed analysis. &lt;br /&gt;- file_stats_log.elog : Output of &amp;quot;show modules&amp;quot; command&lt;br /&gt;- constraint_log.elog : Output of the &amp;quot;show constraint&amp;quot; command&lt;br /&gt;- guidelines_log.elog : Output of &amp;quot;gen lint -g&amp;quot; (with notification set to MAX_INT in order to get all warnings)&lt;br /&gt;- icfs_log.elog&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Output of &amp;quot;gen lint -i&amp;quot; command&lt;br /&gt;- soft_select_log.elog: Output of the &amp;quot;gen lint -s&amp;quot; command&lt;br /&gt;- lace_log.elog&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Output of the &amp;quot;show lace&amp;quot; command&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Happy generating!&lt;/p&gt;&lt;p&gt;Corey Goss&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure length="10871" type="text/plain" url="https://community.cadence.com/cfs-file/__key/telligent-evolution-components-attachments/00-69-00-00-00-01-26-30/igen_5F00_stats.e.txt"/><itunes:explicit/><itunes:subtitle>As noted in white papers, posts on the Team Specman Blog, and the Specman documentation, IntelliGen is a totally new stimulus generator than the original &amp;quot;Pgen&amp;quot; and, as a result, there is some amount of effort needed to migrate an existing verification environment to fully leverage the power of IntelliGen.&amp;nbsp; One of the main steps in migrating code is running the linters on your code and adressing the issues highlighted.&amp;nbsp; Included below is a simple utility you can include in your environment&amp;nbsp;that allows you to collect some valuable statistics about your code base to allow you to better gauge the amount of work that might be required to migrate from Pgen to IntelliGen.&amp;nbsp; The ICFS statistics reported&amp;nbsp;are of particular benefit as&amp;nbsp;the utility&amp;nbsp;not only identifies the approximate number of ICFSs in the environment, it also breaks the total number down according to generation contexts (structs/units and gen-on-the-fly statements) allowing you to better focus your migration efforts.&amp;nbsp; IMPORTANT: Sometimes a given environment can trigger a large number of IntelliGen linting messages right off the bat.&amp;nbsp; Don&amp;#39;t let this freak you out!&amp;nbsp; This does not mean that migration will be a long effort as quite often some slight changes to an environment remove a large number of identified issues.&amp;nbsp; I recently encountered a situation where a simple change to three locations in the environment, removed 500+ ICFSs! The methods included in&amp;nbsp;the utility can be used to report information on the following: - Number of e modules - Number of lines in the environment (including blanks and comments) - Number and type of IntelliGen Guidelines linting messages - Number of Inconsistently Connected Field Sets (ICFSs) - Number of ICFS contexts and how many ICFSs per context - Number of soft..select overlays found in the envioronment - Number of Laces identified in the environment To use the code below, simply load it before/after loading e-code and then you can execute any of the following methods: - sys.print_file_stats()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : prints # of lines and files - sys.print_constraint_stats()&amp;nbsp;&amp;nbsp; : prints # of constraints in the environment - sys.print_guideline_stats()&amp;nbsp;&amp;nbsp;&amp;nbsp; : prints # of each type of linting message - sys.print_icfs_stats()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; : prints # of ICFSs, contexts and #ICFS/context - sys.print_soft_select_stats() : prints # of soft select overlay issues - sys.print_lace_stats()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : *Only works for SPMNv6.2s4 and later* prints # of laces identified in the environment Each of the above calls to methods produces it&amp;#39;s own log files (stored in the current working directory) containing relevant information for more detailed analysis. - file_stats_log.elog : Output of &amp;quot;show modules&amp;quot; command - constraint_log.elog : Output of the &amp;quot;show constraint&amp;quot; command - guidelines_log.elog : Output of &amp;quot;gen lint -g&amp;quot; (with notification set to MAX_INT in order to get all warnings) - icfs_log.elog&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Output of &amp;quot;gen lint -i&amp;quot; command - soft_select_log.elog: Output of the &amp;quot;gen lint -s&amp;quot; command - lace_log.elog&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Output of the &amp;quot;show lace&amp;quot; command Happy generating! Corey Goss</itunes:subtitle><itunes:summary>As noted in white papers, posts on the Team Specman Blog, and the Specman documentation, IntelliGen is a totally new stimulus generator than the original &amp;quot;Pgen&amp;quot; and, as a result, there is some amount of effort needed to migrate an existing verification environment to fully leverage the power of IntelliGen.&amp;nbsp; One of the main steps in migrating code is running the linters on your code and adressing the issues highlighted.&amp;nbsp; Included below is a simple utility you can include in your environment&amp;nbsp;that allows you to collect some valuable statistics about your code base to allow you to better gauge the amount of work that might be required to migrate from Pgen to IntelliGen.&amp;nbsp; The ICFS statistics reported&amp;nbsp;are of particular benefit as&amp;nbsp;the utility&amp;nbsp;not only identifies the approximate number of ICFSs in the environment, it also breaks the total number down according to generation contexts (structs/units and gen-on-the-fly statements) allowing you to better focus your migration efforts.&amp;nbsp; IMPORTANT: Sometimes a given environment can trigger a large number of IntelliGen linting messages right off the bat.&amp;nbsp; Don&amp;#39;t let this freak you out!&amp;nbsp; This does not mean that migration will be a long effort as quite often some slight changes to an environment remove a large number of identified issues.&amp;nbsp; I recently encountered a situation where a simple change to three locations in the environment, removed 500+ ICFSs! The methods included in&amp;nbsp;the utility can be used to report information on the following: - Number of e modules - Number of lines in the environment (including blanks and comments) - Number and type of IntelliGen Guidelines linting messages - Number of Inconsistently Connected Field Sets (ICFSs) - Number of ICFS contexts and how many ICFSs per context - Number of soft..select overlays found in the envioronment - Number of Laces identified in the environment To use the code below, simply load it before/after loading e-code and then you can execute any of the following methods: - sys.print_file_stats()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : prints # of lines and files - sys.print_constraint_stats()&amp;nbsp;&amp;nbsp; : prints # of constraints in the environment - sys.print_guideline_stats()&amp;nbsp;&amp;nbsp;&amp;nbsp; : prints # of each type of linting message - sys.print_icfs_stats()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; : prints # of ICFSs, contexts and #ICFS/context - sys.print_soft_select_stats() : prints # of soft select overlay issues - sys.print_lace_stats()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : *Only works for SPMNv6.2s4 and later* prints # of laces identified in the environment Each of the above calls to methods produces it&amp;#39;s own log files (stored in the current working directory) containing relevant information for more detailed analysis. - file_stats_log.elog : Output of &amp;quot;show modules&amp;quot; command - constraint_log.elog : Output of the &amp;quot;show constraint&amp;quot; command - guidelines_log.elog : Output of &amp;quot;gen lint -g&amp;quot; (with notification set to MAX_INT in order to get all warnings) - icfs_log.elog&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Output of &amp;quot;gen lint -i&amp;quot; command - soft_select_log.elog: Output of the &amp;quot;gen lint -s&amp;quot; command - lace_log.elog&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Output of the &amp;quot;show lace&amp;quot; command Happy generating! Corey Goss</itunes:summary></item><item><title>e-code: Macro example code for Team Specman blog post</title><link>https://community.cadence.com/thread/12340?ContentTypeID=0</link><pubDate>Mon, 27 Apr 2009 07:11:19 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:5d13c010-efb9-47b3-b6e7-bc092d50fabb</guid><dc:creator>Hilmar</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/12340?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/functional-verification-shared-code/12340/e-code-macro-example-code-for-team-specman-blog-post/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi everybody,&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The attached package is a tiny code example with a demo for an upcoming Team Specman blog post about writing macros. &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Hilmar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure length="957" type="application/zip" url="https://community.cadence.com/cfs-file/__key/telligent-evolution-components-attachments/00-69-00-00-00-01-23-40/team_5F00_specman_5F00_macro_5F00_blog_5F00_code_5F00_example.tar.gz.zip"/><itunes:explicit/><itunes:subtitle>Hi everybody, &amp;nbsp; The attached package is a tiny code example with a demo for an upcoming Team Specman blog post about writing macros. &amp;nbsp; Hilmar</itunes:subtitle><itunes:summary>Hi everybody, &amp;nbsp; The attached package is a tiny code example with a demo for an upcoming Team Specman blog post about writing macros. &amp;nbsp; Hilmar</itunes:summary></item><item><title>vr_ad register definition utility</title><link>https://community.cadence.com/thread/11352?ContentTypeID=0</link><pubDate>Tue, 13 Jan 2009 06:55:41 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:41d83939-f0b0-4e64-a04e-9d56727a52f3</guid><dc:creator>StephenH</dc:creator><slash:comments>20</slash:comments><comments>https://community.cadence.com/thread/11352?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/functional-verification-shared-code/11352/vr_ad-register-definition-utility/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi All.&lt;/p&gt;&lt;p&gt;I put together a small Perl script to generate vr_ad register definitions from SPIRIT (IP-XACT) XML.&lt;br /&gt;If you&amp;#39;ve got not idea what IP-XACT is, have a look here &lt;a href="http://www.spiritconsortium.org/"&gt;www.spiritconsortium.org/&lt;/a&gt;, then start pestering your design manager to use it :-)&lt;/p&gt;&lt;p&gt;The script can filter out registers and override R/W access types if needed.&lt;/p&gt;&lt;p&gt;An example XML file is included with the package so that you can play with it, and there&amp;#39;s a detailed README.txt as well.&lt;/p&gt;&lt;p&gt;Here&amp;#39;s an example of the generated e code:&lt;/p&gt;&lt;pre&gt;&lt;font color="#0000ff"&gt;// Automatically generated from xdmac.xml&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;// DO NOT EDIT, or your changes may be lost&lt;/font&gt;&lt;br /&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;&amp;lt;&lt;/b&gt;&lt;/font&gt;&amp;#39;&lt;br /&gt;&lt;br /&gt;&lt;font color="#a020f0"&gt;import&lt;/font&gt; vr_ad&lt;font color="#a52a2a"&gt;&lt;b&gt;/&lt;/b&gt;&lt;/font&gt;e&lt;font color="#a52a2a"&gt;&lt;b&gt;/&lt;/b&gt;&lt;/font&gt;vr_ad_top&lt;font color="#a52a2a"&gt;&lt;b&gt;;&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;// Component = XDMAC&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;// memoryMap = xdmac&lt;/font&gt;&lt;br /&gt;&lt;font color="#2e8b57"&gt;&lt;b&gt;extend&lt;/b&gt;&lt;/font&gt; vr_ad_map_kind &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;[&lt;/b&gt;&lt;/font&gt;XDMAC&lt;font color="#a52a2a"&gt;&lt;b&gt;];&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;// addressBlock = dma_eth&lt;/font&gt;&lt;br /&gt;&lt;font color="#2e8b57"&gt;&lt;b&gt;extend&lt;/b&gt;&lt;/font&gt; vr_ad_reg_file_kind &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;[&lt;/b&gt;&lt;/font&gt;DMA_ETH&lt;font color="#a52a2a"&gt;&lt;b&gt;];&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#2e8b57"&gt;&lt;b&gt;extend&lt;/b&gt;&lt;/font&gt; DMA_ETH vr_ad_reg_file &lt;font color="#a52a2a"&gt;&lt;b&gt;{&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;  &lt;font color="#a52a2a"&gt;&lt;b&gt;keep&lt;/b&gt;&lt;/font&gt; size &lt;font color="#a52a2a"&gt;&lt;b&gt;==&lt;/b&gt;&lt;/font&gt; &lt;font color="#ff00ff"&gt;20&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;;&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;  &lt;font color="#a52a2a"&gt;&lt;b&gt;keep&lt;/b&gt;&lt;/font&gt; addressing_width_in_bytes &lt;font color="#a52a2a"&gt;&lt;b&gt;==&lt;/b&gt;&lt;/font&gt; &lt;font color="#ff00ff"&gt;4&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;;&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;};&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;// Register = command&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;// Reset    = 0x00&lt;/font&gt;&lt;br /&gt;reg_def COMMAND DMA_ETH &lt;font color="#ff00ff"&gt;0x0&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;{&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;  &lt;font color="#0000ff"&gt;// Field resv3 = command[31:29]&lt;/font&gt;&lt;br /&gt;  reg_fld resv3 &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; &lt;font color="#2e8b57"&gt;&lt;b&gt;uint&lt;/b&gt;&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;&lt;font color="#2e8b57"&gt;&lt;b&gt;bits&lt;/b&gt;&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt;&lt;font color="#ff00ff"&gt;3&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; R &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; &lt;font color="#ff00ff"&gt;0&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; cov &lt;font color="#a52a2a"&gt;&lt;b&gt;;&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;  &lt;font color="#0000ff"&gt;// Field transfer_size = command[28:19]&lt;/font&gt;&lt;br /&gt;  reg_fld transfer_size &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; &lt;font color="#2e8b57"&gt;&lt;b&gt;uint&lt;/b&gt;&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;&lt;font color="#2e8b57"&gt;&lt;b&gt;bits&lt;/b&gt;&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt;&lt;font color="#ff00ff"&gt;10&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; RW &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; &lt;font color="#ff00ff"&gt;0&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; cov &lt;font color="#a52a2a"&gt;&lt;b&gt;;&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;  &lt;font color="#0000ff"&gt;// Field dma_transfer_target = command[18:14]&lt;/font&gt;&lt;br /&gt;  reg_fld dma_transfer_target &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; &lt;font color="#2e8b57"&gt;&lt;b&gt;uint&lt;/b&gt;&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;&lt;font color="#2e8b57"&gt;&lt;b&gt;bits&lt;/b&gt;&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt;&lt;font color="#ff00ff"&gt;5&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; RW &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; &lt;font color="#ff00ff"&gt;0&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; cov &lt;font color="#a52a2a"&gt;&lt;b&gt;;&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;  &lt;font color="#0000ff"&gt;// Field resv2 = command[13:10]&lt;/font&gt;&lt;br /&gt;  reg_fld resv2 &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; &lt;font color="#2e8b57"&gt;&lt;b&gt;uint&lt;/b&gt;&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;&lt;font color="#2e8b57"&gt;&lt;b&gt;bits&lt;/b&gt;&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt;&lt;font color="#ff00ff"&gt;4&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; R &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; &lt;font color="#ff00ff"&gt;0&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; cov &lt;font color="#a52a2a"&gt;&lt;b&gt;;&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;  &lt;font color="#0000ff"&gt;// Field transmit_receive = command[9:9]&lt;/font&gt;&lt;br /&gt;  reg_fld transmit_receive &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; &lt;font color="#2e8b57"&gt;&lt;b&gt;uint&lt;/b&gt;&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;&lt;font color="#2e8b57"&gt;&lt;b&gt;bits&lt;/b&gt;&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt;&lt;font color="#ff00ff"&gt;1&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; RW &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; &lt;font color="#ff00ff"&gt;0&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; cov &lt;font color="#a52a2a"&gt;&lt;b&gt;;&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;  &lt;font color="#0000ff"&gt;// Field resv1 = command[8:5]&lt;/font&gt;&lt;br /&gt;  reg_fld resv1 &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; &lt;font color="#2e8b57"&gt;&lt;b&gt;uint&lt;/b&gt;&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;&lt;font color="#2e8b57"&gt;&lt;b&gt;bits&lt;/b&gt;&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt;&lt;font color="#ff00ff"&gt;4&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; R &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; &lt;font color="#ff00ff"&gt;0&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; cov &lt;font color="#a52a2a"&gt;&lt;b&gt;;&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;  &lt;font color="#0000ff"&gt;// Field dest_address_enable = command[4:4]&lt;/font&gt;&lt;br /&gt;  reg_fld dest_address_enable &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; &lt;font color="#2e8b57"&gt;&lt;b&gt;uint&lt;/b&gt;&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;&lt;font color="#2e8b57"&gt;&lt;b&gt;bits&lt;/b&gt;&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt;&lt;font color="#ff00ff"&gt;1&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; RW &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; &lt;font color="#ff00ff"&gt;0&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; cov &lt;font color="#a52a2a"&gt;&lt;b&gt;;&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;  &lt;font color="#0000ff"&gt;// Field source_address_enable = command[3:3]&lt;/font&gt;&lt;br /&gt;  reg_fld source_address_enable &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; &lt;font color="#2e8b57"&gt;&lt;b&gt;uint&lt;/b&gt;&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;&lt;font color="#2e8b57"&gt;&lt;b&gt;bits&lt;/b&gt;&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt;&lt;font color="#ff00ff"&gt;1&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; RW &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; &lt;font color="#ff00ff"&gt;0&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; cov &lt;font color="#a52a2a"&gt;&lt;b&gt;;&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;  &lt;font color="#0000ff"&gt;// Field word_size = command[2:0]&lt;/font&gt;&lt;br /&gt;  reg_fld word_size &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; &lt;font color="#2e8b57"&gt;&lt;b&gt;uint&lt;/b&gt;&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;&lt;font color="#2e8b57"&gt;&lt;b&gt;bits&lt;/b&gt;&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt;&lt;font color="#ff00ff"&gt;3&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; R &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; &lt;font color="#ff00ff"&gt;0&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; cov &lt;font color="#a52a2a"&gt;&lt;b&gt;;&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;};&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;// Register = queue_exec&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;// Reset    = 0x00&lt;/font&gt;&lt;br /&gt;reg_def QUEUE_EXEC DMA_ETH &lt;font color="#ff00ff"&gt;0x10&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;{&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;  &lt;font color="#0000ff"&gt;// Field resv = queue_exec[31:1]&lt;/font&gt;&lt;br /&gt;  reg_fld resv &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; &lt;font color="#2e8b57"&gt;&lt;b&gt;uint&lt;/b&gt;&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;&lt;font color="#2e8b57"&gt;&lt;b&gt;bits&lt;/b&gt;&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt;&lt;font color="#ff00ff"&gt;31&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; R &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; &lt;font color="#ff00ff"&gt;0&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; cov &lt;font color="#a52a2a"&gt;&lt;b&gt;;&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;  &lt;font color="#0000ff"&gt;// Field exec = queue_exec[0:0]&lt;/font&gt;&lt;br /&gt;  reg_fld &lt;font color="#008b8b"&gt;exec&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; &lt;font color="#2e8b57"&gt;&lt;b&gt;uint&lt;/b&gt;&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;&lt;font color="#2e8b57"&gt;&lt;b&gt;bits&lt;/b&gt;&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt;&lt;font color="#ff00ff"&gt;1&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; RW &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; &lt;font color="#ff00ff"&gt;0&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; cov &lt;font color="#a52a2a"&gt;&lt;b&gt;;&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;};&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#2e8b57"&gt;&lt;b&gt;extend&lt;/b&gt;&lt;/font&gt; XDMAC vr_ad_map &lt;font color="#a52a2a"&gt;&lt;b&gt;{&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;  dma_eth &lt;font color="#a52a2a"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/font&gt; DMA_ETH vr_ad_reg_file&lt;font color="#a52a2a"&gt;&lt;b&gt;;&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;  &lt;font color="#008b8b"&gt;post_generate&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;()&lt;/b&gt;&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;is&lt;/b&gt;&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;also&lt;/b&gt;&lt;/font&gt; &lt;font color="#a52a2a"&gt;&lt;b&gt;{&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;    add_with_offset&lt;font color="#a52a2a"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/font&gt;&lt;font color="#ff00ff"&gt;0x00&lt;/font&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;,&lt;/b&gt;&lt;/font&gt; dma_eth&lt;font color="#a52a2a"&gt;&lt;b&gt;);&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;    dma_eth&lt;font color="#a52a2a"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/font&gt;reset&lt;font color="#a52a2a"&gt;&lt;b&gt;();&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;  &lt;font color="#a52a2a"&gt;&lt;b&gt;};&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#a52a2a"&gt;&lt;b&gt;}&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&amp;#39;&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Any comments, please feed them back to me so I can enhance the script. &lt;br /&gt;Note that this forum forces me to post a .zip file rather than .tgz, please be careful to unpack the file under Linux, not Windows, else the DOS linefeeds will corrupt the Perl and XML files. &lt;/p&gt;&lt;p&gt;Steve &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure length="12208" type="application/octetstream" url="https://community.cadence.com/cfs-file/__key/telligent-evolution-components-attachments/00-69-00-00-00-01-13-52/ipxact2vrad_2D00_0.7.zip"/><itunes:explicit/><itunes:subtitle>Hi All. I put together a small Perl script to generate vr_ad register definitions from SPIRIT (IP-XACT) XML. If you&amp;#39;ve got not idea what IP-XACT is, have a look here www.spiritconsortium.org/, then start pestering your design manager to use it :-) The script can filter out registers and override R/W access types if needed. An example XML file is included with the package so that you can play with it, and there&amp;#39;s a detailed README.txt as well. Here&amp;#39;s an example of the generated e code:// Automatically generated from xdmac.xml // DO NOT EDIT, or your changes may be lost &amp;lt;&amp;#39; import vr_ad/e/vr_ad_top; // Component = XDMAC // memoryMap = xdmac extend vr_ad_map_kind : [XDMAC]; // addressBlock = dma_eth extend vr_ad_reg_file_kind : [DMA_ETH]; extend DMA_ETH vr_ad_reg_file { keep size == 20; keep addressing_width_in_bytes == 4; }; // Register = command // Reset = 0x00 reg_def COMMAND DMA_ETH 0x0 { // Field resv3 = command[31:29] reg_fld resv3 : uint(bits:3) : R : 0 : cov ; // Field transfer_size = command[28:19] reg_fld transfer_size : uint(bits:10) : RW : 0 : cov ; // Field dma_transfer_target = command[18:14] reg_fld dma_transfer_target : uint(bits:5) : RW : 0 : cov ; // Field resv2 = command[13:10] reg_fld resv2 : uint(bits:4) : R : 0 : cov ; // Field transmit_receive = command[9:9] reg_fld transmit_receive : uint(bits:1) : RW : 0 : cov ; // Field resv1 = command[8:5] reg_fld resv1 : uint(bits:4) : R : 0 : cov ; // Field dest_address_enable = command[4:4] reg_fld dest_address_enable : uint(bits:1) : RW : 0 : cov ; // Field source_address_enable = command[3:3] reg_fld source_address_enable : uint(bits:1) : RW : 0 : cov ; // Field word_size = command[2:0] reg_fld word_size : uint(bits:3) : R : 0 : cov ; }; // Register = queue_exec // Reset = 0x00 reg_def QUEUE_EXEC DMA_ETH 0x10 { // Field resv = queue_exec[31:1] reg_fld resv : uint(bits:31) : R : 0 : cov ; // Field exec = queue_exec[0:0] reg_fld exec : uint(bits:1) : RW : 0 : cov ; }; extend XDMAC vr_ad_map { dma_eth : DMA_ETH vr_ad_reg_file; post_generate() is also { add_with_offset(0x00, dma_eth); dma_eth.reset(); }; } &amp;#39;&amp;gt; &amp;nbsp; Any comments, please feed them back to me so I can enhance the script. Note that this forum forces me to post a .zip file rather than .tgz, please be careful to unpack the file under Linux, not Windows, else the DOS linefeeds will corrupt the Perl and XML files. Steve</itunes:subtitle><itunes:summary>Hi All. I put together a small Perl script to generate vr_ad register definitions from SPIRIT (IP-XACT) XML. If you&amp;#39;ve got not idea what IP-XACT is, have a look here www.spiritconsortium.org/, then start pestering your design manager to use it :-) The script can filter out registers and override R/W access types if needed. An example XML file is included with the package so that you can play with it, and there&amp;#39;s a detailed README.txt as well. Here&amp;#39;s an example of the generated e code:// Automatically generated from xdmac.xml // DO NOT EDIT, or your changes may be lost &amp;lt;&amp;#39; import vr_ad/e/vr_ad_top; // Component = XDMAC // memoryMap = xdmac extend vr_ad_map_kind : [XDMAC]; // addressBlock = dma_eth extend vr_ad_reg_file_kind : [DMA_ETH]; extend DMA_ETH vr_ad_reg_file { keep size == 20; keep addressing_width_in_bytes == 4; }; // Register = command // Reset = 0x00 reg_def COMMAND DMA_ETH 0x0 { // Field resv3 = command[31:29] reg_fld resv3 : uint(bits:3) : R : 0 : cov ; // Field transfer_size = command[28:19] reg_fld transfer_size : uint(bits:10) : RW : 0 : cov ; // Field dma_transfer_target = command[18:14] reg_fld dma_transfer_target : uint(bits:5) : RW : 0 : cov ; // Field resv2 = command[13:10] reg_fld resv2 : uint(bits:4) : R : 0 : cov ; // Field transmit_receive = command[9:9] reg_fld transmit_receive : uint(bits:1) : RW : 0 : cov ; // Field resv1 = command[8:5] reg_fld resv1 : uint(bits:4) : R : 0 : cov ; // Field dest_address_enable = command[4:4] reg_fld dest_address_enable : uint(bits:1) : RW : 0 : cov ; // Field source_address_enable = command[3:3] reg_fld source_address_enable : uint(bits:1) : RW : 0 : cov ; // Field word_size = command[2:0] reg_fld word_size : uint(bits:3) : R : 0 : cov ; }; // Register = queue_exec // Reset = 0x00 reg_def QUEUE_EXEC DMA_ETH 0x10 { // Field resv = queue_exec[31:1] reg_fld resv : uint(bits:31) : R : 0 : cov ; // Field exec = queue_exec[0:0] reg_fld exec : uint(bits:1) : RW : 0 : cov ; }; extend XDMAC vr_ad_map { dma_eth : DMA_ETH vr_ad_reg_file; post_generate() is also { add_with_offset(0x00, dma_eth); dma_eth.reset(); }; } &amp;#39;&amp;gt; &amp;nbsp; Any comments, please feed them back to me so I can enhance the script. Note that this forum forces me to post a .zip file rather than .tgz, please be careful to unpack the file under Linux, not Windows, else the DOS linefeeds will corrupt the Perl and XML files. Steve</itunes:summary></item><item><title>Specman Makefile generator utility</title><link>https://community.cadence.com/thread/11110?ContentTypeID=0</link><pubDate>Tue, 02 Dec 2008 08:31:45 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:689617db-ca57-4b1f-9482-13162ad95bbd</guid><dc:creator>StephenH</dc:creator><slash:comments>4</slash:comments><comments>https://community.cadence.com/thread/11110?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/functional-verification-shared-code/11110/specman-makefile-generator-utility/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I&amp;#39;ve heard lots of people asking for a way to generate Makefiles for Specman code, and it seems there are some who don&amp;#39;t use &amp;quot;irun&amp;quot; which takes care of this automatically. So I wrote this little utility to build a basic Makefile based on the compiled and loaded e code.&lt;/p&gt;&lt;p&gt;It&amp;#39;s really easy to use: at any time load the snmakedeps.e into Specman, and use &amp;quot;write makefile &amp;lt;name&amp;gt; [-ignore_test]&amp;quot;.&lt;br /&gt;This will dump a Makefile with a set of variables corresponding to the loaded packages, and targets to build any compiled modules.&lt;br /&gt;Using -ignore_test will avoid having the test file in the Makefile, in case you switch tests often (who doesn&amp;#39;t?).&lt;/p&gt;&lt;p&gt;It also writes a stub target so you can do &amp;quot;make stub_ncvlog&amp;quot; or &amp;quot;make stub vhdl&amp;quot; etc.&lt;/p&gt;&lt;p&gt;The targets are pretty basic, I thought it was more useful to #include this into the main Makefile and define your own more complex targets / dependencies as required.&lt;/p&gt;&lt;p&gt;The package uses the &amp;quot;reflection&amp;quot; facility of the e language, which is now documented since Specman 8.1, so you can extend this utility if you want (please share any enhancements you make).&lt;/p&gt;&lt;p&gt;&amp;nbsp;Enjoy! :-)&lt;/p&gt;&lt;p&gt;Steve. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure length="2973" type="application/zip" url="https://community.cadence.com/cfs-file/__key/telligent-evolution-components-attachments/00-69-00-00-00-01-11-10/snmakedeps_5F00_v1.0.zip"/><itunes:explicit/><itunes:subtitle>I&amp;#39;ve heard lots of people asking for a way to generate Makefiles for Specman code, and it seems there are some who don&amp;#39;t use &amp;quot;irun&amp;quot; which takes care of this automatically. So I wrote this little utility to build a basic Makefile based on the compiled and loaded e code. It&amp;#39;s really easy to use: at any time load the snmakedeps.e into Specman, and use &amp;quot;write makefile &amp;lt;name&amp;gt; [-ignore_test]&amp;quot;. This will dump a Makefile with a set of variables corresponding to the loaded packages, and targets to build any compiled modules. Using -ignore_test will avoid having the test file in the Makefile, in case you switch tests often (who doesn&amp;#39;t?). It also writes a stub target so you can do &amp;quot;make stub_ncvlog&amp;quot; or &amp;quot;make stub vhdl&amp;quot; etc. The targets are pretty basic, I thought it was more useful to #include this into the main Makefile and define your own more complex targets / dependencies as required. The package uses the &amp;quot;reflection&amp;quot; facility of the e language, which is now documented since Specman 8.1, so you can extend this utility if you want (please share any enhancements you make). &amp;nbsp;Enjoy! :-) Steve.</itunes:subtitle><itunes:summary>I&amp;#39;ve heard lots of people asking for a way to generate Makefiles for Specman code, and it seems there are some who don&amp;#39;t use &amp;quot;irun&amp;quot; which takes care of this automatically. So I wrote this little utility to build a basic Makefile based on the compiled and loaded e code. It&amp;#39;s really easy to use: at any time load the snmakedeps.e into Specman, and use &amp;quot;write makefile &amp;lt;name&amp;gt; [-ignore_test]&amp;quot;. This will dump a Makefile with a set of variables corresponding to the loaded packages, and targets to build any compiled modules. Using -ignore_test will avoid having the test file in the Makefile, in case you switch tests often (who doesn&amp;#39;t?). It also writes a stub target so you can do &amp;quot;make stub_ncvlog&amp;quot; or &amp;quot;make stub vhdl&amp;quot; etc. The targets are pretty basic, I thought it was more useful to #include this into the main Makefile and define your own more complex targets / dependencies as required. The package uses the &amp;quot;reflection&amp;quot; facility of the e language, which is now documented since Specman 8.1, so you can extend this utility if you want (please share any enhancements you make). &amp;nbsp;Enjoy! :-) Steve.</itunes:summary></item><item><title>Register Classes for SystemVerilog OVM</title><link>https://community.cadence.com/thread/10532?ContentTypeID=0</link><pubDate>Tue, 09 Sep 2008 23:20:24 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:63f48c06-ae1e-49b8-8bcb-b6196daa191f</guid><dc:creator>AnilRaj</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/10532?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/functional-verification-shared-code/10532/register-classes-for-systemverilog-ovm/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi, I am uploading a register class, which can be used for modeling hardware registers. I am uploading the source code and examples on how to run it. I also have a user guide which has all the APIs listed and explained. The user guide is ARV.pdf in the attached tar file. I have named the class ARV, which stands for Architect&amp;#39;s Register View. It has got very good randomization and coverage features. Users have told me that its better than RAL. You can download it from&amp;nbsp;&lt;a href="http://verisilica.info/ARV.php"&gt;http://verisilica.info/ARV.php&lt;/a&gt;&lt;br /&gt;. There is a limit of 750KB in this cadence website. The ARV file is 4MB. That is why, I am uploading it at this site. I have a big pdf documentation and a doxygen documentation there. That is the reason for the bigger file size. The password to open the ZIP file is ovm_arv. I hope, everyone will use these classes. 
&lt;br /&gt;&lt;br /&gt;
Please contact me for any help. 
&lt;br /&gt;Regards ANil
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Welcome! Please use this forum to upload your code</title><link>https://community.cadence.com/thread/10315?ContentTypeID=0</link><pubDate>Tue, 05 Aug 2008 21:01:43 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:7c403e8e-d314-42c3-a8d3-e2ec1cb25f60</guid><dc:creator>archive</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/10315?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/functional-verification-shared-code/10315/welcome-please-use-this-forum-to-upload-your-code/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;span class="h8"&gt;&lt;font size="2" color="#333333"&gt;Please include&amp;nbsp;a brief summary of how to use it. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ce_tools directory no longer shipped with Specman</title><link>https://community.cadence.com/thread/10055?ContentTypeID=0</link><pubDate>Tue, 22 Apr 2008 08:59:07 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:f8fee1e2-fe3c-436a-bfa5-f33b854412ef</guid><dc:creator>archive</dc:creator><slash:comments>2</slash:comments><comments>https://community.cadence.com/thread/10055?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/functional-verification-shared-code/10055/ce_tools-directory-no-longer-shipped-with-specman/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello All,&lt;br /&gt;&lt;br /&gt;starting with version 8.1 the contents of the ce_tools directory will no longer&lt;br /&gt;be shipped with Specman. The directory contains some unsupported AE/R&amp;amp;D&lt;br /&gt;ware and has not been updated for several releases (i.e. most of those old&lt;br /&gt;packages don&amp;#39;t work with the latest release).&lt;br /&gt; &lt;br /&gt;Attached is the contents of this directory. Please read the README before&lt;br /&gt;using any of the packages.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;-hannes&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;i&gt;Originally posted in cdnusers.org by&lt;/i&gt; &lt;b&gt;hannes&lt;/b&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure length="1833102" type="application/x-octet-stream" url="https://community.cadence.com/cfs-file/__key/telligent-evolution-components-attachments/00-69-00-00-00-01-00-55/sn_5F00_ce_5F00_tools_5F00_6.2.tar.gz"/><itunes:explicit/><itunes:subtitle>Hello All, starting with version 8.1 the contents of the ce_tools directory will no longer be shipped with Specman. The directory contains some unsupported AE/R&amp;amp;D ware and has not been updated for several releases (i.e. most of those old packages don&amp;#39;t work with the latest release).   Attached is the contents of this directory. Please read the README before using any of the packages. Regards, -hannes Originally posted in cdnusers.org by hannes</itunes:subtitle><itunes:summary>Hello All, starting with version 8.1 the contents of the ce_tools directory will no longer be shipped with Specman. The directory contains some unsupported AE/R&amp;amp;D ware and has not been updated for several releases (i.e. most of those old packages don&amp;#39;t work with the latest release).   Attached is the contents of this directory. Please read the README before using any of the packages. Regards, -hannes Originally posted in cdnusers.org by hannes</itunes:summary></item><item><title>Item constraint macro</title><link>https://community.cadence.com/thread/10047?ContentTypeID=0</link><pubDate>Wed, 31 Oct 2007 09:15:20 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:093b432e-b6a3-4d1a-9569-0ef1820065d4</guid><dc:creator>archive</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/10047?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/functional-verification-shared-code/10047/item-constraint-macro/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;The following macros encapsulates a design pattern that enables constraining data item fields by &amp;#39;do&amp;#39; actions of a high level sequence. This can be done without presupposing anything about the sequence tree generated under the do-ing sequence.&lt;br /&gt;&lt;br /&gt;The tar file consists of 4 files:&lt;br /&gt;- item_constraint_macro.e - the &amp;#39;item_constraint&amp;#39; and &amp;#39;sequence_export&amp;#39; macros definition&lt;br /&gt;- item_constraint_example.e and sequence_export_example.e - use examples (one per each new construct)&lt;br /&gt;- packet_seq.e - an auxiliary definition file for the examples&lt;br /&gt;&lt;br /&gt;This topic was discussed in a Club-T presentation (Israel, Sophia-Antipolis, Munich). The presentation is also publicly avaiable.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;i&gt;Originally posted in cdnusers.org by&lt;/i&gt; &lt;b&gt;matanvax&lt;/b&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure length="10240" type="application/x-tar" url="https://community.cadence.com/cfs-file/__key/telligent-evolution-components-attachments/00-69-00-00-00-01-00-47/item_5F00_constraint.tar"/><itunes:explicit/><itunes:subtitle>The following macros encapsulates a design pattern that enables constraining data item fields by &amp;#39;do&amp;#39; actions of a high level sequence. This can be done without presupposing anything about the sequence tree generated under the do-ing sequence. The tar file consists of 4 files: - item_constraint_macro.e - the &amp;#39;item_constraint&amp;#39; and &amp;#39;sequence_export&amp;#39; macros definition - item_constraint_example.e and sequence_export_example.e - use examples (one per each new construct) - packet_seq.e - an auxiliary definition file for the examples This topic was discussed in a Club-T presentation (Israel, Sophia-Antipolis, Munich). The presentation is also publicly avaiable. Originally posted in cdnusers.org by matanvax</itunes:subtitle><itunes:summary>The following macros encapsulates a design pattern that enables constraining data item fields by &amp;#39;do&amp;#39; actions of a high level sequence. This can be done without presupposing anything about the sequence tree generated under the do-ing sequence. The tar file consists of 4 files: - item_constraint_macro.e - the &amp;#39;item_constraint&amp;#39; and &amp;#39;sequence_export&amp;#39; macros definition - item_constraint_example.e and sequence_export_example.e - use examples (one per each new construct) - packet_seq.e - an auxiliary definition file for the examples This topic was discussed in a Club-T presentation (Israel, Sophia-Antipolis, Munich). The presentation is also publicly avaiable. Originally posted in cdnusers.org by matanvax</itunes:summary></item><item><title>Macro for multiple-value when definitions</title><link>https://community.cadence.com/thread/10046?ContentTypeID=0</link><pubDate>Wed, 31 Oct 2007 08:23:28 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:a83177a3-453e-4b45-af74-5153d443ad5c</guid><dc:creator>archive</dc:creator><slash:comments>2</slash:comments><comments>https://community.cadence.com/thread/10046?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/functional-verification-shared-code/10046/macro-for-multiple-value-when-definitions/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;The two macros below introduce new syntax for adding definitions to more than one &amp;#39;when&amp;#39; determinant value at the same time. The first macro overloads &amp;#39;extend&amp;#39; keyword and the second is the equivalent for &amp;#39;when&amp;#39; keyword.&lt;br /&gt;&lt;br /&gt;A use example:&lt;br /&gt;&lt;br /&gt;&lt;font face="Courier New"&gt;extend [HUGE, BIG] packet {&lt;br /&gt;    // definitions that pertain to these subtypes&lt;br /&gt;};&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;The above code would be expanded in the following (naive) way:&lt;br /&gt;&lt;br /&gt;&lt;font face="Courier New"&gt;extend HUGE packet {&lt;br /&gt;
    // definitions that pertain to these subtypes&lt;br /&gt;
};&lt;br /&gt;extend BIG packet {&lt;br /&gt;
    // definitions that pertain to these subtypes&lt;br /&gt;
};&lt;/font&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;The macros code:&lt;br /&gt;&lt;br /&gt;&lt;font face="Courier New"&gt;define &amp;#39;statement&amp;gt; &lt;br /&gt;       &amp;quot;extend \[&amp;#39;name&amp;gt;,...\] &amp;#39;name&amp;gt; ({;...})&amp;quot; as computed {&lt;br /&gt;    for each in &amp;#39;names&amp;gt; do {&lt;br /&gt;        result = appendf(&amp;quot;%sextend %s %s %s;&amp;quot;,result,it,&amp;#39;name&amp;gt;,);&lt;br /&gt;    };&lt;br /&gt;    result = appendf(&amp;quot;{%s}&amp;quot;,result); // required only for versions 6.1.1 or earlier&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;define &amp;#39;struct_member&amp;gt; &lt;br /&gt;       &amp;quot;when \[&amp;#39;name&amp;gt;,...\] &amp;#39;name&amp;gt; ({;...})&amp;quot; as computed {&lt;br /&gt;    for each in &amp;#39;names&amp;gt; do {&lt;br /&gt;        result = appendf(&amp;quot;%swhen %s %s %s;&amp;quot;,result,it,&amp;#39;name&amp;gt;,);&lt;br /&gt;    };&lt;br /&gt;    result = appendf(&amp;quot;{%s}&amp;quot;,result); // required only for versions 6.1.1 or earlier&lt;br /&gt;};&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;i&gt;Originally posted in cdnusers.org by&lt;/i&gt; &lt;b&gt;matanvax&lt;/b&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Posting code to the forum</title><link>https://community.cadence.com/thread/1447?ContentTypeID=0</link><pubDate>Tue, 24 Jul 2007 14:01:07 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:b201ca68-089e-492f-ae31-7ba9504f9cb3</guid><dc:creator>archive</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/1447?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/functional-verification-shared-code/1447/posting-code-to-the-forum/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;When posting code to the forums, copy from a text editor such as notepad, not from word or Outlook.  Be sure to click the HTML tab BEFORE you paste your text.

&lt;br /&gt; &lt;br /&gt;
 
Click on the &amp;quot;html&amp;quot; mode tab on your &amp;quot;reply&amp;quot; dialog box. Then wrap your text with &lt;code&gt; like this:

&lt;br /&gt; &lt;br /&gt;
 
&lt;code&gt;
 
pasted text
 
&lt;code&gt;

&lt;br /&gt;&lt;br /&gt;
 
NOTE: Do not put a space in the &lt;code&gt; I have done that here so it will show up as text. Also, be sure to click the HTML tab BEFORE you paste your text.  This is how it will look when coded correctly

&lt;code&gt;
 
pasted text
 
&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;/p&gt;&lt;br /&gt;&lt;i&gt;Originally posted in cdnusers.org by&lt;/i&gt; &lt;b&gt;Administrator&lt;/b&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Cisco's utilities library donation</title><link>https://community.cadence.com/thread/10033?ContentTypeID=0</link><pubDate>Fri, 18 May 2007 16:56:47 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:7ebb055b-5864-416d-a5d3-a58bac9ce4bd</guid><dc:creator>archive</dc:creator><slash:comments>7</slash:comments><comments>https://community.cadence.com/thread/10033?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/functional-verification-shared-code/10033/cisco-s-utilities-library-donation/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;div class="" style="margin:0in 0in 0pt;"&gt;&lt;font face="Times New Roman" size="3"&gt;Dear users,&lt;/font&gt;&lt;/div&gt;
&lt;div class="" style="margin:0in 0in 0pt;"&gt;&lt;font face="Times New Roman" size="3"&gt;Cisco has graciously agreed to donate a library of several utilities packages to the e community. Please refer to the LIBRARY_README.txt for general information, and to each of the packages&amp;#39; PACKAGE_README.txt file for more information on each package. The tar file containing the utilities library is attached to this message.&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div class="" style="margin:0in 0in 0pt;"&gt;&lt;font face="Times New Roman" size="3"&gt;The zip file containing informational slides on Cisco&amp;#39;s utility library packages is also attached. The zip file is 9 mg so may take a bit to download.  The file is too big to fit on this post, so the unzipped files are posted in three separate entries below.&lt;/font&gt;&lt;/div&gt;
&lt;div class="" style="margin:0in 0in 0pt;"&gt;&lt;br /&gt;For your convenience, we have also extracted the document “Directory Structure.doc” from the csco_base_env/docs location.&lt;/div&gt;
&lt;div class="" style="margin:0in 0in 0pt;"&gt;&lt;font face="Times New Roman" size="3"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div class="" style="margin:0in 0in 0pt;"&gt;&lt;font face="Times New Roman" size="3"&gt;Note: The library contains the csco_testflow package, adding phases to e&amp;#39;s run phase. Cadence strongly encourages Customers to adopt the testflow phases feature that Cadence is releasing in Specman6.2. The new phases in e will be similar to the phases defined in the csco_testflow package, but will be a formal part of the e language. For more information please contact IPCM@cadence.com.&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;/p&gt;&lt;br /&gt;&lt;i&gt;Originally posted in cdnusers.org by&lt;/i&gt; &lt;b&gt;meirav&lt;/b&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure length="1078754" type="application/x-gzip" url="https://community.cadence.com/cfs-file/__key/telligent-evolution-components-attachments/00-69-00-00-00-01-00-33/base_5F00_env_5F00_capture.tar.gz"/><itunes:explicit/><itunes:subtitle>Dear users, Cisco has graciously agreed to donate a library of several utilities packages to the e community. Please refer to the LIBRARY_README.txt for general information, and to each of the packages&amp;#39; PACKAGE_README.txt file for more information on each package. The tar file containing the utilities library is attached to this message. The zip file containing informational slides on Cisco&amp;#39;s utility library packages is also attached. The zip file is 9 mg so may take a bit to download.  The file is too big to fit on this post, so the unzipped files are posted in three separate entries below. For your convenience, we have also extracted the document “Directory Structure.doc” from the csco_base_env/docs location.   Note: The library contains the csco_testflow package, adding phases to e&amp;#39;s run phase. Cadence strongly encourages Customers to adopt the testflow phases feature that Cadence is releasing in Specman6.2. The new phases in e will be similar to the phases defined in the csco_testflow package, but will be a formal part of the e language. For more information please contact IPCM@cadence.com. Originally posted in cdnusers.org by meirav</itunes:subtitle><itunes:summary>Dear users, Cisco has graciously agreed to donate a library of several utilities packages to the e community. Please refer to the LIBRARY_README.txt for general information, and to each of the packages&amp;#39; PACKAGE_README.txt file for more information on each package. The tar file containing the utilities library is attached to this message. The zip file containing informational slides on Cisco&amp;#39;s utility library packages is also attached. The zip file is 9 mg so may take a bit to download.  The file is too big to fit on this post, so the unzipped files are posted in three separate entries below. For your convenience, we have also extracted the document “Directory Structure.doc” from the csco_base_env/docs location.   Note: The library contains the csco_testflow package, adding phases to e&amp;#39;s run phase. Cadence strongly encourages Customers to adopt the testflow phases feature that Cadence is releasing in Specman6.2. The new phases in e will be similar to the phases defined in the csco_testflow package, but will be a formal part of the e language. For more information please contact IPCM@cadence.com. Originally posted in cdnusers.org by meirav</itunes:summary></item><item><title>c interface with specman</title><link>https://community.cadence.com/thread/10030?ContentTypeID=0</link><pubDate>Thu, 05 Apr 2007 01:56:58 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:77eb0a80-6768-44f8-a04f-f4f8e04907a0</guid><dc:creator>archive</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/10030?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/functional-verification-shared-code/10030/c-interface-with-specman/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;p&gt;Hi,&lt;br /&gt;&lt;br /&gt; I need to call a  c function form specman . I had followed the below steps.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;File vb_pattern.e&lt;br /&gt;---------------------------------&lt;/p&gt;
&lt;p&gt;  &lt;br /&gt;struct vb_pattern_s&lt;br /&gt;{&lt;br /&gt;  %data_in_ch0 : uint (bits : 4);   // data on channel 0&lt;br /&gt;  %data_in_ch1 : uint (bits : 4);   // data on channed 1&lt;br /&gt;  %data_in_ch2 : uint (bits : 4);   // data on channel 2&lt;br /&gt;  %mode : uint (bits : 1);          // mode  &lt;br /&gt;  %enable : uint (bits : 1);        // enable&lt;/p&gt;
&lt;p&gt;};&lt;br /&gt;&lt;br /&gt;C export vb_pattern_s;&lt;br /&gt;&lt;br /&gt;------&lt;br /&gt;&lt;br /&gt;file  x_output_bfm.e&lt;br /&gt;--------------------------------------------&lt;br /&gt;&lt;br /&gt;check_patterns()@clk_e is&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;  ...&lt;br /&gt; exp_viterbi_op();&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;routine exp_viterbi_op() is C routine viterbi_c_func;&lt;br /&gt;&lt;br /&gt;---- EOF------&lt;br /&gt;&lt;br /&gt;X.c&lt;br /&gt;#include &amp;quot;vb_pattern.h&amp;quot;&lt;/p&gt;
&lt;p&gt;void viterbi_c_func ()&lt;br /&gt;{&lt;br /&gt; SN_TYPE(vb_pattern_s) vb_packet;&lt;br /&gt; SN_TYPE(mode)   mode;&lt;br /&gt; vb_packet = SN_SYS-&amp;gt;ops&lt;br /&gt; mode = vb_packet-&amp;gt;mode;&lt;br /&gt; printf(&amp;quot;\n Printing from C environment MODE = %h \n&amp;quot;, mode);&lt;/p&gt;
&lt;p&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;------------------- EOF----&lt;br /&gt;&lt;br /&gt;x_top.e&lt;br /&gt;------------&lt;br /&gt;import  tb/vb_pattern.e;&lt;br /&gt;import  tb/x_input_bfm.e;&lt;br /&gt;import  tb/x_output_bfm.e;&lt;br /&gt;import  tb/x_cover_dut.e;&lt;br /&gt;import  tb/x_env.e;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I  did the following comand&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;gt;&amp;gt; sn_compile.sh -h_only x_top.e -o vb_pattern.h&lt;br /&gt;&amp;gt;&amp;gt; gcc -c viterbi.c -o viterbi.o&lt;br /&gt;&lt;br /&gt;I am getting the following error&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;viterbi.c: In function `viterbi_c_func&amp;#39;:&lt;br /&gt;viterbi.c:6: error: `t__mode&amp;#39; undeclared (first use in this function)&lt;br /&gt;viterbi.c:6: error: (Each undeclared identifier is reported only once&lt;br /&gt;viterbi.c:6: error: for each function it appears in.)&lt;br /&gt;viterbi.c:6: error: syntax error before &amp;quot;mode&amp;quot;&lt;br /&gt;viterbi.c:7: error: `mode&amp;#39; undeclared (first use in this function)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Please help me resolve this.&lt;br /&gt;&lt;br /&gt;Kesav&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt; &lt;br /&gt;&lt;/p&gt;&lt;/p&gt;&lt;br /&gt;&lt;i&gt;Originally posted in cdnusers.org by&lt;/i&gt; &lt;b&gt;kesava&lt;/b&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Using "add net constraints" command in Conformal</title><link>https://community.cadence.com/thread/2437?ContentTypeID=0</link><pubDate>Thu, 01 Mar 2007 08:37:14 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:46f1d706-a192-42d2-b3d2-5b3bff5bf9b3</guid><dc:creator>archive</dc:creator><slash:comments>9</slash:comments><comments>https://community.cadence.com/thread/2437?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/functional-verification-shared-code/2437/using-add-net-constraints-command-in-conformal/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi &lt;br /&gt;
&lt;br /&gt;
I have tried using &amp;quot;add net constraints&amp;quot; command to place one-cold
constraints on a tristate enable bus. In the command line we need to
specify the &amp;quot;net pathname&amp;quot; on which the constraints are to be enforced.&lt;br /&gt;
&lt;br /&gt;
The bus here is 20-bit. How should the net pathname be specified to make this 20-bit bus signals one_hot or one_cold. &lt;br /&gt;
&lt;br /&gt;
The bus was declared as follows:&lt;br /&gt;
ten_bus [19:0]&lt;br /&gt;
&lt;br /&gt;
The command I used was&lt;br /&gt;
&lt;br /&gt;
add net constraints one_hot /ren_bus[19]&lt;br /&gt;
&lt;br /&gt;
What would the above command mean?&lt;br /&gt;
Should we not specify all the nets&amp;#39; pathnames on the bus?&lt;br /&gt;
Is it sufficient to specify the pathname of one net on the bus?&lt;br /&gt;
I could not get much info regarding the functionality of this command. I would be obliged if anyone can throw some light.&lt;br /&gt;
&lt;br /&gt;
Thanks&lt;br /&gt;
Prasad.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;&lt;i&gt;Originally posted in cdnusers.org by&lt;/i&gt; &lt;b&gt;anssprasad&lt;/b&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>