ge Papua New Guinean Kina(PGK)/Algerian Dinar(DZD) By www.fx-exchange.com Published On :: Sat May 9 2020 16:21:46 UTC 1 Papua New Guinean Kina = 37.4116 Algerian Dinar Full Article Papua New Guinean Kina
ge Papua New Guinean Kina(PGK)/Argentine Peso(ARS) By www.fx-exchange.com Published On :: Sat May 9 2020 16:21:46 UTC 1 Papua New Guinean Kina = 19.3777 Argentine Peso Full Article Papua New Guinean Kina
ge Brunei Dollar(BND)/Nigerian Naira(NGN) By www.fx-exchange.com Published On :: Sat May 9 2020 16:21:45 UTC 1 Brunei Dollar = 275.9577 Nigerian Naira Full Article Brunei Dollar
ge Brunei Dollar(BND)/Kazakhstan Tenge(KZT) By www.fx-exchange.com Published On :: Sat May 9 2020 16:21:45 UTC 1 Brunei Dollar = 298.594 Kazakhstan Tenge Full Article Brunei Dollar
ge Brunei Dollar(BND)/Algerian Dinar(DZD) By www.fx-exchange.com Published On :: Sat May 9 2020 16:21:45 UTC 1 Brunei Dollar = 90.8085 Algerian Dinar Full Article Brunei Dollar
ge Brunei Dollar(BND)/Argentine Peso(ARS) By www.fx-exchange.com Published On :: Sat May 9 2020 16:21:45 UTC 1 Brunei Dollar = 47.0351 Argentine Peso Full Article Brunei Dollar
ge [Men's Basketball] Central Christian College Men's Basketball Falls Short to Haskell By www.haskellathletics.com Published On :: Fri, 06 Dec 2019 10:00:00 -0600 Final Score: 71-53 Full Article
ge [Men's Basketball] Men's Basketball Prepares for Game Against Nebraska Christian College By www.haskellathletics.com Published On :: Mon, 13 Jan 2020 13:00:00 -0600 Full Article
ge [Men's Basketball] Haskell Men's Basketball Defeat Nebraska Christian College By www.haskellathletics.com Published On :: Thu, 16 Jan 2020 17:30:00 -0600 Full Article
ge [Men's Basketball] Men's Basketball goes on the Road to Crowley's Ridge By www.haskellathletics.com Published On :: Fri, 24 Jan 2020 11:00:00 -0600 Full Article
ge [Men's Basketball] Loss to No.3 Seed Lincoln College Ends Men's Basketballs Post Season Play By www.haskellathletics.com Published On :: Fri, 28 Feb 2020 19:25:00 -0600 Full Article
ge AMBA Adaptive Traffic Profiles: Addressing The Challenge By feedproxy.google.com Published On :: Tue, 09 Jul 2019 16:54:00 GMT Modern systems-on-a-chip (SoCs) continue to increase in complexity, adding more components and calculation power to accommodate new performance-hungry applications such as machine learning and autonomous driving. With increased number of SoC components, such as CPUs, GPUs, accelerators and I/O devices, comes increased demand to correctly model interoperability of various components. Traditional simulation of complex systems requires accurate models of all components comprising the system and normally results in very long simulation times. A better way is to create a set of typical traffic profiles which describe behavior of system’s masters and slaves. Such profiles should be abstract to be applied to various protocols and interfaces and be portable to be applied throughout different SoC design and verification cycles. To address the challenges outlined above, Arm has recently announced availability of the AMBA® Adaptive Traffic Profiles (AMBA ATP) specification which lays foundation of a new synthetic traffic framework. The AMBA ATP specification includes detailed information of various transaction types and timing characteristics of those transactions. The traffic profiles defined in the specification are abstract in nature and thus could be used to generate stimuli for various standard AMBA protocols and in various environments such as RTL-based simulation, FPGA prototyping and final SoC verification. The traffic profiles outlined in the specification include a set of parameters to define timing relationships between transactions as well as timing relationships within individual transactions. Even though the traffic profile represents the behavior of a single agent it could be applied either in a concurrent manner (e.g. write and read traffic profiles running in parallel) or in a sequential manner (e.g. when one traffic completes before the next one start). Moreover, when simulating a reasonably complex system, it is possible to coordinate traffic profiles generated by multiple components. While providing abstract definition of traffic profiles, the AMBA ATP specification focuses on the use of traffic profiles with an AMBA AXI interface, outlining signaling, timing relationships between different transaction phases and between different transactions. The same application principles could be used to map the abstract traffic profiles to other AMBA protocols such as AMBA5 CHI protocol. To facilitate adoption of the AMBA Adaptive Traffic Profiles, Cadence has recently announced availability of SystemVerilog UVM ATP Sequence Layer which automatically implements mapping of an abstract ATP traffic to AMBA protocol specific traffic, generated by Cadence AMBA Verification IP. The ATP layer is implemented as a SystemVerilog UVM virtual sequence with the sequence item including all ATP transaction parameters as defined in the specification. Using the provided sequence infrastructure, users can write tests to define and coordinate traffic profiles for various components in the system. The ATP Layer automatically converts the abstract traffic profile into AMBA protocol-specific traffic, e.g., AMBA5 CHI protocol traffic. A sample code below, shows an example of a read profile translated by Cadence ACE Verification IP in ACE protocol traffic. `uvm_do_with(ace_atp_vseq, {ace_atp_vseq.agentId == agent_id; // ATP agent id ace_atp_vseq.atpDirection == ATP_READ; // direction of bursts issued by virtual sequence ace_atp_vseq.startAddress == start_address; // start of address range being accessed ace_atp_vseq.endAddress == end_address; // end of address range being accessed ace_atp_vseq.atpDomain == atp_domain; // domain to use for transactions ace_atp_vseq.addressPattern == ATP_SEQUENTIAL; // address pattern ace_atp_vseq.transactionSize == 64; // number of bytes in each burst ace_atp_vseq.dataSize == 4; // number of bytes in each transfer ace_atp_vseq.rate == 150.0/(50.0); // requestedBandwidth / clkFrequency ace_atp_vseq.start == ATP_EMPTY; // start condition of the ATP FIFO ace_atp_vseq.full == 128; // full level of the ATP FIFO ace_atp_vseq.numOfTransactions == 500; // number of bursts issued by this sequence ace_atp_vseq.ARTV == 2; // sub-transaction delay ace_atp_vseq.RBR == 3; // sub-transaction delay }); In addition to the ATP Layer for Cadence Simulation-Based AMBA Verification IP, Cadence supports the ATP functionality in Acceleration-Based AMBA Verification IP. For detailed information about ATP support in Cadence Simulation-Based and Acceleration-Based Verification IP, visit ip.cadence.com. Full Article Adaptive Traffic Profiles Performance modeling AMBA ATP
ge 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
ge The Hard Edges of Modern Lives By feedproxy.google.com Published On :: 2009-03-20T08:26:00+00:00 This new film is the latest remake of Devdas, but what is equally interesting is the fact that it is in conversation with films made in the West. Unlike Bhansali’s more spectacular version of the older story, Anurag Kashyap’s Dev.D is a genuine rewriting of Sarat Chandra’s novel. Kashyap doesn’t flinch from depicting the individual’s downward spiral, but he also gives women their own strength. He has set out to right a wrong—or, at least, tell a more realistic, even redemptive, story. If these characters have lost some of the affective depth of the original creations, they have also gained the hard edges of modern lives. We don’t always feel the pain of Kashyap’s characters, but we are able to more readily recognize them. Take Chandramukhi, or Chanda, who is a school-girl humiliated by the MMS sex-scandal. Her father, protective and patriarchal, says that he has seen the tape and thinks she knew what she was doing. “How could you watch it?” the girl asks angrily. And then, “Did you get off on it?” When was the last time a father was asked such a question on the Hindi screen? With its frankness toward sex and masturbation, Dev.D takes a huge step toward honesty. In fact, more than the obvious tributes to Danny Boyle’s Trainspotting, or the over-extended psychedelic adventure on screen, in fact, as much as the moody style of film-making, the candour of such questions make Dev.D a film that is truly a part of world cinema. Rave Out © 2007 IndiaUncut.com. All rights reserved. India Uncut * The IU Blog * Rave Out * Extrowords * Workoutable * Linkastic Full Article
ge Extrowords #102: Generalissimo 73 By feedproxy.google.com Published On :: 2007-12-10T18:27:00+00:00 Sample clues 5 across: The US president’s bird (3,5,3) 11 down: Group once known as the Quarrymen (7) 10 across: Cavalry sword (5) 19 across: Masonic ritual (5,6) 1 down: Pioneer of Ostpolitik (6) Extrowords © 2007 IndiaUncut.com. All rights reserved. India Uncut * The IU Blog * Rave Out * Extrowords * Workoutable * Linkastic Full Article
ge Extrowords #103: Generalissimo 74 By feedproxy.google.com Published On :: 2007-12-11T15:27:00+00:00 Sample clues 14 across: FDR’s baby (3,4) 1 down: A glitch in the Matrix? (4,2) 4 down: Slanted character (6) 5 down: New Year’s venue in New York (5,6) 16 down: Atmosphere of melancholy (5) Extrowords © 2007 IndiaUncut.com. All rights reserved. India Uncut * The IU Blog * Rave Out * Extrowords * Workoutable * Linkastic Full Article
ge Extrowords #104: Generalissimo 74 By feedproxy.google.com Published On :: 2007-12-13T18:18:00+00:00 Sample clues 6 across: Alejandro González Iñárritu’s breakthrough film (6,6) 19 across: Soft leather shoe (8) 7 down: Randroids, for example (12) 12 down: First American World Chess Champion (7) 17 down: Circle of influence (5) Extrowords © 2007 IndiaUncut.com. All rights reserved. India Uncut * The IU Blog * Rave Out * Extrowords * Workoutable * Linkastic Full Article
ge Extrowords #105: Generalissimo 75 By feedproxy.google.com Published On :: 2007-12-17T06:25:00+00:00 Sample clues 5 across: Robbie Robertson song about Richard Manuel (6,5) 2 down: F5 on a keyboard (7) 10 across: Lionel Richie hit (5) 3 down: ALTAIR, for example (5) 16 down: The problem with Florida 2000 (5) Extrowords © 2007 IndiaUncut.com. All rights reserved. India Uncut * The IU Blog * Rave Out * Extrowords * Workoutable * Linkastic Full Article
ge Extrowords #106: Generalissimo 76 By feedproxy.google.com Published On :: 2007-12-21T18:15:00+00:00 Sample clues 9 across: Van Morrison classic from Moondance (7) 6 down: Order beginning with ‘A’ (12) 6 across: Fatal weakness (8,4) 19 across: Rolling Stones classic (12) 4 down: Massacre tool (8) Extrowords © 2007 IndiaUncut.com. All rights reserved. India Uncut * The IU Blog * Rave Out * Extrowords * Workoutable * Linkastic Full Article
ge Cadence Genus Synthesis Solution – the Next Generation of RTL Synthesis By feedproxy.google.com Published On :: Wed, 03 Jun 2015 12:45:00 GMT Physical synthesis has been around in various forms for many years. The basic idea is to bring some awareness of physical layout into synthesis. This week (June 3, 2015) Cadence is rolling out the Genus™ Synthesis Solution, a next-generation RTL synthesis tool that takes physical awareness in some new directions. Here are four important things to know about Genus technology: A massively parallel architecture improves turnaround time by up to 5X while maintaining quality of results The Genus solution synthesizes up to 10M+ instances flat without impacting power, performance and area (PPA) The Genus solution provides tight correlation with the Innovus Implementation System, using the same placement and routing algorithms Globally focused PPA optimization saves up to 20% datapath area and power Compared to previous-generation products such as the Cadence Encounter RTL Compiler Advanced Physical Option, the Genus solution approaches physical synthesis in a different way. The Encounter solution applied physical optimization “at the tail end of synthesis,” said David Stratman, senior principal product manager at Cadence. “We were doing a final incremental push, but we could only do so much, since we had locked in a lot of the earlier steps from a logical-only synthesis perspective.” Genus Synthesis Solution supports the physical synthesis features in the previous Encounter solution, but it also brings the full physical scope upstream to RTL logic designers. “It’s going to enable the unit-level RTL designer to gain the benefits of physical synthesis without having to understand it,” Stratman said. As an example, users can apply generic (unmapped) placement at the earliest stages of synthesis, using a lightweight version of the Innovus placement engine. The bottom line: “Genus is a full solution where every step of synthesis can be done physically.” Getting Massively Parallel If you bring physical data into synthesis, you need a way to improve capacity and runtimes, especially with today’s gigantic advance-node SoCs. That’s why a massively parallel architecture is the cornerstone of the Genus solution. In this way, the Genus solution is following in the footsteps of the Innovus Implementation System, which also provides a massively parallel architecture. Both the Innovus and Genus solutions can handle blocks of 10M instances flat. Given that SoCs today may have up to 100M instances, and often up to 50-100 top-level blocks, this is an important capability. Many tools today will only handle blocks of 1M instances. As a result, design teams often have to constrain block sizes. Genus technology offers timing-driven, multi-level design partitioning across multiple threads and machines. It enables a near-linear runtime scaling without impacting PPA. According to Stratman, the Genus solution will scale well beyond 64 CPUs for a large design, with a “sweet spot” around 8-20 CPUs for today’s typical block sizes. Runs that used to take days, he noted, can now be done in hours. As shown below, Genus technology leverages parallelism at three levels. The Genus solution can distribute design partitions to multiple threads or CPUs, and also supports local algorithm-level multithreading on each machine with shared memory. An adaptive scheduler ensures the best use of the available CPUs. Fig. 1 – Genus Synthesis Solution provides three levels of parallelism With its massive parallelism, Stratman said, Genus technology can obtain production-level quality of results (QoR) in runtimes typically seen in “prototype-level” synthesis runs. The “secret sauce,” he said, is in the partitioning. Cadence has found a way to generate partitions in a way that “slices the design more intelligently, and takes advantage of the Genus database to merge partitions without losing timing, power, or area,” Stratman said. Playing in the Sandbox In the Genus Synthesis Solution, a process called “sandboxing” allows any subset or partition of a design to be extracted along with full timing and a physical context. Optimization algorithms will treat a sandbox as a complete design. The “Clipper” flow clips out or extracts the context of the larger SoC blocks. “It’s kind of a skeleton floorplan but it has all the timing information,” Stratman said. These extracted contexts include all the critical physical information to make the right RTL synthesis choices at the unit level. This information is used to streamline the handoffs between unit-level RTL designers, integration engineers, and implementation engineers. It’s a way for logic designers to gain some physical knowledge without having to be a physical synthesis expert, or without having to run a full top-level synthesis. Fig. 2 – Clipper flow provides context for unit-level blocks Correlation with Innovus Implementation System Although Genus technology can work with third-party IC implementation systems, it shares algorithms and engines with Innovus Implementation System, as well as a common user interface. As shown below, both the Genus and Innovus solutions use a table-based Quantus QRC parasitic extraction, effective current source model (ECSM) and composite current source (CCS) delay calculations, and a unified global routing engine. Timing and wire length claim a 5% correlation. Fig. 3 – Genus Synthesis Solution offers tight correlation with Innovus Implementation System Genus technology doesn’t model everything to the same level of accuracy as the Innovus solution, however. “We chose to be lighter weight and more nimble to get expected runtimes,” Stratman said. A tight correlation is possible because the Genus and Innovus solutions use a similar code base. This correlation will be tighter than that between Encounter RTL Compiler Advanced Physical Option and the Encounter Digital Implementation System today. Genus Synthesis Solution uses a new Hybrid Global Router that provides the ability to resolve congestion and construct layer-aware, timing-driven wire topologies. This accelerates analysis and debug, and reduces iterations. Users can avoid blockages and see a full Manhattan route as opposed to “flight lines.” Layer awareness is particularly important, given the large RC variations within the metal stack at advanced process nodes. A version of the Innovus GigaPlace engine is available within the Genus solution. Here, users can do an RTL-level generic gate placement early in the synthesis flow (“generic gate” means there is no mapping into standard cell libraries, but there’s still an area estimate). This helps designers understand PPA tradeoffs earlier. While users can go all the way to a design-rule “legal” placement with Genus Synthesis Solution, this isn’t generally recommended. “You can do a placement and use the same algorithms as GigaPlace and get a nice correlation without all the runtimes and additional steps of doing a fully legal placement,” Stratman said. So where does Genus technology end and Innovus technology begin? That’s up to the user. You could use the Genus solution for logical synthesis and run all physical implementation in the Innovus system. If you run physical synthesis within the Genus solution, there’s more work earlier in the flow, but you get better insights into downstream problems and reduce iterations. “Physical synthesis should be no more than 2X [runtime] of logic synthesis,” Stratman said. “All of the runtime that moves up should be shaved off of the place-and-route stages, because now you can do lightweight incremental optimization and incremental placement. The overall flow should be runtime neutral or better.” Be Globally Aware Finally, Genus Synthesis Solution offers a globally focused early PPA optimization across the whole datapath, delivering up to a 20% area reduction in the datapath. Stratman noted that this capability is a follow-on to an RCP feature called “globally focused mapping” that can determine the best cells to use in a library. What’s new with the Genus solution is that this concept has been applied at the arithmetic level. For example, there are many ways to configure a multiplier – you may want to prioritize speed, power, or size. In the past, Stratman noted, synthesis tools have not been very good at globally optimizing the architecture selection for PPA optimization. “We can [now] find the most efficient global datapath implementation for a given region,” he said. For further information about the Cadence Genus Synthesis Solution, including a datasheet and technical product brief, see this landing page. Richard Goering Related Blog Posts Designer View – RTL Synthesis Success Strategies at 28nm and Below Front-End Design Summit: The Future of RTL Synthesis and Design for Test Physically-Aware Synthesis Helps Design a New Computer Architecture Full Article Genus cadence RTL synthesis Cadence Encounter Innovus Logic synthesis Physical Synthesis
ge DAC 2015: Lip-Bu Tan, Cadence CEO, Sees Profound Changes in Semiconductors and EDA By feedproxy.google.com Published On :: Thu, 11 Jun 2015 18:46:00 GMT As a leading venture capitalist in the electronics technology, as well as CEO of Cadence, Lip-Bu Tan has unique insights into ongoing changes that will impact EDA providers and users. Tan shared some of those insights in a “fireside chat” with Ed Sperling, editor in chief of Semiconductor Engineering, at the Design Automation Conference (DAC 2015) on June 9. Topics of this discussion included industry consolidation, the need for more talent and more startups, Internet of Things (IoT) opportunities and challenges, the shift from ICs to full product development, and the challenges of advanced nodes. Following are some excerpts from this conversation, held at the DAC Pavilion theater on the exhibit floor. Ed Sperling (left) and Lip-Bu Tan (right) discuss trends in semiconductors and EDA Q: As you look out over the semiconductor and EDA industries these days, what worries you most? Tan: At the top of my list is all the consolidation that is going on. Secondly, chip design complexity is increasing substantially. Time-to-market pressure is growing and advanced nodes have challenges. The other thing I worry about is that we need to have more startups. There’s a lot of innovation that needs to happen. And this industry needs more top talent. At Cadence, we have a program to recruit over 10% of new hires every year from college graduates. We need new blood and new ideas. Q: EDA vendors were acquiring companies for many years, but now the startups are pretty much gone. Where does the next wave of innovation come from? Tan: I’ve been an EDA CEO for the last seven years and I really enjoy it because so much innovation is needed. System providers have very big challenges and very different needs. You have to find the opportunities and go out and provide the solutions. The opportunities are not just in basic tools. Massive parallelism is critical, and the power challenge is huge. Time to market is critical, and for the IoT companies, cost is going to be critical. If you want to take on some good engineering challenges, this is the most exciting time. Q: You live two lives—you’re a CEO but you’re also an investor. Where are the investments going these days and where are we likely to see new startups? Tan: Clearly everybody is chasing the IoT. There is a lot of opportunity in the cloud, in the data center. Also, I’m a big believer in video, so I back companies that are video related. A big area is automotive. ADAS [Advanced Driver Assistance Systems] is a tremendous opportunity. These companies can help us understand how the industry is transforming, and then we can provide solutions, either in terms of IP, tools, or the PCB. Then we need to connect from the system level down to semiconductors. I think it’s a different way to design. Q: What happens as we start moving from companies looking to design a semiconductor to system companies who are doing things from the perspective that we have this purpose for our software? Tan: We are extending from EDA to what we call system design enablement, and we are becoming more application driven. The application at the system level will drive the silicon design. We need to help companies look at the whole system including the power envelope and signal integrity. You don’t want to be in a position where you design a chip all the way to fabrication and then find the power is too high. We help the customers with hardware/software co-design and co-verification. We have a design suite and a verification suite that can provide customers with high-level abstractions, as well as verify IP blocks at the system level. Then we can break things down to the component level with system constraints in mind, and drive power-aware, system-aware design. We are starting to move into vertical markets. For example, medical is a tremendous opportunity. Q: How does this approach change what you provide to customers? Tan: Every year I spend time meeting with customers. I think it is very important to understand what they are trying to design, and it is also important to know the customer’s customer requirements. We might say, “Wait a minute, for this design you may want to think about power or the library you’re using.” We help them understand what foundry they should use and what process they should use. They don’t view me as a vendor—they view me as a partner. We also work very closely with our IP and foundry partners. We work as one team—the ultimate goal is customer success. Q: Is everybody going to say, FinFETs are beautiful, we’re going to go down to 10nm or 7nm—or is it a smaller number of companies who will continue down that path? Tan: Some of the analog/mixed-signal companies don’t need to go that far. We love those customers—we have close to 50% of that business. But we also have customers in the graphics or processor area who are really pushing the envelope, and need to be in 16nm, 14nm, or 10nm. We work very closely with those guys to make sure they can go into FinFETs. We always want to work with the customer to make sure they have a first-time silicon success. If you have to do a re-spin, you miss the opportunity and it’s very costly. Q: There’s a new market that is starting to explode—IoT. How real is that world to you? Everyone talks about large numbers, but is it showing up in terms of tools? Tan: Everybody is talking about huge profits, but a lot of the time I think it is just connecting old devices that you have. Billions of units, absolutely yes, but if you look close enough the silicon percentage of that revenue is very tiny. A lot of the profit is on the service side. So you really need to look at the service killer app you are trying to provide. What’s most important to us in the IoT market is the IP business. That’s why we bought Tensilica—it’s programmable, so you can find the killer app more quickly. The other challenges are time to market, low power, and low cost. Q: Where is system design enablement going? Does it expand outside the traditional market for EDA? Tan: It’s not just about tools. IP is now 11% of our revenue. At the PCB level, we acquired a company called Sigrity, and through that we are able to drive system analysis for power, signal integrity, and thermal. And then we look at some of the verticals and provide modeling all the way from the system level to the component level. We make sure that we provide a solution to the end customer, rather than something piecemeal. Q: What do you think DAC will look like in five years? Tan: It’s getting smaller. We need to see more startups and innovative IP solutions. I saw a few here this year, and that’s good. We need to encourage small startups. Q: Where do we get the people to pull this off? I don’t see too many people coming into EDA. Tan: I talk to a lot of university students, and I tell them that this small industry is a gold mine. A lot of innovation is needed. We need them to come in [to EDA] rather than join Google or Facebook. Those are great companies, but there is a lot of fundamental physical innovation we need. Richard Goering Related Blog Posts - Gary Smith at DAC 2015: How EDA Can Expand Into New Directions - DAC 2015: Google Smart Contact Lens Project Stretches Limits of IC Design - Q&A with Nimish Modi: Going Beyond Traditional EDA Full Article Ed Sperling DAC cadence IoT EDA Lip-Bu Tan Semiconductor Design Automation Conference
ge Verilog Code to Custom IC Layout generation By feedproxy.google.com Published On :: Mon, 02 Mar 2020 21:35:36 GMT Hello everyone, I am Vinay and I am currently developing some digital circuits for my chip design for my master's thesis at University at Buffalo. I am fairly very new to Verilog and I don't seem to follow some of the things others find very easy. Following are the things that I want to do to which I have no clue: 1. Develop certain arithmetic functionality in Verilog 2. Generate netlist for the verilog code 3. Feed the netlist file to Cadence encounter to be able to generate Digital Circuits' layout for my chip I can use Cadence Virtuoso and Encounter for this but I don't know the exact procedure to get this done. Could someone please describe the detailed process for doing the things mentioned above. Thank you. Full Article
ge How to place pins inside of the edge in Innovus By feedproxy.google.com Published On :: Fri, 10 Apr 2020 04:02:08 GMT Hi, I am doing layout for a mixed-signal circuit in Innovus. I want to create a digital donut style of layout (i.e. put analog circuit in the middle, and circle analog part with digital circuits). To do that, I need to place some pins inside the edge to connect to analog circuit (as shown in my attachment), but the problems is that I cannot place pins inside the edge by using "pin editor" within Innovus. Any suggestions to place pins inside? Thank you so much for your time and effort. Full Article
ge 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
ge 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
ge genus include `define file By feedproxy.google.com Published On :: Mon, 25 Nov 2019 15:35:21 GMT I have a file that list all the `defines that is used in the current design. This file (define.vh) is generated, like so : `define MACRO_1 5 `define MACRO_2 1'h0 ... etc But in genus when I run the command read_hdl define.vh read_hdl -sv top.sv The tool work as if the defines never get parsed and returns with unreferenced errors. How can I resolve this? Do I have to include 'define.vh' in all the design files? Full Article
ge GENUS can't handle parameterized ports? By feedproxy.google.com Published On :: Fri, 20 Dec 2019 22:15:34 GMT The following is valid SystemVerilog: module mmio #(parameter PORTS=2, parameter ADDR_WIDTH=30) (input logic[ADDR_WIDTH-1:0] addr[PORTS], output logic ben[PORTS], // Bus enable output logic men[PORTS]); // Memory enable always_comb begin for(int i = 0; i < PORTS; i++) begin ben[i] = addr[i] >= 'h20080004 && addr[i] < 'h200c0000; men[i] = ~ben[i]; end endendmodule : mmio And if you instantiate it: mmio #(1, 30) MMIO(.addr('{scalar_addr}), .ben('{ben}), .men('{men})); Genus returns an error: "Could not synthesize non-constant range values. [CDFG-231] [elaborate]" Is this just not possible in Genus or could it be caused by something else? Full Article
ge About SDF file after synthesis in Genus Tool By feedproxy.google.com Published On :: Thu, 20 Feb 2020 09:47:17 GMT hello sir this is Ganesh from NIT Hamirpur pursuing MTech in VLSI. I have doubt regarding SDF i'm using genus tool for synthesis & after synthesis when i'm generating SDF it is giving delays by default for maximum values but i want all the delays like minimum:Typical:Maximum how can i do this. Is there any provision to set PVT values manually for SDF generation so that i can get all the delay values. Full Article
ge New Memory Estimator Helps Determine Amount of Memory Required for Large Harmonic Balance Simulations By feedproxy.google.com Published On :: Thu, 24 Apr 2014 14:24:00 GMT Hi Folks, A question that I've often received from designers, "Is there a method to determine the amount of memory required before I submit a job? I use distributed processing and need to provide an estimate before submitting jobs." The answer...(read more) Full Article HB Spectre RF MMSIM spectreRF harmonic balance memory estimator
ge How to Set Up and Plot Large-Signal S Parameters? By feedproxy.google.com Published On :: Mon, 04 Dec 2017 09:23:00 GMT Large-signal S-parameters (LSSPs) are an extension of small-signal S-parameters and are defined as the ratio of reflected (or transmitted) waves to incident waves. (read more) Full Article RF Simulation Spectre RF Virtuoso ADE Virtuoso
ge How to get test name from test session object? By feedproxy.google.com Published On :: Thu, 30 Apr 2020 07:04:23 GMT Hi, I have a test session object that I am getting like this: maeTstSession=maeGetTestSession(test ?session session) Is it possible to get the test name from this object? I am asking because this object passed to several levels of functions and I don't want to pass an additional argument with the test name Full Article
ge Get schematic to layout bound stdcells for array By feedproxy.google.com Published On :: Fri, 01 May 2020 00:29:26 GMT I can get the bound stdcells using bndGetBoundObjects, but not get what each individual stdcell corresponds in layout. Is there a way to get the layout bound stdcells of an array schematic symbol if the layout stdcell name do or do not match the symbol naming? Once the schematic array stdcells are bound to the layout stdcells, how to get the correct terminal term~>name and net~>name? Example of a schematic symbol and layout stdcell: Schematic INV<0:2> instTerms~>terms~>name = ("vss" "vdd" "A" "Y") instTerms~>net~>name = ("<*3>vss" "<*3>vdd" "in<0:2>" "nand2A,nand3B,nor2B") Layout ( I know it is bad practice, but it happens ) stdcell1 instTerms~>terms~>name = ("vss" "vdd" "A" "Y") instTerms~>net~>name = ("vss" "vdd" "in<0>" "nand2A") I23 instTerms~>terms~>name = ("vss" "vdd" "A" "Y") instTerms~>net~>name = ("vss" "vdd" "in<1>" "nand3B") INV(2) instTerms~>terms~>name = ("vss" "vdd" "A" "Y") instTerms~>net~>name = ("vss" "vdd" "in<2>" "nor2B") Paul Full Article
ge Merge BBOX in hierarchical layout By feedproxy.google.com Published On :: Fri, 01 May 2020 05:01:07 GMT Hi Team, Problem Statement:In hierarchical layout, I want to get BBOX of particular layer without actually flattening the layout. Description:The layer can be at any hierarchical depth i.e both from PCELL or shapes but at top level if they are overlapping then I want the merged BBOX. Now, I am able to get BBOX of all the shapes present at different hierarchy.But i finding issue in merging BBOX. Please can help me on the same issue as I require efficient way to merge the BBOX because list containing the BBOX is huge. Thanks in advance. Regrads, Prasanna Full Article
ge VIVA Calculator function to get the all outputs and apply a procedure to all of them By feedproxy.google.com Published On :: Sat, 02 May 2020 01:24:40 GMT Hi, I am running simulation in ADEXL and need a custom function for VIVA to apply same procedure to all signals saved in output. For instance, I have clock nets and I want to get all of them and look at the duty-cycle, edge rate etc. It is a little more involved than about part since I have some regex and setof to filter before processing but if I can get all signals for current history, I can postprocess them later. In ocean, I am just doing outputs() and getting all saved signals but I was able to do this in VIVA calculator due to the difficulties in getting current history, test name and opening result directory thanks yayla Version Info: ICADV12.3 64b 500.21 spectre -W => Tool 'cadenceMMSIM' Current project version '16.10.479'sub-version 16.1.0.479.isr9 Full Article
ge How to get m0 layer info in a layout By feedproxy.google.com Published On :: Wed, 06 May 2020 11:27:53 GMT HI All, I am new to skill. My requirement is open layout get m0 layer cordinates in a layout dump info into a text file For example 2 input Nand, A,B output , vcc , vssx and internal net (n2) will be the m0 layers. I need info like in a text file. n2 co ordinate vssx (co ordinate) a (co ordinate) b (co ordinate ) . I found similar code in cadence form . Can you help me on this procedure(printPts()let( (type (cnt 0) (objList geGetSelSet()))foreach(obj objList ++cnt type = obj~>objType case(type ("inst" printf("%s %L at %L " type obj~>xy)) ("rect" printf("%s on layer %L at %L " type obj~>lpp obj~>bBox)) ("polygon" printf("%s on layer %L at %L " type obj~>lpp obj~>points)) ("path" printf("%s on layer %L at %L " type obj~>lpp obj~>points)) ("pathSeg" printf("%s on layer %L at %L " type obj~>lpp list(obj~>beginPt obj~>endPt))) ("label" printf("%s on layer %L at %L " type obj~>lpp obj~>xy)) (t printf("%s not defined " type)) ))printf("%n objects selected " cnt)); end of let); end of printPts Full Article
ge skill ocean: how to get instances of type hisim_hv from simulation results? By feedproxy.google.com Published On :: Fri, 08 May 2020 20:46:12 GMT Hi there, I'm running a transient simulation, and I want to get all instances with model implementation hisim_hv because after that I want to process the data and to adjust some parameters for this kind of devices before dumping the values. What is the easiest/fastest way to get those instances in skill/ocean? What I did until now: - save the final OP of the simulation and then in skill openResults()selectResults('tranOp)report(?type "hisim_hv" ?param "vgs") Output seems to be promising, and looks like I can redirect it to a file and after that I have to parse the file. Is there other simple way? I mean to not save data to file and to parse it. Eventually having an instance name, is it possible to get the model implementation (hsim_hv, bsim4, etc..)? Best Regards, Marcel Full Article
ge When Arm meets Intel – Overcoming the Challenges of Merging Architectures on an SoC to Enable Machine Learning By feedproxy.google.com Published On :: Fri, 29 Sep 2017 19:59:59 GMT As the stakes for winning server segment market share grow ever higher an increasing number of companies are seeking to grasp the latest Holy Grail of multi-chip coherence. The approach promises to better enable applications such as machine learning...(read more) Full Article SoC verification perspec system verifier Accellera pss portable stimulus
ge 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
ge Integration and Verification of PCIe Gen4 Root Complex IP into an Arm-Based Server SoC Application By feedproxy.google.com Published On :: Thu, 16 Aug 2018 22:17:00 GMT Learn about the challenges and solutions for integrating and verification PCIe(r) Gen4 into an Arm-Based Server SoC. Listen to this relatively short webinar by Arm and Cadence, as they describe the collaboration and results, including methodology and...(read more) Full Article
ge Generating IBIS models in cadence virtuoso By feedproxy.google.com Published On :: Wed, 04 Sep 2019 20:25:36 GMT I'm trying to generate IBIS models for the parts that I'm designing. I'm designing using CADENCE Virtuoso. I'm wondering if there is a tutorial for generating IBIS models in CADENCE Virtuoso. Please pardon me if my question is broad. Full Article
ge Chiplet Interface for Heterogeneous SiP By feedproxy.google.com Published On :: Thu, 17 Oct 2019 07:38:18 GMT https://community.cadence.com/cadence_blogs_8/b/breakfast-bytes/posts/cowos-info I came across cadence old article that discussing about TSMC advance packaging technology such as InFO & CoWoS. However, I couldn’t find information such as what I/O interface standard is required to realize this multi-chip SiP. For example, Intel using their proprietary AIB interface for EMIB solution. Besides, any idea if inFO also able to supports multi-chip integration for older node process to new node process such as 40-nm to 16-nm? Full Article
ge Unable to add wire bond finger from die pins By feedproxy.google.com Published On :: Wed, 29 Jan 2020 11:54:40 GMT I have created a die and other components as symbols in sip and placed the symbols in sip through logic import capture netlist. It shows net connectivity but i couldn't add bond finger from the die pins. Please help on this. Full Article
ge 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
ge 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
ge 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
ge 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
ge 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
ge 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
ge 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
ge 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