ag Vintage Vega By feedproxy.google.com Published On :: 2007-09-21T11:00:00+00:00 Over ten years ago, Suzanne Vega hit a terribly sexy groove with an album called Nine Objects of Desire that made me seek out every CD she has done since then. She’s kept us waiting for six years for her new studio effort, but it’s such vintage Vega that the reward is well worth the wait. The first thing to note on Beauty & Crime is that producer Jimmy Hogarth and mixer Tchad Blake have tuned the album’s tracks entirely to suit Vega’s rather inflexible, breathy voice. With the sonic help, Vega is freed up to focus on enunciating the layers behind her lyrics. Yet Hogarth and Blake also manage to seed each song with finely crafted arrangements and subtle hooks that make them musically interesting. Although Vega uses a large canvas to record her ruminations, her most touching songs are those that are personal. On “Ludlow Street” she quietly mourns the passing of her brother: “I find each stoop and doorway’s incomplete/without you there”. On the superbly produced “Bound”, she seems to be confirming her longtime friend Paul Mills’s continuing interest in her after her divorce from Michael Froom in 2001. On “As You Are Now” she manages – against all odds - to fit in a parent’s love for her child in four sweet verses. Rave Out © 2007 IndiaUncut.com. All rights reserved. India Uncut * The IU Blog * Rave Out * Extrowords * Workoutable * Linkastic Full Article
ag Farmers, Technology and Freedom of Choice: A Tale of Two Satyagrahas By feedproxy.google.com Published On :: 2019-06-30T03:29:02+00:00 This is the 23rd installment of The Rationalist, my column for the Times of India. I had a strange dream last night. I dreamt that the government had passed a law that made using laptops illegal. I would have to write this column by hand. I would also have to leave my home in Mumbai to deliver it in person to my editor in Delhi. I woke up trembling and angry – and realised how Indian farmers feel every single day of their lives. My column today is a tale of two satyagrahas. Both involve farmers, technology and the freedom of choice. One of them began this month – but first, let us go back to the turn of the millennium. As the 1990s came to an end, cotton farmers across India were in distress. Pests known as bollworms were ravaging crops across the country. Farmers had to use increasing amounts of pesticide to keep them at bay. The costs of the pesticide and the amount of labour involved made it unviable – and often, the crops would fail anyway. Then, technology came to the rescue. The farmers heard of Bt Cotton, a genetically modified type of cotton that kept these pests away, and was being used around the world. But they were illegal in India, even though no bad effects had ever been recorded. Well, who cares about ‘illegal’ when it is a matter of life and death? Farmers in Gujarat got hold of Bt Cotton seeds from the black market and planted them. You’ll never guess what happened next. As 2002 began, all cotton crops in Gujarat failed – except the 10,000 hectares that had Bt Cotton. The government did not care about the failed crops. They cared about the ‘illegal’ ones. They ordered all the Bt Cotton crops to be destroyed. It was time for a satyagraha – and not just in Gujarat. The late Sharad Joshi, leader of the Shetkari Sanghatana in Maharashtra, took around 10,000 farmers to Gujarat to stand with their fellows there. They sat in the fields of Bt Cotton and basically said, ‘Over our dead bodies.’ ¬Joshi’s point was simple: all other citizens of India have access to the latest technology from all over. They are all empowered with choice. Why should farmers be held back? The satyagraha was successful. The ban on Bt Cotton was lifted. There are three things I would like to point out here. One, the lifting of the ban transformed cotton farming in India. Over 90% of Indian farmers now use Bt Cotton. India has become the world’s largest producer of cotton, moving ahead of China. According to agriculture expert Ashok Gulati, India has gained US$ 67 billion in the years since from higher exports and import savings because of Bt Cotton. Most importantly, cotton farmers’ incomes have doubled. Two, GMO crops have become standard across the world. Around 190 million hectares of GMO crops have been planted worldwide, and GMO foods are accepted in 67 countries. The humanitarian benefits have been massive: Golden Rice, a variety of rice packed with minerals and vitamins, has prevented blindness in countless new-born kids since it was introduced in the Philippines. Three, despite the fear-mongering of some NGOs, whose existence depends on alarmism, the science behind GMO is settled. No harmful side effects have been noted in all these years, and millions of lives impacted positively. A couple of years ago, over 100 Nobel Laureates signed a petition asserting that GMO foods were safe, and blasting anti-science NGOs that stood in the way of progress. There is scientific consensus on this. The science may be settled, but the politics is not. The government still bans some types of GMO seeds, such as Bt Brinjal, which was developed by an Indian company called Mahyco, and used successfully in Bangladesh. More crucially, a variety called HT Bt Cotton, which fights weeds, is also banned. Weeding takes up to 15% of a farmer’s time, and often makes farming unviable. Farmers across the world use this variant – 60% of global cotton crops are HT Bt. Indian farmers are so desperate for it that they choose to break the law and buy expensive seeds from the black market – but the government is cracking down. A farmer in Haryana had his crop destroyed by the government in May. On June 10 this year, a farmer named Lalit Bahale in the Akola District of Maharashtra kicked off a satyagraha by planting banned seeds of HT Bt Cotton and Bt Brinjal. He was soon joined by thousands of farmers. Far from our urban eyes, a heroic fight has begun. Our farmers, already victimised and oppressed by a predatory government in countless ways, are fighting for their right to take charge of their lives. As this brave struggle unfolds, I am left with a troubling question: All those satyagrahas of the past by our great freedom fighters, what were they for, if all they got us was independence and not freedom? © 2007 IndiaUncut.com. All rights reserved. India Uncut * The IU Blog * Rave Out * Extrowords * Workoutable * Linkastic Full Article
ag Viewing RTL Code Coverage reports with XCELIUM By feedproxy.google.com Published On :: Wed, 06 May 2020 09:30:28 GMT Hi, There was tool available with INCISIV called imc to view the coverage reports. The question is: How can we view the code coverage reports generated with XCELIUM? I think imc is not available with XCELIUM? Thanks in advance. Full Article
ag SystemVerilog package used inside VHDL-2008 design? By feedproxy.google.com Published On :: Thu, 17 Oct 2019 15:46:22 GMT Hi, Is it possible to use a SystemVerilog package which is compiled into a library and then use it in a VHDL-2008 design file? Is such mixed-language flow supported? I'm considering the latest versions of Incisive / Xcelium available today (Oct 2019). Thank you, Michal Full Article
ag Mediatek Deploys Perspec for SoC Verification of Low Power Management (part 3 of 3) By feedproxy.google.com Published On :: Mon, 16 Oct 2017 08:10:00 GMT Here we conclude the blog series and highlight the results of Mediatek 's use of Cadence Perspec™ System Verifier for their SoC level verification. In case you missed it, Part 1 of the blog is here , and Part 2 of the blog is here . One of their key...(read more) Full Article uvm Perspec coherent perspec system verifier coherency library coherency Accellera mediatek ARM pss portable stimulus
ag What’s Hot in Verification at this Year’s CDNLive? It’s Portable Stimulus Again! By feedproxy.google.com Published On :: Tue, 27 Mar 2018 21:23:00 GMT CDNLive is a user conference, and verification is one of the largest categories of content with multiple tracks covering multiple days. Portable stimulus is one of the hottest new areas in verification, and continues to be popular in all venues. At l...(read more) Full Article CDNLive Perspec pss portable stimulus
ag IC Packagers: Shape Connectivity in the Allegro Data Model By community.cadence.com Published On :: Tue, 28 Apr 2020 13:14:00 GMT Those who work in the IC Packaging design space have some unique challenges. We bridge between the IC design world (90/45-degree traces with rectangular and octagonal pins) and the PCB domain... [[ Click on the title to access the full blog on the Cadence Community site. ]] Full Article
ag Specman’s Callback Coverage API By community.cadence.com Published On :: Thu, 30 Apr 2020 14:30:00 GMT Our customers’ tests have become more complex, longer, and consume more resources than before. This increases the need to optimize the regression while not compromising on coverage. Some advanced... [[ Click on the title to access the full blog on the Cadence Community site. ]] Full Article
ag IC Packagers: Advanced In-Design Symbol Editing By community.cadence.com Published On :: Wed, 06 May 2020 14:09:00 GMT We have talked about aspects of the in-design symbol edit application mode in the past. This is the environment specific to the Allegro® Package Designer Plus layout tools allowing you to work... [[ Click on the title to access the full blog on the Cadence Community site. ]] Full Article
ag Specman: Analyze Your Coverage with Python By feedproxy.google.com Published On :: Wed, 06 Nov 2019 13:31:00 GMT In the former blog about Python and Specman: Specman: Python Is here!, we described the technical information around Specman-Python integration. Since Python provides so many easy to use existing libraries in various fields, it is very tempting to leverage these cool Python apps. Coverage has always been the center of the verification methodology, however in the last few years it gets even more focus as people develop advanced utilities, usually using Machine Learning aids. Anyhow, any attempt to leverage your coverage usually starts with some analysis of the behavior and trends of some typical tests. Visualizing the data makes it easier to understand, analyze, and communicate. Fortunately, Python has many Visualization libraries. In this blog, we show an example of how you can use the plotting Python library (matplotlib) to easily display coverage information during a run. In this blog, we use the Specman Coverage API to extract coverage data, and a Python module to display coverage grades interactively during a single run and the way to connect both. Before we look at the example, if you have read the former blog about Specman and Python and were concerned about the fact that python3 is not supported, we are glad to update that in Specman 19.09, Python3 is now supported (in addition to Python2). The TestcaseLet’s say I have a stable verification environment and I want to make it more efficient. For example: I want to check whether I can make the tests shorter while hardly harming the coverage. I am not sure exactly how to attack this task, so a good place to start is to visually analyze the behavior of the coverage on some typical test I chose. The first thing we need to do is to extract the coverage information of the interesting entities. This can be done using the old Coverage API. Coverage APICoverage API is a simple interface to extract coverage information at a certain point. It is implemented through a predefined struct type named user_cover_struct. To use it, you need to do the following: Define a child of user_cover_structusing like inheritance (my_cover_struct below). Extend its relevant methods (in our example we extend only the end_group() method) and access the relevant members (you can read about the other available methods and members in cdnshelp). Create an instance of the user_cover_structchild and call the predefined scan_cover() method whenever you want to query the data (even in every cycle). Calling this method will result in calling the methods you extended in step 2. The code example below demonstrates these three steps. We chose to extend the end_group() method and we keep the group grade in some local variable. Note that we divide it by 100,000,000 to get a number between 0 to 1 since the grade in this API is an integer from 0 to 100,000,000. struct my_cover_struct like user_cover_struct { !cur_group_grade:real; //Here we extend user_cover_struct methods end_group() is also { cur_group_grade = group_grade/100000000; }}; extend sys{ !cover_info : my_cover_struct; run() is also { start monitor_cover (); }; monitor_cover() @any is { cover_info = new; while(TRUE) { // wait some delay, for example – wait [10000] * cycles; // scan the packet.packet_cover cover group compute cover_info.scan_cover("packet.packet_cover"); };//while };// monitor_cover};//sys Pass the Data to a Python ModuleAfter we have extracted the group grade, we need to pass the grade along with the cycle and the coverage group name (assuming there are a few) to a Python module. We will take a look at the Python module itself later. For now, we will first take a look at how to pass the information from the e code to Python. Note that in addition to passing the grade at certain points (addVal method), we need an initialization method (init_plot) with the number of cycles, so that the X axis can be drawn at the beginning, and end_plot() to mark interesting points on the plot at the end. But to begin with, let’s have empty methods on the Python side and make sure we can just call them from the e code. # plot_i.pydef init_plot(numCycles): print (numCycles)def addVal(groupName,cycle,grade): print (groupName,cycle,grade)def end_plot(): print ("end_plot") And add the calls from e code: struct my_cover_struct like user_cover_struct { @import_python(module_name="plot_i", python_name="addVal") addVal(groupName:string, cycle:int,grade:real) is imported; !cur_group_grade:real; //Here we extend user_cover_struct methods end_group() is also { cur_group_grade = group_grade/100000000; //Pass the values to the Python module addVal(group_name,sys.time, cur_group_grade); } //end_group};//user_cover_struct extend sys{ @import_python(module_name="plot_i", python_name="init_plot" init_plot(numCycles:int) is imported; @import_python(module_name="plot_i", python_name="end_plot") end_plot() is imported; !cover_info : my_cover_struct; run() is also { start scenario(); }; scenario() @any is { //initialize the plot in python init_plot(numCycles); while(sys.time<numCycles) { //Here you add your logic //get the current coverage information for packet cover_info = new; var num_items:= cover_info.scan_cover("packet.packet_cover"); //Here you add your logic };//while //Finish the plot in python end_plot(); }//scenario}//sys The green lines define the methods as they are called from the e The blue lines are pre-defined annotations that state that the method in the following line is imported from Python and define the Python module and the name of the method in it. The red lines are the calls to the Python methods. Before running this, note that you need to ensure that Specman finds the Python include and lib directories, and Python finds our Python module. To do this, you need to define a few environment variables: SPECMAN_PYTHON_INCLUDE_DIR, SPECMAN_PYTHON_LIB_DIR, and PYTHONPATH. The Python Module to Draw the PlotAfter we extracted the coverage information and ensured that we can pass it to a Python module, we need to display this data in the Python module. There are many code examples out there for drawing a graph with Python, especially with matplotlib. You can either accumulate the data and draw a graph at the end of the run or draw a graph interactively during the run itself- which is very useful especially for long runs. Below is a code that draws the coverage grade of multiple groups interactively during the run and at the end of the run it prints circles around the maximum point and adds some text to it. I am new to Python so there might be better or simpler ways to do so, but it does the work. The cool thing is that there are so many examples to rely on that you can produce this kind of code very fast. # plot_i.pyimport matplotlibimport matplotlib.pyplot as plt plt.style.use('bmh') #set interactive modeplt.ion() fig = plt.figure(1)ax = fig.add_subplot(111) # Holds a specific cover groupclass CGroup: def __init__(self, name, cycle,grade ): self.name = name self.XCycles=[] self.XCycles.append(cycle) self.YGrades=[] self.YGrades.append(grade) self.line_Object= ax.plot(self.XCycles, self.YGrades,label=name)[-1] self.firstMaxCycle=cycle self.firstMaxGrade=grade def add(self,cycle,grade): self.XCycles.append(cycle) self.YGrades.append(grade) if grade>self.firstMaxGrade: self.firstMaxGrade=grade self.firstMaxCycle=cycle self.line_Object.set_xdata(self.XCycles) self.line_Object.set_ydata(self.YGrades) plt.legend(shadow=True) fig.canvas.draw() #Holds all the data of all cover groups class CData: groupsList=[] def add (self,groupName,cycle,grade): found=0 for group in self.groupsList: if groupName in group.name: group.add(cycle,grade) found=1 break if found==0: obj=CGroup(groupName,cycle,grade) self.groupsList.append(obj) def drawFirstMaxGrade(self): for group in self.groupsList: left, right = plt.xlim() x=group.firstMaxCycle y=group.firstMaxGrade #draw arrow #ax.annotate("first maximum grade", xy=(x,y), #xytext=(right-50, 0.4),arrowprops=dict(facecolor='blue', shrink=0.05),) #mark the points on the plot plt.scatter(group.firstMaxCycle, group.firstMaxGrade,color=group.line_Object.get_color()) #Add text next to the point text='cycle:'+str(x)+' grade:'+str(y) plt.text(x+3, y-0.1, text, fontsize=9, bbox=dict(boxstyle='round4',color=group.line_Object.get_color())) #Global datamyData=CData() #Initialize the plot, should be called oncedef init_plot(numCycles): plt.xlabel('cycles') plt.ylabel('grade') plt.title('Grade over time') plt.ylim(0,1) plt.xlim(0,numCycles) #Add values to the plotdef addVal(groupName,cycle,grade): myData.add(groupName,cycle,grade) #Mark interesting points on the plot and keep it showndef end_plot(): plt.ioff(); myData.drawFirstMaxGrade(); #Make sure the plot is being shown plt.show(); #uncomment the following lines to run this script with simple example to make sure #it runs properly regardless of the Specman interaction #init_plot(300)#addVal("xx",1,0)#addVal("yy",1,0)#addVal("xx",50,0.3)#addVal("yy",60,0.4)#addVal("xx",100,0.8)#addVal("xx",120,0.8)#addVal("xx",180,0.8)#addVal("yy",200,0.9)#addVal("yy",210,0.9)#addVal("yy",290,0.9)#end_plot() In the example we used, we had two interesting entities: packet and state_machine, thus we had two equivalent coverage groups. When running our example connecting to the Python module, we get the following graph which is displayed interactively during the run. When analyzing this specific example, we can see two things. First, packet gets to a high coverage quite fast and significant part of the run does not contribute to its coverage. On the other hand, something interesting happens relating to state_machine around cycle 700 which suddenly boosts its coverage. The next step would be to try to dump graphic information relating to other entities and see if something noticeable happens around cycle 700. To run a complete example, you can download the files from: https://github.com/okirsh/Specman-Python/ Do you feel like analyzing the coverage behavior in your environment? We will be happy to hear about your outcomes and other usages of the Python interface. Orit KirshenbergSpecman team Full Article Specman Specman coverage engine coverage Python Functional Verification Specman e e e language specman elite functional coverage
ag Specman’s Callback Coverage API By feedproxy.google.com Published On :: Thu, 30 Apr 2020 14:30:00 GMT Our customers’ tests have become more complex, longer, and consume more resources than before. This increases the need to optimize the regression while not compromising on coverage. Some advanced customers of Specman use Machine Learning based solutions to optimize the regressions while some use simpler solutions. Based on a request of an advanced customer, we added a new Coverage API in Specman 19.09 called Coverage Callback. In 20.03, we have further enhanced this API by adding more options. Now there are two Coverage APIs that provide coverage information during the run (the old scan_cover API and this new Callback API). This blog presents these two APIs and compares between them while focusing on the newer one. Before we get into the specifics of each API, let’s discuss what is common between these APIs and why we need them. Typically, people observe the coverage model after the test ends, and get to know the overall contribution of the test to the coverage. With these two APIs, you can observe the coverage model during the test, and hence, get more insight into the test progress. Are you wondering about what you can do with this information? Let’s look at some examples. Recognize cases when the test continues to run long after it already reached its coverage goal. View the performance of the coverage curve. If a test is “stuck” at the same grade for a long time, this might indicate that the test is not very good and is just a waste of resource. These analyses can be performed in the test itself, and then a test can decide to either stop the run, or change something in it configuration, or – post run. You can also present them visually for some analysis, as shown in the blog: Analyze Your Coverage with Python. scan_cover API (or “Scanning the Coverage Model”) With this API you can get the current status for any cover group or item you are interested in at any point in time during the test (by calling scan_cover()). It is very simple to use; however it has performance penalty. For getting the coverage grade of any cover group during the test, you should1. Trigger the scan_cover at any time when you want the coverage model to be scanned.2. Implement the scan_cover related methods, such as start_item() and end_bucket(). In these methods, you can query the current grade of group/item/bucket.The blog mentioned earlier: Analyze Your Coverage with Python describes the details and provides an example. Callback API The Callback API enables you to get a callback for a desired cover group(s), whenever it is sampled. This API also provides various query methods for getting coverage related information such as what the current sampled value is. So, in essence, it is similar to scan_cover API, but as the phrase says: “same same but different”: Callback API has almost no performance penalty while scan_cover API does. Callback API contains a richer set of query methods that provide a lot of information about the current sampled value (vs just the grade with scan_cover). Using scan_cover API, you decide when you want to query the coverage information (you call scan_cover), while with the Callback API you query the coverage information when the coverage is sampled (from do_callback). So, scan_cover gives you more flexibility, but you do need to find the right timing for this call. There is no absolute advantage of either of these APIs, this only depends on what you want to do. Callback API details The Callback API is based on a predefined struct called: cover_sampling_callback. In order to use this API, you need to: Define a struct inheriting cover_sampling_callback (cover_cb_save_data below) Extend the predefined do_callback() method. This method is a hook being called whenever any of the cover groups that are registered to the cover_sampling_callback instance is being sampled. From do_callback() you can access coverage data by using queries such as: is_currently_per_type(), get_current_group_grade() and get_current_cover_group() (as in the example below) and many more such as: get_relevant_group_layers() and get_simple_cross_sampled_bucket_name(). Register the desired cover group(s) to this struct instance using the register() method. Take a look at the following code: // Define a coverage callback.// Its behavior – print to screen the current grade.struct cover_cb_save_data like cover_sampling_callback { do_callback() is only { // In this example, we care only about the per_type grade, and not per_instance if is_currently_per_type() { var cur_grade : real = get_current_group_grade(); sys.save_data (get_current_cover_group().get_name(), cur_grade); };//if };//do_callback()};// cover_cb_send_dataextend sys { !cb : cover_cb_save_data; // Instantiate the coverage callback, and register to it two of my coverage groups run() is also { cb = new with { var gr1:=rf_manager.get_struct_by_name("packet").get_cover_group("packet_cover"); .register(gr1); var gr2:=rf_manager.get_struct_by_name("sys").get_cover_group("mem_cover"); .register(gr2); };//new };//run() save_data(group_name : string, group_grade : real) is { //here you either print the values to the screen, update a graph you show or save to a db };// save_data};//sys In the blog Analyze Your Coverage with Python mentioned above, we show an example of how you can use the scan_cover API to extract coverage information during the run, and then use the Specman-Python API to display the coverage interactively during the run (using plotting Python library - matplotlib). If you find this usage interesting and you want to use the same example, by the Callback API instead of the scan_cover API, you can download the full example from GIT from here: https://github.com/efratcdn/cover_callback. Specman Team Full Article Specman/e Specman coverage engine coverage Specman e specman elite Coverage Driven Verification
ag BoardSurfers: Five Easy Steps to Create Footprints Using Packages in Library Creator By feedproxy.google.com Published On :: Thu, 16 Apr 2020 14:19:00 GMT In my previous blog, I talked about creating a footprint using an existing template in Allegro ECAD-MCAD Library Creator and explained how easily you can access an existing template and create a package from it by just clicking a button. In this blog...(read more) Full Article Library Creator PCB Editor 17.4-2019 ECAD-MCAD Library Creator PCB design
ag Sweep harmonic balance (hb) realibility (aging) simulation By feedproxy.google.com Published On :: Tue, 05 May 2020 17:22:25 GMT hi everyone, i'm trying to create a netlist for aging simulation. i would like to simulate how power, Gain and PAE (efficiency) are inlfuenced after 3 hours i would be grateful if someone can correct my syntax in the netlist since i'm trying to make a sweep HB simulation where the input power is the parameter. i did it without any error for the sp (S parameters) simulation. you can see the images for both sp and hb simulation netlists. (from left to right: sp aging netlist; hb aging netlist) i will be grateful if someone can provide me some syntax advices. thanks, best regards Full Article
ag Skill code to Calculating PCB Real-estate usage using placement boundaries and package keep ins By feedproxy.google.com Published On :: Wed, 04 Mar 2020 18:37:43 GMT Other tools allow a sanity check of placement density vs available board space. There is an older post "Skill code to evaluate all components area (Accumulative Place bound area)" (9 years ago) that has a couple of examples that no longer work or expired. This would be useful to provide feedback to schismatic and project managers regarding the component density on the PCB and how it will affect the routing abilities. Thermal considerations can be evaluated as well Has anyone attempted this or still being done externally in spread sheets? Full Article
ag How to force the garbage collection By feedproxy.google.com Published On :: Thu, 05 Mar 2020 03:31:57 GMT I have a script to handle many polys in memory in allegro. But after the completion of the script, I run the axlPolyMemUse(), it reports (31922 0 0 55076 252482) Seems too many polys are still in the memory,and they are not being used. So how to delete these polys from the memory? And reclaim the memory? BTW. I have no skill dev license. So gc() function doesn't work. Thanks. Full Article
ag Farmers, Technology and Freedom of Choice: A Tale of Two Satyagrahas By feedproxy.google.com Published On :: 2019-06-30T03:29:02+00:00 This is the 23rd installment of The Rationalist, my column for the Times of India. I had a strange dream last night. I dreamt that the government had passed a law that made using laptops illegal. I would have to write this column by hand. I would also have to leave my home in Mumbai to deliver it in person to my editor in Delhi. I woke up trembling and angry – and realised how Indian farmers feel every single day of their lives. My column today is a tale of two satyagrahas. Both involve farmers, technology and the freedom of choice. One of them began this month – but first, let us go back to the turn of the millennium. As the 1990s came to an end, cotton farmers across India were in distress. Pests known as bollworms were ravaging crops across the country. Farmers had to use increasing amounts of pesticide to keep them at bay. The costs of the pesticide and the amount of labour involved made it unviable – and often, the crops would fail anyway. Then, technology came to the rescue. The farmers heard of Bt Cotton, a genetically modified type of cotton that kept these pests away, and was being used around the world. But they were illegal in India, even though no bad effects had ever been recorded. Well, who cares about ‘illegal’ when it is a matter of life and death? Farmers in Gujarat got hold of Bt Cotton seeds from the black market and planted them. You’ll never guess what happened next. As 2002 began, all cotton crops in Gujarat failed – except the 10,000 hectares that had Bt Cotton. The government did not care about the failed crops. They cared about the ‘illegal’ ones. They ordered all the Bt Cotton crops to be destroyed. It was time for a satyagraha – and not just in Gujarat. The late Sharad Joshi, leader of the Shetkari Sanghatana in Maharashtra, took around 10,000 farmers to Gujarat to stand with their fellows there. They sat in the fields of Bt Cotton and basically said, ‘Over our dead bodies.’ ¬Joshi’s point was simple: all other citizens of India have access to the latest technology from all over. They are all empowered with choice. Why should farmers be held back? The satyagraha was successful. The ban on Bt Cotton was lifted. There are three things I would like to point out here. One, the lifting of the ban transformed cotton farming in India. Over 90% of Indian farmers now use Bt Cotton. India has become the world’s largest producer of cotton, moving ahead of China. According to agriculture expert Ashok Gulati, India has gained US$ 67 billion in the years since from higher exports and import savings because of Bt Cotton. Most importantly, cotton farmers’ incomes have doubled. Two, GMO crops have become standard across the world. Around 190 million hectares of GMO crops have been planted worldwide, and GMO foods are accepted in 67 countries. The humanitarian benefits have been massive: Golden Rice, a variety of rice packed with minerals and vitamins, has prevented blindness in countless new-born kids since it was introduced in the Philippines. Three, despite the fear-mongering of some NGOs, whose existence depends on alarmism, the science behind GMO is settled. No harmful side effects have been noted in all these years, and millions of lives impacted positively. A couple of years ago, over 100 Nobel Laureates signed a petition asserting that GMO foods were safe, and blasting anti-science NGOs that stood in the way of progress. There is scientific consensus on this. The science may be settled, but the politics is not. The government still bans some types of GMO seeds, such as Bt Brinjal, which was developed by an Indian company called Mahyco, and used successfully in Bangladesh. More crucially, a variety called HT Bt Cotton, which fights weeds, is also banned. Weeding takes up to 15% of a farmer’s time, and often makes farming unviable. Farmers across the world use this variant – 60% of global cotton crops are HT Bt. Indian farmers are so desperate for it that they choose to break the law and buy expensive seeds from the black market – but the government is cracking down. A farmer in Haryana had his crop destroyed by the government in May. On June 10 this year, a farmer named Lalit Bahale in the Akola District of Maharashtra kicked off a satyagraha by planting banned seeds of HT Bt Cotton and Bt Brinjal. He was soon joined by thousands of farmers. Far from our urban eyes, a heroic fight has begun. Our farmers, already victimised and oppressed by a predatory government in countless ways, are fighting for their right to take charge of their lives. As this brave struggle unfolds, I am left with a troubling question: All those satyagrahas of the past by our great freedom fighters, what were they for, if all they got us was independence and not freedom? The India Uncut Blog © 2010 Amit Varma. All rights reserved. Follow me on Twitter. Full Article
ag VManager wrongly imports failed test as passed By feedproxy.google.com Published On :: Fri, 18 Oct 2019 12:48:38 GMT Hello,I'm exploring VManager tool capabilities. I launched a simulation with xrun, which terminates with a fatal error (`uvm_fatal actually). Then I imported the flow session, through VManager -> Regression -> Collect Runs, linking the directory with ucm and ucd of just failed run. VManager imports the test with following attributes: Total Runs =1 #Passed =1 #Failed =0 What I'm missing here? It should be imported as failed test. If I right click on flow name and choose Analyze All Runs, VManager brings me to Analysis tab and I can see only a PASSED tag in Runs subwindow. Thank you for any help Full Article
ag IMC: toggle coverage for package array By feedproxy.google.com Published On :: Mon, 23 Dec 2019 12:01:28 GMT Hello! I have input signal like this -> input wire [ADM_NUM-1:0][1:0] m_axi_ddr_rresp. When i want to analyze coverage from IMC this signal not covered! Can i collect coverage for this signal? Full Article
ag Can't collect AXI4 burst_started coverage By feedproxy.google.com Published On :: Mon, 30 Dec 2019 12:01:53 GMT I have a problem connected with my AXI4 coverage. I enable coverage collection in AXI4 set_config_int("axi4_active_slave_agent_0.monitor.coverModel", "burst_started_enable", 1); set_config_int("axi4_active_slave_agent_0.monitor.coverModel", "coverageEnable", 1); but i don't have a result. I think the problem in Callback, but i try to connect all callback and i don't have positive result. Can you help me? Full Article
ag Coverage error By feedproxy.google.com Published On :: Thu, 16 Jan 2020 08:17:20 GMT Hi all, I am getting this warning in while generating the coverage report, can you help me to clear this warning? ncsim: *W,COVOPM: Coverage configuration file command "set_covergroup -optimize_model" can be specified to improve the performance and scalability of coverage model containing SV covergroups. It may be noted that subsequent merging of a coverage database saved with this command and a coverage database saved without this command is not allowed. Full Article
ag How to remove sessions from vManager without deleting them By feedproxy.google.com Published On :: Mon, 02 Mar 2020 23:35:09 GMT I am importing sessions which are run by other people to analyse and I would like to remove them from my vManager Regressions tab as they become obsolete. As I am not the original person who run the sims, I cannot "delete" sessions. What are my options? Thanks. Full Article
ag Is it possible to get a diff between two coverage databases in IMC? By feedproxy.google.com Published On :: Tue, 10 Mar 2020 11:33:50 GMT I'm in the process of weeding a regression test list. I have a coverage database from the full regression list and would like to diff it with the coverage database from the new reduced regression test list. If possible I would than like to trace back any buckets covered with the full list, but not with the partial list, into the original tests that covered them. Is that possible using IMC? if not, is it possible to do from Specman itself? (Note that we're not using vManager) Thanks, Avidan Full Article
ag IC Packagers: Five Steps to IC-Driven Package Design By feedproxy.google.com Published On :: Thu, 05 Mar 2020 17:23:00 GMT They say Moore's law is slowing. It may be slowing but it is still running - it has not stopped! And, it has been running at full throttle for quite a few decades now. The net result of this run? Well, you can't design ICs in isolation from the...(read more) Full Article Allegro Package Designer
ag IC Packagers: The Different Types of Mirrors By feedproxy.google.com Published On :: Tue, 10 Mar 2020 15:19:00 GMT I’m not talking about carnival funhouse mirrors, but rather the different options for mirroring symbols, vias, and bond fingers in your IC Package layout. The Allegro Package Designer Plus and SiP Layout tools have two distinct styles of m...(read more) Full Article Allegro Package Designer
ag IC Packagers: Design Element Label Management By feedproxy.google.com Published On :: Wed, 18 Mar 2020 13:46:00 GMT A few weeks ago, we talked about template text labels for design-specific information. There, we were focused on labels that are specific to the design as a whole: revision information, dates, authors, etc. Today, we’re looking at a diff...(read more) Full Article Allegro Package Designer Allegro PCB Editor
ag IC Packagers: Identify Your Components By feedproxy.google.com Published On :: Tue, 24 Mar 2020 14:19:00 GMT We’ve all seen bar codes and the more modern QR codes. They’re everywhere you go – items at the grocery store, advertisements and posters, even on websites. Did you know that, with the productivity toolbox in Allegro Package Designe...(read more) Full Article Allegro Package Designer Allegro PCB Editor
ag IC Packagers: Don’t Get Stranded on Islands, Delete Them! By feedproxy.google.com Published On :: Tue, 31 Mar 2020 14:44:00 GMT No, this isn’t a Hollywood movie. We’re talking about pieces of plane shapes with no connections to them, not an idyllic private oasis in the Caribbean (sorry). Removing shape islands is something you’ve always been able to do in th...(read more) Full Article Allegro Package Designer Allegro PCB Editor
ag IC Packagers: A New Option in Bond Finger Solder Mask Openings By feedproxy.google.com Published On :: Tue, 07 Apr 2020 14:17:00 GMT If you design wire bond packages, you’re familiar with the need for the bond fingers and rings on the package substrate layers to be exposed through the solder mask layer. If they aren’t, it becomes… rather difficult… to bon...(read more) Full Article Allegro Package Designer
ag IC Packagers: Time-Saving Alternatives to Show Element By feedproxy.google.com Published On :: Tue, 14 Apr 2020 15:04:00 GMT In the Allegro back-end layout products like Allegro Package Designer Plus, it would be reasonable to assume that the most often used command is none other than “show element” (shortcut key F4). This command, runnable at nearly any t...(read more) Full Article Allegro Package Designer Allegro PCB Editor
ag IC Packagers: You Can Leave Your (Molding) Cap On… By feedproxy.google.com Published On :: Tue, 21 Apr 2020 14:27:00 GMT Molding caps aren’t something we talk about too frequently around here. We all know they exist, and they serve an important purpose of protecting the delicate die from potentially harsh environmental conditions. They impact how well heat can be...(read more) Full Article Allegro Package Designer
ag IC Packagers: Shape Connectivity in the Allegro Data Model By feedproxy.google.com Published On :: Tue, 28 Apr 2020 13:14:00 GMT Those who work in the IC Packaging design space have some unique challenges. We bridge between the IC design world (90/45-degree traces with rectangular and octagonal pins) and the PCB domain (any-angle routing, filled planes, and a multitude of pad ...(read more) Full Article Allegro Package Designer Allegro PCB Editor
ag IC Packagers: Advanced In-Design Symbol Editing By feedproxy.google.com Published On :: Wed, 06 May 2020 14:09:00 GMT We have talked about aspects of the in-design symbol edit application mode in the past. This is the environment specific to the Allegro Package Designer layout tools allowing you to work on symbol definitions directly in the context of your layout de...(read more) Full Article Allegro Package Designer
ag Placement by Schematic Page Problem (Not Displaying All Page) By feedproxy.google.com Published On :: Wed, 29 Apr 2020 02:30:24 GMT I am using PCB Editor v17.2-2016. I tried to do placement by schematic page but not all pages are displayed. Earlier, I successfully do the placement by schematic pages and it was showing all the pages. But then I decided to delete all placed components and to do placement again. When I try to do placement by schematic page again, I noticed that only the pages that I have successfully do all the placement previously are missing. Full Article
ag Why a new Package update generate DRC error after waiving ? By feedproxy.google.com Published On :: Thu, 30 Apr 2020 20:36:10 GMT I've redesigned a custom TO220FLAT Package First I created a TO220shape.ssm with PCB Editor. Then I created a surface mount T220build.pad in Padstack Editor using TO220shape.ssm. Then I created a TO220FLAT.psm in PCB Editor. I placed 3 Connect pins and 9 Mechanical pins for the TO220 TAB, using standard through-hole pads for better current handling. Adding those Mechanical pins created many DRC errors caused by the proximity of those pads attached to the TO220shape. Thru Pin to SMD Pin Spacing (-200.0 0.0) 5 MIL OVERLAP DEFAULT NET SPACING CONSTRAINTS Mechanical Pin "Pad50sq30d" Pin "T220build, 2" I corrected the situation (so I though) by Waiving those DRC errors, thinking that they could not cause any problem and because that’s what I want, i.e.: 9 through-holes under the TO220 device. The idea being that when this device is mounted flat on the PCB it could carry lots of current via 9 pads that could make a good high current conductor to inner layers. I then saved the Package and updated all related footprint schematic parts in Capture. Created a new Netlist. Then I imported the new logic into PCB Editor to reflect that change. When the File > Import > Logic is finished I get no feedback error! (which, for me is a substantial achievement in itself) Now, in the Design Window I see all those DRC errors popping up again, despite the fact that I waived those DRCs back in the Padstack edition. If I run a Design Rule Check (DRC) Report I will see all those DRC listed again. Now, I understand that I can go ahead and waive all those DRCs (100 in total) but I’m thinking there is got to be a better way of doing this. Please, any advise is welcome. Thanks Full Article
ag ctags for e code, Vim compatible By feedproxy.google.com Published On :: Mon, 13 Jul 2009 17:56:07 GMT 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 "jump" 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. Full Article
ag latest Specman-Matlab package By feedproxy.google.com Published On :: Tue, 15 Sep 2009 05:56:14 GMT Attached is the latest revision of the venerable Specman-Matlab package (Lead Application Engineer Jangook Lee is the latest to have refreshed it for a customer in Asia to support 64 bit mode. 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’s installed correctly, and explains the general test flow. The test file included in the package called "test_get_cmp_mdim.e" 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-listsHappy coding!Team Specman Full Article
ag Creating transition coverage bins using a queue or dynamically By feedproxy.google.com Published On :: Sun, 21 Apr 2019 01:31:28 GMT I want to write a transition coverage on an enumeration. One of the parts of that transition is a queue of the enum. I construct this queue in my constructor. Considering the example below, how would one go about it. In my coverage bin I can create a range like this A => [queue1Enum[0]:queue1Enum[$]] => [queue2Enum[0]:queue2Enum[$]]. But I only get first and last element then. typedef enum { red, d_green, d_blue, e_yellow, e_white, e_black } Colors; Colors dColors[$]; Colors eColors[$]; Lcolors = Colors.first(); do begin if (Lcolors[0].name=='d') begin dColors.push_back(Lcolors); end if (Lcolors[0].name=='e') begin eColors.push_back(Lcolors); end end while(Lcolors != Lcolors.first()) covergroup cgTest with function sample(Colors c); cpTran : coverpoint c{ bins t[] = (red => dColors =>eColors); } endgroup bins t[] should come out like this(red=>d_blue,d_green=>e_yellow,e_white) Full Article
ag Layout can't open with the following warning message in CIW By feedproxy.google.com Published On :: Thu, 30 Apr 2020 15:47:16 GMT Hi, I tried to open my layout by Library Manager, but the Virtuoso CIW window sometimes pops up the follow WARNING messages( as picture depicts). Thus, layout can't open. Sometimes, I try to reconfigure ICADV12.3 by the iscape and restart my VM and then it incredibly works! But, often not! So, If anyone knows what it is going on. Please let me know! Thanks! Appreciated so much Full Article
ag Take Advantage of Advancements in Real Number Modeling and Simulation By feedproxy.google.com Published On :: Mon, 26 Feb 2018 23:00:00 GMT Verification is the top challenge in mixed-signal design. Bringing analog and digital domains together into unified verification planning, simulating, and debugging is a challenging task for rapidly increasing size and complexity of mixed-signal designs. To more completely verify functionality and performance of a mixed-signal SoC and its AMS IP blocks used to build it, verification teams use simulations at transistor, analog behavioral and real-number model (RNM) and RTL levels, and combination of these. In recent years, RNM and simulation is being adopted for functional verification by many, due to advantages it offers including simpler modeling requirements and much faster simulation speed (compared to a traditional analog behavioral models like Verilog-A or VHDL-AMS). Verilog-AMS with its wreal continue to be popular choice. Standardization of real number extensions in SystemVerilog (SV) made SV-RNM an even more attractive choice for MS SoC verification. Verilog-AMS/wreal is scalar real type. SV-RNM offers a powerful ability to define complex data types, providing a user-defined structure (record) to describe the net value. In a typical design, most analog nodes can be modeled using a single value for passing a voltage (or current) from one module to another. The ability to pass multiple values over a net can be very powerful when, for example, the impedance load impact on an analog signal needs to be modeled. Here is an example of a user-defined net (UDN) structure that holds voltage, current, and resistance values: When there are multiple drives on a single net, the simulator will need a resolution function to determine the final net value. When the net is just defined as a single real value, common resolution functions such as min, max, average, and sum are built into the simulator. But definition of more complex structures for the net also requires the user to provide appropriate resolution functions for them. Here is an example of a net with three drivers modeled using the above defined structural elements (a voltage source with series resistance, a resistive load, and a current source): To properly solve for the resulting output voltage, the resolution function for this net needs to perform Norton conversion of the elements, sum their currents and conductances, and then calculate the resolved output voltage as the sum of currents divided by sum of conductances. With some basic understanding of circuit theory, engineers can use SV-RNM UDN capability to model electrical behavior of many different circuits. While it is primarily defined to describe source/load impedance interactions, its use can be extended to include systems including capacitors, switching circuits, RC interconnect, charge pumps, power regulators, and others. Although this approach extends the scope of functional verification, it is not a replacement for transistor-level simulation when accuracy, performance verification, or silicon correlation are required: It simply provides an efficient solution for discretely modeling small analog networks (one to several nodes). Mixed-signal simulation with an analog solver is still the best solution when large nonlinear networks must be evaluated. Cadence provides a tutorial on EEnet usage as well as the package (EEnet.pkg) with UDN definitions and resolution functions and modeling examples. To learn more, please login to your Cadence account to access the tutorial. Full Article real number modeling analog Mixed-Signal RNM mixed-signal verification
ag Virtuoso Meets Maxwell: Help with Electromagnetic Analysis - Part V By community.cadence.com Published On :: Mon, 23 Mar 2020 15:06:00 GMT Here is another blog in the multi-part series that aims at providing in-depth details of electromagnetic analysis in the Virtuoso RF solution. Read to learn about the nuances of port setup for electromagnetic analysis.(read more) Full Article EM Analysis ICADVM18.1 VRF Virtuoso Layout EXL ports Virtuoso RF Electromagnetic analysis Virtuoso Virtuoso Layout Suite Custom IC
ag News18 Urdu: Latest News Bagpat By urdu.news18.com Published On :: visit News18 Urdu for latest news, breaking news, news headlines and updates from Bagpat on politics, sports, entertainment, cricket, crime and more. Full Article
ag News18 Urdu: Latest News Mahendragarh By urdu.news18.com Published On :: visit News18 Urdu for latest news, breaking news, news headlines and updates from Mahendragarh on politics, sports, entertainment, cricket, crime and more. Full Article
ag News18 Urdu: Latest News Ambedkarnagar By urdu.news18.com Published On :: visit News18 Urdu for latest news, breaking news, news headlines and updates from Ambedkarnagar on politics, sports, entertainment, cricket, crime and more. Full Article
ag News18 Urdu: Latest News Anantnag By urdu.news18.com Published On :: visit News18 Urdu for latest news, breaking news, news headlines and updates from Anantnag on politics, sports, entertainment, cricket, crime and more. Full Article
ag News18 Urdu: Latest News Nayagarh By urdu.news18.com Published On :: visit News18 Urdu for latest news, breaking news, news headlines and updates from Nayagarh on politics, sports, entertainment, cricket, crime and more. Full Article
ag News18 Urdu: Latest News Ahmednagar By urdu.news18.com Published On :: visit News18 Urdu for latest news, breaking news, news headlines and updates from Ahmednagar on politics, sports, entertainment, cricket, crime and more. Full Article
ag News18 Urdu: Latest News Sibsagar By urdu.news18.com Published On :: visit News18 Urdu for latest news, breaking news, news headlines and updates from Sibsagar on politics, sports, entertainment, cricket, crime and more. Full Article
ag News18 Urdu: Latest News Nagapattinam By urdu.news18.com Published On :: visit News18 Urdu for latest news, breaking news, news headlines and updates from Nagapattinam on politics, sports, entertainment, cricket, crime and more. Full Article
ag News18 Urdu: Latest News Jyotiba Phoole Nagar By urdu.news18.com Published On :: visit News18 Urdu for latest news, breaking news, news headlines and updates from Jyotiba Phoole Nagar on politics, sports, entertainment, cricket, crime and more. Full Article
ag News18 Urdu: Latest News Sant Kabir Nagar By urdu.news18.com Published On :: visit News18 Urdu for latest news, breaking news, news headlines and updates from Sant Kabir Nagar on politics, sports, entertainment, cricket, crime and more. Full Article