<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.cadence.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Logic Design - Recent Threads</title><link>https://community.cadence.com/cadence_technology_forums/f/logic-design</link><description> Synthesis, Equivalence Checking, Low Power Validation, Test[br][b]Moderator:[/b] Diego Hammerschlag, Vince Pham, Lisa</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>Timing closure on cloned clock gate enable inputs</title><link>https://community.cadence.com/thread/65715?ContentTypeID=0</link><pubDate>Thu, 05 Feb 2026 15:36:13 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:b167379d-67d6-4fe5-88d2-ec1ca0134aac</guid><dc:creator>YJ202602057834</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/65715?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/logic-design/65715/timing-closure-on-cloned-clock-gate-enable-inputs/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Our IP has a software controlled clock gate controlling an entire clock domain (several hundred flops). I noticed that in some cases, the clock gate is cloned post CTS, which create a large fanout path from the enable to the different clones. This path fails then fails timing checks. Apologies if this should not come as a surprise; I&amp;#39;m mostly a Verilog guy.&lt;/p&gt;
&lt;p&gt;I have searched quite a lot online but could not find a reliable method of dealing with this kind of problem. The only method that could seemingly solve this is a set_max_fanout/set_register_duplication directive on the enable flop, but for reasons that people online do not explain, backend engineers do not like to use these directives. So:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Is there an industry-standard way to deal with this kind of problems?&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Can anyone tell me why set_max_fanout/set_register_duplication directives are frowned upon?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I have some ideas regarding 1 but they usually involve severe limits on the users to configure clock gating only within a reset context.&lt;/p&gt;
&lt;p&gt;Many thanks in advance!&lt;/p&gt;</description></item><item><title>RE: Timing closure on cloned clock gate enable inputs</title><link>https://community.cadence.com/thread/1407973?ContentTypeID=1</link><pubDate>Mon, 09 Mar 2026 21:36:24 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:0edd82be-1aa8-4cc6-ac2a-cd041f643e31</guid><dc:creator>YJ202504163215</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/1407973?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/logic-design/65715/timing-closure-on-cloned-clock-gate-enable-inputs/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;You may want to clone the clock gates during synthesis itself. There you can clone the enable flop as well. That way you see this issue much earlier than waiting until post cts.&lt;/p&gt;
&lt;p&gt;Another solution if for any reason it is not duplicated during synthesis you can try to duplicate during prects that is during&amp;nbsp;place_opt_design. You can clone enable flop post syn thesis but it tends to be not on the expected lines. The issue is the logic on the data path is dependent on too many inputs and using the above commands you may have to clone path from all the inputs to allow you to move the combinational cells freely. The tendency of the tool is to place clock gates closer to fanout flops thereby keeping latency on the lower side but the impact is seen on the enable side.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Static power consumption of domino logic and cmos logic AND gate (cadence 6.1.8)</title><link>https://community.cadence.com/thread/65790?ContentTypeID=0</link><pubDate>Sat, 28 Feb 2026 21:41:16 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:162d8605-fa35-4995-93b4-30b180c6b047</guid><dc:creator>MM202602287655</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/65790?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/logic-design/65790/static-power-consumption-of-domino-logic-and-cmos-logic-and-gate-cadence-6-1-8/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I am comparing the performance parametrics of cmos logic and domino logic from room temperature to cryogenic temperature.&lt;/p&gt;
&lt;p&gt;I was measuring the parameters like dynamic power consumption, static power, delay etc&lt;/p&gt;
&lt;p&gt;Basically I am working both circuits on same schematic cell view with same Vdd, load and input frequency.&lt;/p&gt;
&lt;p&gt;firstly i tried measuring static power consumption by shift deleting one circuit at a time in schematic as both had common vdd supply and global ground. At that time cmos has pW range power consumption in room temperature and it reduces only by few to cryogenic. Domino had more static power at room from nW and it went to pW range in cryogenic, but the decrease was not gradual, it was random fluctuating with high and low. Also at some instances it gave negative power. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;While giving negative power, how to take the value, should we consider the magnitude at that temperature.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Also later i gave two vdd names separately for cmos and domino(only instances given separate, vdd value same only) with global ground for everything and no circuit change except this, but then I simulated power, the static power of cmos was more or less same, but static power of domino&amp;nbsp;for 11 combination was going to uW range.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;same circuit simulated with two different analysis on same condition gave 2 different results. How and why&lt;/b&gt;?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;i am simulating static power on the flat regions of transient analysis fir input combo 00,01,10,11 for a temperature sweep from -270C to 30C with step 10 deg C.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Requesting help on this.&lt;/p&gt;</description></item><item><title>Genus synthesis | SystemVerilog in-code attribute assignment</title><link>https://community.cadence.com/thread/65097?ContentTypeID=0</link><pubDate>Wed, 20 Aug 2025 10:43:31 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:d62e79f5-df77-4fd7-a256-b48ef2ebd58f</guid><dc:creator>SA202508198026</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/65097?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/logic-design/65097/genus-synthesis-systemverilog-in-code-attribute-assignment/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p data-start="252" data-end="257"&gt;Hi,&lt;/p&gt;
&lt;p data-start="259" data-end="387"&gt;I&amp;rsquo;m trying to determine whether Cadence Genus supports SystemVerilog in-code synthesis attributes (similar to how Vivado does), for example:&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;(* dont_touch = &amp;quot;true&amp;quot; *) logic mysignal;&lt;/span&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;br /&gt;&lt;/span&gt;My goal is to simplify my &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;code data-start="505" data-end="517"&gt;timing.sdc&lt;/code&gt;&lt;/span&gt; file.&lt;/p&gt;
&lt;p data-start="578" data-end="633"&gt;When I try this, Genus reports:&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;Warning : Unused attribute [VLOGPT-506]&lt;/span&gt;&lt;/p&gt;
&lt;p data-start="628" data-end="727"&gt;I&amp;rsquo;ve tested several variations without success and haven&amp;rsquo;t found much documentation or examples for Genus specifically.&lt;br /&gt;- Does Genus actually support this style of attribute assignment?&lt;br /&gt;- If so, what is the correct syntax?&lt;br /&gt;- Can it be applied to module instances, ports, registers, or nets?&lt;/p&gt;
&lt;p data-start="903" data-end="947"&gt;Any insights would be greatly appreciated.&lt;/p&gt;
&lt;p data-start="946" data-end="974"&gt;Thanks in advance,&lt;br data-start="964" data-end="967" /&gt; Siebe&lt;/p&gt;</description></item><item><title>RE: Genus synthesis | SystemVerilog in-code attribute assignment</title><link>https://community.cadence.com/thread/1406739?ContentTypeID=1</link><pubDate>Mon, 20 Oct 2025 14:24:28 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:eac92fb0-3040-47fd-82f8-923fe80c73fe</guid><dc:creator>MK20251020799</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/1406739?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/logic-design/65097/genus-synthesis-systemverilog-in-code-attribute-assignment/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Unfortunately I was told by Cadence that this syntax is not currently supported (Case for reference: 46919575)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Ring oscillator separation gate delay and interconnect delay</title><link>https://community.cadence.com/thread/65149?ContentTypeID=0</link><pubDate>Tue, 02 Sep 2025 15:06:45 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:f8a76db8-2adf-4df3-a232-4de18666f7cf</guid><dc:creator>SL202509028216</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/65149?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/logic-design/65149/ring-oscillator-separation-gate-delay-and-interconnect-delay/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;span style="font-size:150%;"&gt;Hello.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;I have been reviewing the conventional methodologies for separating intrinsic gate delay and interconnect delay in ring oscillators, &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;such as &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;(1) varying the fan-out of the inverter &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;(2) modifying the interconnect length/width or shape &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;(3) changing the number of stages in the inverter chain. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;However, I believe these approaches cannot rigorously decouple the two delays. This is because the overall circuit delay fundamentally results from the product of the total resistance and capacitance distributed across the entire circuit. Unless every cell is explicitly modeled as a network of R and C components and the contributions are separated at that level, the extracted delay will always contain coupled effects of both gate and interconnect. Do you think there is a feasible circuit modification or an alternative methodology that could more clearly separate gate delay and interconnect delay, beyond the conventional fan-out, interconnect geometry, or stage-count variations? &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;I would greatly appreciate your insights or suggestions on possible approaches. thankyou!&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Reuse circuits</title><link>https://community.cadence.com/thread/65055?ContentTypeID=0</link><pubDate>Wed, 06 Aug 2025 13:23:08 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:971b526d-2706-4a0d-a7ff-f17ba05fff7f</guid><dc:creator>HSID</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/65055?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/logic-design/65055/reuse-circuits/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;My company is researching a way to utilize reuse circuits. I know how to create them and bring them into a new design. What I am looking for is how do other companies handle the reuse circuits.&lt;/p&gt;
&lt;p&gt;We would like to store them within EDM. I have not found any documents to really describe this. If someone is already using EDM to store reuse circuits and what their process is I would like to hear how you handle this.&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;
&lt;p&gt;HSID&lt;/p&gt;</description></item><item><title>Logic Gates Circuit -to- VHDL -to- IC ??</title><link>https://community.cadence.com/thread/64720?ContentTypeID=0</link><pubDate>Sun, 18 May 2025 21:48:50 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:e0321a86-2baf-4696-8b23-6f094b2f0236</guid><dc:creator>HA202505189520</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/64720?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/logic-design/64720/logic-gates-circuit--to--vhdl--to--ic/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;span style="font-size:150%;"&gt;Hi everyone i hope you are all doing well&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:150%;"&gt;im a schematic Entry designer.&amp;nbsp;i design, create and draw logic gates/Flip Flops circuits using NI Multism PLD desinger, and then export that design into a &lt;span style="font-family:impact, chicago;"&gt;VHDL file&lt;span style="font-family:arial, helvetica, sans-serif;"&gt; and synthesize in a FPGA IDE&amp;nbsp;&lt;/span&gt;&lt;/span&gt;for real FPGA simulation.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;- This an example of a digital button de-bouncer&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;img style="max-height:480px;max-width:640px;" alt=" " src="https://community.cadence.com/resized-image/__size/1280x960/__key/communityserver-discussions-components-files/31/Debouncer.png_2D00_1280x960.png" /&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;img style="max-height:480px;max-width:640px;" alt=" " src="https://community.cadence.com/resized-image/__size/1280x960/__key/communityserver-discussions-components-files/31/2025_2D00_05_2D00_18_5F00_221605.png_2D00_1280x960.png" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;Now i after i confirmed that circuit is working i want to create an actual &lt;span style="font-family:impact, chicago;"&gt;IC&lt;/span&gt; out of it (or &lt;span style="font-family:impact, chicago;"&gt;ASIC&lt;/span&gt;) but before manufacturing and chosign the fabricator, i have to create the&lt;span style="font-family:impact, chicago;"&gt; transistor-level layout&lt;/span&gt; or &lt;span style="font-family:impact, chicago;"&gt;photo mask&lt;/span&gt; (i actually don&amp;#39;t know what&amp;nbsp;&amp;nbsp;that file called) and i heard that &lt;span style="font-family:impact, chicago;"&gt;Cadence&lt;/span&gt; can do that but :&lt;br /&gt;- Does Cadence support pure digital logic design, and which version of Cadence do i need?&lt;br /&gt;- Do i have to start from scratch (rebuild it all manually) or just &lt;span style="font-family:impact, chicago;"&gt;convert&lt;/span&gt; my VHDL file into that &amp;quot;&lt;span&gt;transistor-level layout design&amp;quot;&lt;br /&gt;any suggestions&amp;nbsp;or information will be appreciated&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;span&gt;Thank you for your time&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Clock as Data Constraints</title><link>https://community.cadence.com/thread/64703?ContentTypeID=0</link><pubDate>Tue, 13 May 2025 15:22:20 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:fecd810d-2698-4328-80a9-b6ccf993b98a</guid><dc:creator>correllj</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/64703?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/logic-design/64703/clock-as-data-constraints/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I have several logic constructs where one clock samples another clock, such as phase detector, where the D pin of the flop is a clock.&lt;/p&gt;
&lt;p&gt;When running &amp;quot;report_timing -lint&amp;quot;, genus is reporting &amp;quot;Sequential data pins driven by a clock signal&amp;quot;.&lt;/p&gt;
&lt;p&gt;How do I set up the constraints to handle this?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;</description></item><item><title>signal (done) transition missing in (xcelium -simvision) during simulation but it is visible in xlinx vivado</title><link>https://community.cadence.com/thread/64659?ContentTypeID=0</link><pubDate>Sat, 03 May 2025 08:08:58 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:d30ac417-1241-44cf-9ce4-ebbe5a5e35ac</guid><dc:creator>RK202504233943</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/64659?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/logic-design/64659/signal-done-transition-missing-in-xcelium--simvision-during-simulation-but-it-is-visible-in-xlinx-vivado/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p class="" data-start="424" data-end="430"&gt;Hello,&lt;/p&gt;
&lt;p class="" data-start="432" data-end="552"&gt;I&amp;#39;m running a behavioral simulation of my Verilog design using both &lt;strong data-start="500" data-end="517"&gt;Xilinx Vivado&lt;/strong&gt; and &lt;strong data-start="522" data-end="551"&gt;Cadence Xcelium/SimVision&lt;/strong&gt;.&lt;/p&gt;
&lt;p class="" data-start="554" data-end="866"&gt;In Vivado, I can clearly see a signal (indicating end-of-count/status) rising at a specific simulation time (~120,598 ns), as expected. However, in Xcelium/SimVision, that signal stays low throughout the simulation, even though the rest of the signals (e.g., clock, reset, counter) behave the same in both tools.&lt;/p&gt;
&lt;p class="" data-start="554" data-end="866"&gt;&lt;/p&gt;
&lt;p class="" data-start="554" data-end="866"&gt;same code runs on both machine but i can see clearly see transition of signal &amp;quot;done&amp;quot; in vivado tool but this signal cant be seen in simvision throughout the simualtion. when i try to set time as 145000 around in signal and try to move cursor forward arrow cursor it shows with red warning &amp;quot; to advance simulation to next edge of selected signal,you must enable the watching live data from simulator&amp;quot; .to address this i rightclik on selected signal and choose watch but nothing works.&lt;/p&gt;
&lt;p class="" data-start="554" data-end="866"&gt;in my testbench code&amp;nbsp;&amp;nbsp; i am terminating simul&lt;img style="max-height:480px;max-width:640px;" alt=" " src="https://community.cadence.com/resized-image/__size/1280x960/__key/communityserver-discussions-components-files/31/download_2D00_resizehood.com.png" /&gt;&lt;img style="max-height:480px;max-width:640px;" alt=" " src="https://community.cadence.com/resized-image/__size/1280x960/__key/communityserver-discussions-components-files/31/xilinx_5F00_vivado_5F00_done_5F00_transition.png" /&gt;ation at 145000ns ($finish) but with this timing window there is no any transition of my slected ignal (done) in simvision but with same timing delay (145000ns ($finish))&amp;nbsp; on xilinx vivado it shows very clear&amp;nbsp; transition.&lt;/p&gt;</description></item><item><title>regrading abnormal working of xcelium simulator during wavefrom simulation</title><link>https://community.cadence.com/thread/64622?ContentTypeID=0</link><pubDate>Thu, 24 Apr 2025 06:34:41 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:697b17a2-d15c-4e57-96b5-59fafd22491f</guid><dc:creator>RK202504233943</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/64622?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/logic-design/64622/regrading-abnormal-working-of-xcelium-simulator-during-wavefrom-simulation/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;hellow cadence support team,&lt;/p&gt;
&lt;p&gt;i&amp;nbsp; am facing an issue in xcelium simulator while simulating verilog code. when i try to run signal wavefrom it does nto working. it comes with pop op windows which says &amp;quot;&amp;quot; Recovery: Xcelium simulator Terminated Abnormally&amp;quot;&amp;quot;&lt;/p&gt;
&lt;p&gt;[ XM-SIM terminated unexpectedly] this happen when ever i click on run button then it shows pop op window with terminated simulation message.&lt;/p&gt;
&lt;p&gt;my linux version is : 8.9 (red hat)&lt;/p&gt;
&lt;p&gt;xcelium version : 22.03-s012&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:480px;max-width:640px;" alt=" " src="https://community.cadence.com/resized-image/__size/1280x960/__key/communityserver-discussions-components-files/31/WhatsApp-Image-2025_2D00_04_2D00_22-at-6.25.24-PM.jpeg" /&gt;&lt;/p&gt;
&lt;p&gt;it would be great help if you can address this issue and kindly resolves this problem.&lt;/p&gt;
&lt;p&gt;i need very fast so please please if you can provide please !!!&lt;/p&gt;</description></item><item><title>Using ChipWare (CW) Components in Quartus FPGA Builds?</title><link>https://community.cadence.com/thread/63170?ContentTypeID=0</link><pubDate>Fri, 31 Jan 2025 15:09:19 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:18fad2d5-2865-4382-aa3c-78a8ce5d9c9b</guid><dc:creator>SL202501311657</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/63170?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/logic-design/63170/using-chipware-cw-components-in-quartus-fpga-builds/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Is there a way to use encrypted ChipWare (CW) components in a Quartus FPGA build flow?&amp;nbsp;&lt;/p&gt;</description></item><item><title>which tools support Linting for early stages of Digital Design flow?</title><link>https://community.cadence.com/thread/62656?ContentTypeID=0</link><pubDate>Thu, 03 Oct 2024 19:08:53 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:0d978620-67d5-4411-b279-c9b9508babcc</guid><dc:creator>TR20240805746</dc:creator><slash:comments>4</slash:comments><comments>https://community.cadence.com/thread/62656?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/logic-design/62656/which-tools-support-linting-for-early-stages-of-digital-design-flow/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I am trying to understand the Linting process. I know that mainly JasperGold is the tool for this purpose. Though I think JasperGold is more suited for later stages of the design. As a RTL Design Engineer, I want to make sure that if another tool has the capability of doing Linting earlier in the flow. for example, does Xcelium, Genus or Confomal support linting. I have seen some contradicting information online regarding this topic, though I can&amp;#39;t find anything related to Linting on any of these tools.&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;</description></item><item><title>RE: which tools support Linting for early stages of Digital Design flow?</title><link>https://community.cadence.com/thread/1402038?ContentTypeID=1</link><pubDate>Mon, 02 Dec 2024 20:07:30 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:75af702b-1693-41d0-b50a-43a4c3feda53</guid><dc:creator>ckomar</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/1402038?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/logic-design/62656/which-tools-support-linting-for-early-stages-of-digital-design-flow/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;In general, I think any tool that parses RTL has some linting capability but&amp;nbsp;I cannot comment on the extent of Conformal&amp;#39;s capabilities.&amp;nbsp; I can only say that Jasper is Cadence&amp;#39;s comprehensive linting solution.&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: which tools support Linting for early stages of Digital Design flow?</title><link>https://community.cadence.com/thread/1402036?ContentTypeID=1</link><pubDate>Mon, 02 Dec 2024 18:23:40 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:1dd33bcb-ed38-4d21-a79a-dc62dbc94a7e</guid><dc:creator>TR20240805746</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/1402036?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/logic-design/62656/which-tools-support-linting-for-early-stages-of-digital-design-flow/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Thank you very much Ckomar. So we can say that Conformal doesn&amp;#39;t have any Linting features. Right?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: which tools support Linting for early stages of Digital Design flow?</title><link>https://community.cadence.com/thread/1402033?ContentTypeID=1</link><pubDate>Mon, 02 Dec 2024 14:27:02 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:d15f9013-7964-4065-b800-d304f7f6cc60</guid><dc:creator>ckomar</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/1402033?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/logic-design/62656/which-tools-support-linting-for-early-stages-of-digital-design-flow/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;JasperGold Superlint is absolutely geared for comprehensive early (or late) RTL linting. Its complementary auto formal checks can further help the designer uncover common issues not found by structural lint.&amp;nbsp; Please reach out to me using my userid&amp;nbsp;at cadence.com if you want to discuss further.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Asking for a software suggestion.</title><link>https://community.cadence.com/thread/1402031?ContentTypeID=1</link><pubDate>Mon, 02 Dec 2024 12:48:05 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:85646851-ea06-40dc-82f6-a6eb728ec1bd</guid><dc:creator>Jesswade</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/1402031?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/logic-design/62708/asking-for-a-software-suggestion/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;To get started, you&amp;#39;ll need to import your logic design into Cadence and then define the input parameters (like the different data you&amp;#39;ve exported from other software). Next, you can use tools like Cadence&amp;#39;s Design Compiler or Innovus to synthesize the design and analyze the delay, power dissipation, and area for different input conditions. You might also want to set up a design corner (variety of conditions) to evaluate the maximum, minimum, and average results. Don&amp;rsquo;t hesitate to check Cadence&amp;rsquo;s documentation for specific steps or reach out to a community forum for tips along the way!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Asking for a software suggestion.</title><link>https://community.cadence.com/thread/62708?ContentTypeID=0</link><pubDate>Tue, 15 Oct 2024 23:05:41 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:85782092-0ea1-40d1-8913-b7cf6294f25c</guid><dc:creator>SJ202410152653</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/62708?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/logic-design/62708/asking-for-a-software-suggestion/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi. I&amp;#39;m a very new learner on Cadence. I want to synthesis my logic design for the maximum, minimum and an average results of delay, power dissipation and area&amp;nbsp;under&amp;nbsp;varying multiple inputs&amp;nbsp;of different data. The different data will be exported from other software results. I&amp;#39;m lost on the steps/processes I should do.&lt;/p&gt;
&lt;p&gt;Could anyone suggest me on which software and/or function or scripts I should use to achieve these results?&lt;/p&gt;</description></item><item><title>RE: which tools support Linting for early stages of Digital Design flow?</title><link>https://community.cadence.com/thread/1401972?ContentTypeID=1</link><pubDate>Tue, 26 Nov 2024 09:15:07 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:e29962e3-5918-4379-8600-f065974c911d</guid><dc:creator>Jesswade</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/1401972?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/logic-design/62656/which-tools-support-linting-for-early-stages-of-digital-design-flow/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;For early-stage RTL linting, use SpyGlass (Synopsys) or Ascent Lint (Real Intent). These are dedicated tools for linting. Xcelium, Genus, and Conformal are not designed for comprehensive linting, though they may catch some basic issues during simulation or synthesis. Let me know if you need detailed setup guidance!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ask some functions that we don't know if it exists</title><link>https://community.cadence.com/thread/62612?ContentTypeID=0</link><pubDate>Wed, 25 Sep 2024 15:41:09 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:e51720b4-d877-422f-802f-273f3583b8f4</guid><dc:creator>RONZYRR</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/62612?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/logic-design/62612/ask-some-functions-that-we-don-t-know-if-it-exists/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;We have a big circuit having 12K gates totally and trying to show it in one page slide visually. But it is so hard for us to shrink it down from gate-level to module-level. Do you have any function like these:&lt;/p&gt;
&lt;ul&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Toggle wires on and off&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;&amp;ldquo;Right click&amp;rdquo; elements and group them into black boxes&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Quickly left or right align elements to clean up pictures&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Unmapped points</title><link>https://community.cadence.com/thread/62590?ContentTypeID=0</link><pubDate>Mon, 23 Sep 2024 06:07:07 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:469bb560-478a-462f-be70-b6925d1989f9</guid><dc:creator>GN20240831236</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/62590?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/logic-design/62590/unmapped-points/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi ,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;I am using conformal v23.2 for LEC checking b/w netlist vs Netlist. I am getting 8 not mapped points(z) in revised but when i check in mapping manager it showing 0 Not mapped points and showing this 8 not mapped points in extra unmapped section z(f) snps_scan_out_6 .How to resolve this issue Pls help&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:480px;max-width:640px;" src="https://community.cadence.com/resized-image/__size/1280x960/__key/communityserver-discussions-components-files/31/pastedimage1730699818152v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;regards,&lt;/p&gt;</description></item><item><title>Want to use Transmission Gate in my design?</title><link>https://community.cadence.com/thread/59615?ContentTypeID=0</link><pubDate>Fri, 21 Jun 2024 16:19:26 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:dfb3bf18-28f5-4de4-9fd3-9c8a38f5e524</guid><dc:creator>Rohit B</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/59615?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/logic-design/59615/want-to-use-transmission-gate-in-my-design/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I want to use a transmission gate in my design, but it is not available as a standard cell for Genus RTL synthesis. How can I perform an analysis of area, power, and critical path delay that includes the transmission gate alongside standard cells?&lt;/p&gt;
&lt;p&gt;Could you provide guidance or a methodology for integrating custom cells, like the transmission gate, into the synthesis flow for accurate analysis?&lt;/p&gt;</description></item><item><title>removing cdn_loop_breakers from netlist</title><link>https://community.cadence.com/thread/59554?ContentTypeID=0</link><pubDate>Wed, 12 Jun 2024 04:49:49 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:68146f02-6f00-4d50-8f3f-dfc61284349f</guid><dc:creator>Ganga Vinod</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/59554?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/logic-design/59554/removing-cdn_loop_breakers-from-netlist/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I was trying to remove the cdn_loop_breaker cells from the netlist.&amp;nbsp;&lt;br /&gt;When I tried the below 2 things, it removing the cdn_loop_breaker cells but while connecting the cdn_loop_breaker cell input to its proper connection, its somehow misleading the connections&lt;br /&gt;&lt;br /&gt;Things i tried:&lt;br /&gt;1.&amp;nbsp;&amp;nbsp;remove_cdn_loop_breaker -instances *cdn_loop_breaker*&lt;br /&gt;then i just ran&amp;nbsp;remove_cdn_loop_breaker&amp;nbsp; comand without the -instances switch&lt;br /&gt;2.&amp;nbsp;remove_cdn_loop_breaker&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;both of the above things are not providing the proper connections after removing the loop_breaker_cells&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description></item><item><title>Conformal CEC checking</title><link>https://community.cadence.com/thread/59112?ContentTypeID=0</link><pubDate>Tue, 19 Mar 2024 21:04:55 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:d808939b-3741-4fde-b82e-1467c312ec44</guid><dc:creator>Sameerpy</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/59112?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/logic-design/59112/conformal-cec-checking/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Below is showing my Master.v&lt;/p&gt;
&lt;p&gt;********************************************************************************************************************************************************************************************************************&lt;/p&gt;
&lt;p&gt;///////ALU&lt;br /&gt;module ALU (&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input [31:0] A,B, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input[3:0] alu_control,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output reg [31:0] alu_result,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output reg zero_flag&lt;br /&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; always @(*)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Operating based on control input&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case(alu_control)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;#39;b0001: alu_result = A+B;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;#39;b0010: alu_result = A-B;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;#39;b0011: alu_result = A*B;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;#39;b0100: alu_result = A|B;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;#39;b0101: alu_result = A&amp;amp;B;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;#39;b0110: alu_result = A^B;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;#39;b0111: alu_result = ~B;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;#39;b1000: alu_result = A&amp;lt;&amp;lt;B;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;#39;b1001: alu_result = A&amp;gt;&amp;gt;B;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;#39;b1010: begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(A&amp;lt;B)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alu_result = 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alu_result = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; default: alu_result = A+B;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; endcase&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Setting Zero_flag if ALU_result is zero&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (alu_result)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zero_flag = 1&amp;#39;b1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zero_flag = 1&amp;#39;b0;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;endmodule&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/////CONTROL UNIT&lt;br /&gt;/* &lt;br /&gt;Control unit controls takes opcode, funct7, funct3 of the instruction code to determine&lt;br /&gt;and control regwrite in IFU, alu control in ALU to execute proper instruction&lt;br /&gt;*/&lt;br /&gt;/* &lt;br /&gt;Control unit controls takes opcode, funct7, funct3 of the instruction code to determine&lt;br /&gt;and control regwrite in IFU, alu control in ALU to execute proper instruction&lt;br /&gt;*/&lt;br /&gt;module CONTROL(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input [4:0] opcode,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output reg [3:0] alu_control,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output reg regwrite_control,memread_control,memwrite_control&lt;br /&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; always @(opcode)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case(opcode)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;#39;b00001: begin alu_control=4&amp;#39;b0001;&amp;nbsp; //add&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; regwrite_control=1; memread_control=0; memwrite_control=0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;#39;b00010: begin alu_control=4&amp;#39;b0010;&amp;nbsp; ///sub&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; regwrite_control=1; memread_control=0; memwrite_control=0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;#39;b00011: begin alu_control=4&amp;#39;b0011;&amp;nbsp; //mul&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; regwrite_control=0; memread_control=0; memwrite_control=1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;#39;b00100: begin alu_control=4&amp;#39;b0100;&amp;nbsp; ///OR&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; regwrite_control=0; memread_control=0; memwrite_control=1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;#39;b00101: begin alu_control=4&amp;#39;b0101;&amp;nbsp; ///AND&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; regwrite_control=1; memread_control=0; memwrite_control=0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;#39;b00110: begin alu_control=4&amp;#39;b0110;&amp;nbsp; ///XOR&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; regwrite_control=0; memread_control=0; memwrite_control=1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;#39;b00111: begin alu_control=4&amp;#39;b0111;&amp;nbsp; ///NOT&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; regwrite_control=0; memread_control=0; memwrite_control=1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;#39;b01000: begin alu_control=4&amp;#39;b1000;&amp;nbsp; //SL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; regwrite_control=1; memread_control=1; memwrite_control=0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;#39;b11001: begin alu_control=4&amp;#39;b1001;&amp;nbsp; //SR&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; regwrite_control=1; memread_control=1; memwrite_control=0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;#39;b01010: begin alu_control=4&amp;#39;b1010;&amp;nbsp; //COMPARE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; regwrite_control=1; memread_control=1; memwrite_control=0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //5&amp;#39;b11010: begin ALU_control=4&amp;#39;b0000;&amp;nbsp; //SW&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //regwrite_control=1; memread_control=0; memwrite_control=0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //5&amp;#39;b01010: begin ALU_control=4&amp;#39;bxxxx;&amp;nbsp; //LW&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //regwrite_control=0; memread_control=0; memwrite_control=1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; default : begin alu_control = 4&amp;#39;b0001; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; regwrite_control=1; memread_control=0; memwrite_control=0; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; endcase &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;endmodule&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//////DATA MEMORY&lt;br /&gt;module Data_Mem(&lt;br /&gt;input clock, rd_mem_enable, wr_mem_enable,&lt;br /&gt;input [11:0] address,&lt;br /&gt;input [31:0] datawrite_to_mem,&lt;br /&gt;output reg [31:0] dataread_from_mem );&lt;br /&gt;&lt;br /&gt;reg [31:0] Data_Memory[8:0];&lt;br /&gt;&lt;br /&gt;initial begin&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Data_Memory[0] = 32&amp;#39;hFFFFFFFF;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Data_Memory[1] = 32&amp;#39;h00000001;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Data_Memory[2] = 32&amp;#39;h00000005;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Data_Memory[3] = 32&amp;#39;h00000003;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Data_Memory[4] = 32&amp;#39;h00000004;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Data_Memory[5] = 32&amp;#39;h00000000;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Data_Memory[6] = 32&amp;#39;hFFFFFFFF;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Data_Memory[7] = 32&amp;#39;h00000000;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Data_Memory[8] = 32&amp;#39;h00000008;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Data_Memory[9] = 32&amp;#39;h00000009;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Data_Memory[10] = 32&amp;#39;h0000000A;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Data_Memory[11] = 32&amp;#39;h0000000B;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Data_Memory[12] = 32&amp;#39;h0000000C;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Data_Memory[13] = 32&amp;#39;h0000000D;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Data_Memory[14] = 32&amp;#39;h0000000E;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Data_Memory[15] = 32&amp;#39;h0000000F;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Data_Memory[16] = 32&amp;#39;h00000010;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Data_Memory[17] = 32&amp;#39;h00000011;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Data_Memory[18] = 32&amp;#39;h00000012;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Data_Memory[19] = 32&amp;#39;h00000013;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Data_Memory[20] = 32&amp;#39;h00000014;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Data_Memory[21] = 32&amp;#39;h00000015;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Data_Memory[22] = 32&amp;#39;h00000016;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Data_Memory[23] = 32&amp;#39;h00000017;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Data_Memory[24] = 32&amp;#39;h00000018;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Data_Memory[25] = 32&amp;#39;h00000019;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Data_Memory[26] = 32&amp;#39;h0000001A;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Data_Memory[27] = 32&amp;#39;h0000001B;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Data_Memory[28] = 32&amp;#39;h0000001C;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Data_Memory[29] = 32&amp;#39;h0000001D;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Data_Memory[30] = 32&amp;#39;h0000001E;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Data_Memory[31] = 32&amp;#39;h0000001F;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; always@(posedge clock) begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(wr_mem_enable) begin&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Data_Memory[address] &amp;lt;= datawrite_to_mem;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if(rd_mem_enable) begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;dataread_from_mem &amp;lt;= Data_Memory[address];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;dataread_from_mem &amp;lt;= 32&amp;#39;h00000000;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;endmodule&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/////INST MEM&lt;br /&gt;/* &lt;br /&gt;&lt;br /&gt;*/&lt;br /&gt;module INST_MEM(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input [31:0] PC,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input reset,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output [31:0] Instruction_Code&lt;br /&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg [7:0] Memory [43:0]; // Byte addressable memory with 32 locations&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; assign Instruction_Code = {Memory[PC+3],Memory[PC+2],Memory[PC+1],Memory[PC]};&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; initial begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Setting 32-bit instruction: add t1, s0,s1 =&amp;gt; 0x00940333 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[3] = 8&amp;#39;b0000_0000;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[2] = 8&amp;#39;b0000_0001;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[1] = 8&amp;#39;b0111_1100;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[0] = 8&amp;#39;b0000_0001;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Setting 32-bit instruction: sub t2, s2, s3 =&amp;gt; 0x413903b3&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[7] = 8&amp;#39;b0000_0000;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[6] = 8&amp;#39;b0000_0110;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[5] = 8&amp;#39;b1000_1111;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[4] = 8&amp;#39;b1110_0010;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Setting 32-bit instruction: mul t0, s4, s5 =&amp;gt; 0x035a02b3&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[11] = 8&amp;#39;b0000_0000;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[10] = 8&amp;#39;b0000_0101;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[9] = 8&amp;#39;b0111_1100;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[8] = 8&amp;#39;b0000_0011;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Setting 32-bit instruction: or t3, s6, s7 =&amp;gt; 0x017b4e33&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[15] = 8&amp;#39;b1111_1111;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[14] = 8&amp;#39;b1111_0100;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[13] = 8&amp;#39;b1010_0000;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[12] = 8&amp;#39;b1010_0100;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Setting 32-bit instruction: and &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[19] = 8&amp;#39;b0000_0000;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[18] = 8&amp;#39;b0010_1001;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[17] = 8&amp;#39;b0001_1101;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[16] = 8&amp;#39;b0010_0101;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Setting 32-bit instruction: xor &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[23] = 8&amp;#39;b0000_0000;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[22] = 8&amp;#39;b0001_1000;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[21] = 8&amp;#39;b0000_1101;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[20] = 8&amp;#39;b0110_0110;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Setting 32-bit instruction: not &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[27] = 8&amp;#39;b0000_0000;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[26] = 8&amp;#39;b0010_1001;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[25] = 8&amp;#39;b0011_1101;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[24] = 8&amp;#39;b1100_0111;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Setting 32-bit instruction: shift left &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[31] = 8&amp;#39;b0000_0000;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[30] = 8&amp;#39;b0101_0111;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[29] = 8&amp;#39;b1100_0110;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[28] = 8&amp;#39;b0000_1000;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Setting 32-bit instruction: shift right &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[35] = 8&amp;#39;b0000_0000;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[34] = 8&amp;#39;b0110_1010;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[33] = 8&amp;#39;b1101_0010;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[32] = 8&amp;#39;b0111_1001;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Setting 32-bit instruction: Campare&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[39] = 8&amp;#39;b0000_0000;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[38] = 8&amp;#39;b0111_1010;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[37] = 8&amp;#39;b1101_0010;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[36] = 8&amp;#39;b0110_1010;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Setting 32-bit instruction:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[43] = 8&amp;#39;b0000_0000;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[42] = 8&amp;#39;b0111_0111;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[41] = 8&amp;#39;b1101_0010;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory[40] = 8&amp;#39;b0111_0010;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt;endmodule&lt;br /&gt;&lt;br /&gt;//IFU&lt;br /&gt;/*&lt;br /&gt;The instruction fetch unit has clock and reset pins as input and 32-bit instruction code as output.&lt;br /&gt;Internally the block has Instruction Memory, Program Counter(P.C) and an adder to increment counter by 4, &lt;br /&gt;on every positive clock edge.&lt;br /&gt;*/&lt;br /&gt;module IFU(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input clock,reset,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output [31:0] Instruction_Code&lt;br /&gt;);&lt;br /&gt;reg [31:0] PC = 32&amp;#39;b0;&amp;nbsp; // 32-bit program counter is initialized to zero&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; always @(posedge clock, posedge reset)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(reset == 1)&amp;nbsp; //If reset is one, clear the program counter&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PC &amp;lt;= 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PC &amp;lt;= PC+4;&amp;nbsp;&amp;nbsp; // Increment program counter on positive clock edge&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Initializing the instruction memory block&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INST_MEM instr_mem(.PC(PC),.reset(reset),.Instruction_Code(Instruction_Code));&lt;br /&gt;&lt;br /&gt;endmodule&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;///MUX&lt;br /&gt;&lt;br /&gt;module Mux_2X1 (&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input mem_rd_select, // rd_mem_enable&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input wire [31:0] dataread_from_mem, regdata2,&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output reg [31:0] mux_out&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;always @(mem_rd_select or dataread_from_mem or regdata2) begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (mem_rd_select == 1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mux_out &amp;lt;= dataread_from_mem ;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mux_out &amp;lt;= regdata2;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;endmodule&lt;br /&gt;&lt;br /&gt;//DFlipFlop&lt;br /&gt;module DFlipFlop(D,clock,Q);&lt;br /&gt;input D; // Data input &lt;br /&gt;input clock; // clock input &lt;br /&gt;output reg Q; // output Q &lt;br /&gt;always @(posedge clock) &lt;br /&gt;begin&lt;br /&gt;&amp;nbsp;Q &amp;lt;= D; &lt;br /&gt;end &lt;br /&gt;endmodule &lt;br /&gt;&lt;br /&gt;///DATA path&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;module DATAPATH(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input [4:0]Read_reg_add1,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input [4:0]Read_reg_add2,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input [4:0]Reg_write_add,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input [3:0]Alu_control,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input [11:0]Address,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input Wr_reg_enable,Wr_mem_enable,Rd_mem_enable,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input clock,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input reset,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output OUTPUT&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Declaring internal wires that carry data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; wire zero_flag;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; wire [31:0]Dataread_from_mem;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; wire [31:0]read_data1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; wire [31:0]read_data2;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; wire [31:0]Mux_out;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; wire [31:0]Alu_result;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //wire [31:0]datawrite_to_reg;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Instantiating the register file&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; REG_FILE reg_file_module(.reg_read_add1(Read_reg_add1),.reg_read_add2(Read_reg_add2),.reg_write_add(Reg_write_add),.datawrite_to_reg(Alu_result),.read_data1(read_data1),.read_data2(read_data2),.wr_reg_enable(Wr_reg_enable),.clock(clock),.reset(reset));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Instanting ALU&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ALU alu_module(.A(read_data1), .B(Mux_out), .alu_control(Alu_control), .alu_result(Alu_result), .zero_flag(zero_flag));&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Mux&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mux_2X1 mux(.mem_rd_select(Rd_mem_enable),.dataread_from_mem(Dataread_from_mem),.regdata2(read_data2),.mux_out(Mux_out));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Data Memory&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Data_Mem DM(.clock(clock),.rd_mem_enable(Rd_mem_enable),.wr_mem_enable(Wr_mem_enable),.address(Address),.datawrite_to_mem(Alu_result),.dataread_from_mem(Dataread_from_mem));&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Dflipflop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DFlipFlop DF (.D(zero_flag), .Q(OUTPUT),.clock(clock));&lt;br /&gt;endmodule&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;A register file can read two registers and write in to one register. &lt;br /&gt;The RISC V register file contains total of 32 registers each of size 32-bit. &lt;br /&gt;Hence 5-bits are used to specify the register numbers that are to be read or written. &lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;Register Read: Register file always outputs the contents of the register corresponding to read register numbers specified. &lt;br /&gt;Reading a register is not dependent on any other signals.&lt;br /&gt;&lt;br /&gt;Register Write: Register writes are controlled by a control signal RegWrite. &amp;nbsp;&lt;br /&gt;Additionally the register file has a clock signal. &lt;br /&gt;The write should happen if RegWrite signal is made 1 and if there is positive edge of clock. &lt;br /&gt;*/&lt;br /&gt;module REG_FILE(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input [4:0] reg_read_add1,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input [4:0] reg_read_add2,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input [4:0] reg_write_add,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input [31:0] datawrite_to_reg,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output [31:0] read_data1,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output [31:0] read_data2,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input wr_reg_enable,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input clock,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input reset&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg [31:0] reg_memory [31:0]; // 32 memory locations each 32 bits wide&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; initial begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg_memory[0] = 32&amp;#39;h00000000;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg_memory[1] = 32&amp;#39;hFFFFFFFF;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg_memory[2] = 32&amp;#39;h00000002;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg_memory[3] = 32&amp;#39;hFFFFFFFF;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg_memory[4] = 32&amp;#39;h00000004;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg_memory[5] = 32&amp;#39;h01010101;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg_memory[6] = 32&amp;#39;h00000006;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg_memory[7] = 32&amp;#39;h00000000;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg_memory[8] = 32&amp;#39;h10101010;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg_memory[9] = 32&amp;#39;h00000009;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg_memory[10] = 32&amp;#39;h0000000A;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg_memory[11] = 32&amp;#39;h0000000B;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg_memory[12] = 32&amp;#39;h0000000C;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg_memory[13] = 32&amp;#39;h0000000D;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg_memory[14] = 32&amp;#39;h0000000E;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg_memory[15] = 32&amp;#39;h0000000F;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg_memory[16] = 32&amp;#39;h00000010;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg_memory[17] = 32&amp;#39;h00000011;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg_memory[18] = 32&amp;#39;h00000012;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg_memory[19] = 32&amp;#39;h00000013;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg_memory[20] = 32&amp;#39;h00000014;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg_memory[21] = 32&amp;#39;h00000015;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //reg_memory[22] = 32&amp;#39;h00000016;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //reg_memory[23] = 32&amp;#39;h00000017;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //reg_memory[24] = 32&amp;#39;h00000018;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //reg_memory[25] = 32&amp;#39;h00000019;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //reg_memory[26] = 32&amp;#39;h0000001A;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //reg_memory[27] = 32&amp;#39;h0000001B;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //reg_memory[28] = 32&amp;#39;h0000001C;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //reg_memory[29] = 32&amp;#39;h0000001D;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //reg_memory[30] = 32&amp;#39;h0000001E;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg_memory[31] = 32&amp;#39;hFFFFFFFF;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // The register file will always output the vaules corresponding to read register numbers &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // It is independent of any other signal&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; assign read_data1 = reg_memory[reg_read_add1];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; assign read_data2 = reg_memory[reg_read_add2];&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // If clock edge is positive and regwrite is 1, we write data to specified register&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; always @(posedge clock)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (wr_reg_enable) begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg_memory[reg_write_add] = datawrite_to_reg;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;else&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg_memory[reg_write_add] = 32&amp;#39;h00000000;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;endmodule&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/////PROCESSOR&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;module PROCESSOR( &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input clock, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input reset,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output Output&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; wire [31:0] instruction_Code;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; wire [3:0] ALu_control;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; wire WR_reg_enable;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; wire WR_mem_enable;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; wire RD_mem_enable;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFU IFU_module(.clock(clock), .reset(reset), .Instruction_Code(instruction_Code));&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CONTROL control_module(.opcode(instruction_Code[4:0]),.alu_control(ALu_control),.regwrite_control(WR_reg_enable),.memread_control(RD_mem_enable),.memwrite_control(WR_mem_enable));&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DATAPATH datapath_module(.Wr_mem_enable(WR_mem_enable),.Rd_mem_enable(RD_mem_enable),.Read_reg_add1(instruction_Code[9:5]),.Read_reg_add2(instruction_Code[14:10]),.Reg_write_add(instruction_Code[19:15]),.Address(instruction_Code[31:20]),.Alu_control(ALu_control),.Wr_reg_enable(WR_reg_enable), .clock(clock), .reset(reset), .OUTPUT(Output));&lt;br /&gt;&lt;br /&gt;endmodule&lt;br /&gt;&lt;br /&gt;**********************************************************************************************************************************************************&lt;br /&gt;&lt;br /&gt;Below is my Synthesis.tcl file for genus synthesis&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;********************&lt;/p&gt;
&lt;p&gt;set_attribute lib_search_path &amp;quot;/home/sameer23185/Desktop/VDF_PROJECT/lib&amp;quot;&lt;br /&gt;set_attribute hdl_search_path &amp;quot;/home/sameer23185/Desktop/VDF_PROJECT&amp;quot;&lt;br /&gt;set_attribute library &amp;quot;/home/sameer23185/Desktop/VDF_PROJECT/lib/90/fast.lib&amp;quot;&lt;br /&gt;read_hdl Master.v&lt;br /&gt;elaborate&lt;br /&gt;read_sdc Min_area.sdc&lt;br /&gt;set_attribute hdl_preserve_unused_register true&lt;br /&gt;set_attribute delete_unloaded_seqs false&lt;br /&gt;set_attribute optimize_constant_0_flops false&lt;br /&gt;set_attribute optimize_constant_1_flops false&lt;br /&gt;set_attribute optimize_constant_latches false&lt;br /&gt;set_attribute optimize_constant_feedback_seqs false&lt;br /&gt;#set_attribute prune_unsued_logic false&lt;br /&gt;synthesize -to_mapped -effort medium&lt;br /&gt;write_hdl &amp;gt; report/HDL_min_Netlist.v&lt;br /&gt;write_sdc &amp;gt; report/constraints.sdc &lt;br /&gt;write_script &amp;gt; report/synthesis.g&lt;br /&gt;report_timing &amp;gt; report/synthesis_timing_report.rep&lt;br /&gt;report_power &amp;gt; report/synthesis_power_report.rep&lt;br /&gt;report_gates &amp;gt; report/synthesis_cell_report.rep&lt;br /&gt;report_area &amp;gt; report/synthesis_area_report.rep&lt;br /&gt;gui_show&lt;/p&gt;
&lt;p&gt;**********************************************&lt;br /&gt;&lt;br /&gt;WHEN I COMPARING MY GOLDEN.V WITH HDL_min_Netlist.v&amp;nbsp; during &amp;nbsp; conformal , I got&amp;nbsp; these&amp;nbsp; non-equivalent &amp;nbsp; point&amp;nbsp;&amp;nbsp; for&amp;nbsp;&amp;nbsp; every reg memory and for every data memory. I don&amp;#39;t know what to do with these non-equivalent point. I&amp;#39;ve been stuck here for the past four days. Please help me in this and how can I remove this non- equivalent point , since I am new to this I really don&amp;#39;t know what to do.&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:480px;max-width:640px;" src="https://community.cadence.com/resized-image/__size/1280x960/__key/communityserver-discussions-components-files/31/WhatsApp-Image-2024_2D00_03_2D00_20-at-1.17.02-AM.jpeg" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:480px;max-width:640px;" src="https://community.cadence.com/resized-image/__size/1280x960/__key/communityserver-discussions-components-files/31/WhatsApp-Image-2024_2D00_03_2D00_20-at-1.17.27-AM.jpeg" alt=" " /&gt;&lt;/p&gt;</description></item><item><title>RE: Conformal CEC checking</title><link>https://community.cadence.com/thread/1398094?ContentTypeID=1</link><pubDate>Tue, 30 Apr 2024 09:05:46 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:04a4a2b0-23ee-4a07-9cf4-858d49d056ff</guid><dc:creator>Fotios Nt</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/1398094?ContentTypeID=1</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/f/logic-design/59112/conformal-cec-checking/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;br /&gt;There&amp;#39;s a whole lot of issues that need fixing in your flow. You are for one using a very old synthesis approach that&amp;#39;s not maintained for almost 10 years now (the synth -to_mapped command). Instead, if you just want a new-ish but very barebones synthesis script load up genus and run write_template command, and then fill in the blanks (libraries sdc etc). Flowtool is a much better approach, but it has a steeper learning curve&lt;br /&gt;&lt;br /&gt;Then, you need to run LEC in 2 steps:&lt;br /&gt;1) RTL to fv_map (fv_map is an intermediate netlist generated from syn_map, which is the upgraded version of synthesize -to_mapped) . This LEC dofile will get automatically generated for your when you run syn_map, and by default will be found in fv/&amp;lt;top level name&amp;gt;/rtl_to_fv_map.do&lt;br /&gt;2) fv_map to your final synthesis netlist. Use write_do_lec -golden fv_map (this is a reserved keyword, use it as is) -revised &amp;lt;your revised netlist here&amp;gt; to generate that dofile&lt;br /&gt;&lt;br /&gt;Conformal non-equivalences cannot be debugged via a simple screenshot unfortunately. You need to go to the mapping manager, open the diagnosis manager, and look at the GUI for clues. There is a conformal RAK as well that contains a lab that should get you familiar with that flow&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>