{"id":2100,"date":"2016-09-05T15:54:44","date_gmt":"2016-09-05T12:54:44","guid":{"rendered":"http:\/\/priit.ati.ttu.ee\/?page_id=2100"},"modified":"2016-09-05T15:56:31","modified_gmt":"2016-09-05T12:56:31","slug":"design-vision","status":"publish","type":"page","link":"http:\/\/priit.ati.ttu.ee\/?page_id=2100","title":{"rendered":"Design Vision"},"content":{"rendered":"<p style=\"text-align: right;\">\n    <!-- WP Last Modified by Dogan Ucar (https:\/\/www.dogan-ucar.de). -->\n    <!-- This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;-->\n    <!-- 2016 - 2026 Dogan Ucar. -->Last modified: 2016-09-05 15:56:31<\/p>\n<p><!--Modelsim Guide--><\/p>\n<h3>Before we start (only on the first time use of the tool)<\/h3>\n<p>Create some directory for the work with Synopsys (for example hdl) and go into this<br \/>\ndirectory:<\/p>\n<ul>\n<li><b>mkdir hdl<\/b><\/li>\n<li><b>cd hdl<\/b><\/li>\n<\/ul>\n<p>Copy into this directory the Synopsys setup file for synthesis (be sure, that you can see the M folder):<\/p>\n<ul>\n<li><b>cp M\/Peeter.Ellervee\/.synopsys_dc.setup .<\/b><\/li>\n<\/ul>\n<p>Inside hdl directory create a subdirectory <b>WORK.syn<\/b>. Synopsys creates a lot<br \/>\nof files during work, which are not needed in the hdl directory.<\/p>\n<ul>\n<li><b>mkdir WORK.syn<\/b><\/li>\n<\/ul>\n<p>Invoke Synopsys always from the directory where the Synopsys setup file is (in this case<br \/>\nit is in the hdl directory).<\/p>\n<h3>Invoking the Synopsys environment<\/h3>\n<p>Change the directory to the directory with your synopsys setup file:<\/p>\n<ul>\n<li><b>cd hdl<\/b><\/li>\n<\/ul>\n<p>Activate Synopsys 2010 (the 3rd selection):<\/p>\n<ul>\n<li><b>cad<\/b><\/li>\n<li>3<\/li>\n<\/ul>\n<p>Invoke Synopsys with the following command:<\/p>\n<ul>\n<li><b>design_vision &amp;<\/b><\/li>\n<\/ul>\n<p>The &amp; in the end of the command shows that the program is run in the backround and the<br \/>\npromt is returned immediately. It means that to run another process you don&#8217;t have<br \/>\nto open a new command line window. You can use <b>&amp;<\/b> behind every process command.<\/p>\n<p>On Figure 1 is the Synopsys main window.<\/p>\n<p><img title=\"Design Vision\" src=\"Design_vision\/1main.PNG\" alt=\"Design Vision\" \/><\/p>\n<p>Figure 1. Synopsys Design Vision main window.<\/p>\n<p>Synopsys converts the instructions in the dialog box into a sequence of &#8220;shell&#8221;<br \/>\ncommands. You can see the command in the Command Window (by default it is<br \/>\nopened in the bottom of the program window). To open a Command Window:<\/p>\n<ul>\n<li>Select <b>View-&gt;Toolbars-&gt;Console<\/b><\/li>\n<\/ul>\n<h3>Basic steps for synthesize<\/h3>\n<ul>\n<li>Select a target technology for synthesis (this is written in the setup file, usually default is okay).<\/li>\n<li>Read the HDL design.<\/li>\n<li>Synthesize the design (optimizing the logic and mapping to the target technology).<\/li>\n<li>Writing out the synthesized netlist in a format, which can be used by gate-level<br \/>\nsimulation and\/or FPGA layout tools.<\/li>\n<\/ul>\n<h3>Reading the input design<\/h3>\n<p>Execute the following steps to read in your design:<\/p>\n<ul>\n<li>Select <b>File-&gt;Analyze<\/b><\/li>\n<li>In the file browser select the file you wish to synthesize. For example up_down_counter_orig.vhd.<br \/>\nAll the files must be analyzed in depending sequence (the top of the design hierarchy is the last one).<\/li>\n<li>Choose the correct format of the file you want to synthesize and press <b>OK<\/b>.<\/li>\n<\/ul>\n<h3>If the reading caused an error!!!<\/h3>\n<p>There&#8217;s a possibility that when reading the file an error occurs and Design Vision program closes itself. In<br \/>\nthis case do the following.<\/p>\n<ul>\n<li>Open Design Vision in the directory where the design files are.<\/li>\n<li>In the Design Vision command line write <b>analyze -format vhdl <i>filename<\/i>.vhd<\/b>, where filename.vhd is the designs filename.<\/li>\n<li>If everything went smoothly continues with elaborate step (you can use the <b>File-&gt;Elaborate<\/b> from now on).<\/li>\n<\/ul>\n<p>The Analyze Designs window is on the Figure 2.<\/p>\n<p><img title=\"Design Vision\" src=\"Design_vision\/2analyze.PNG\" alt=\"Design Vision\" \/><\/p>\n<p>Figure 2. Analyze Designs window.<\/p>\n<ul>\n<li>Afterwards you need to join all your modules.\n<ul>\n<li>Select <b>File-&gt;Elaborate<\/b><\/li>\n<\/ul>\n<\/li>\n<li>From the library select either <b>DEFAULT<\/b> or <b>WORK<\/b>. You should select the top<br \/>\nmodule of the hierarchy. For example UP_DOWN_COUNTER(RTL).<\/li>\n<li>You need to specify the parameters of your design. If you have generics in your entity<br \/>\ndescription. For example <b>bitwidth = 4<\/b><\/li>\n<li>Press <b>OK<\/b>. The Elaborate Designs window is on Figure 3.<\/li>\n<\/ul>\n<p><img title=\"Design Vision\" src=\"Design_vision\/3elaborate.PNG\" alt=\"Design Vision\" \/><\/p>\n<p>Figure 3. Elaborate Designs window.<\/p>\n<h3>Navigation in the hierarchy<\/h3>\n<ul>\n<li>Click on the icon <b>Create Symbol View<\/b> and you&#8217;ll see schematic of your design.<br \/>\nThe same action can be done through <b>Schematic-&gt;New Symbol View<\/b>.<\/li>\n<li>Click on the <b>Create Design Schematic<\/b> to see the netlist.<\/li>\n<\/ul>\n<p><img title=\"Design Vision\" src=\"Design_vision\/4symbolview.PNG\" alt=\"Design Vision\" \/><\/p>\n<p>Figure 4. Symbol view.<\/p>\n<h3>Synthesizing the design<\/h3>\n<h4>Clock signal binding<\/h4>\n<ul>\n<li>Bind the clock signal with certain frequency. <b>Use the left click to select<br \/>\nthe port corresponding to the clock signal (on the schematic view of the design).<\/b><\/li>\n<li>Select <b>Attribute-&gt;Specify Clock<\/b>.<\/li>\n<li>Write the clock signal name and specify the period of the clock signal. For example 20 ns.<\/li>\n<li>Also specify the time of rising and falling edges of the signal. For example 0 ns and 10 ns.<\/li>\n<li>Click <b>OK<\/b>.<\/li>\n<\/ul>\n<p>On the Figure 5 the Specify Clock signal window is shown.<\/p>\n<p><img title=\"Design Vision\" src=\"Design_vision\/5clock.PNG\" alt=\"Design Vision\" \/><\/p>\n<p>Figure 5. Specify Clock window.<\/p>\n<h4>Compiling the design<\/h4>\n<ul>\n<li><b>Design-&gt;Compile Design<\/b>.<\/li>\n<li>Select <b>Map Effort-&gt;Medium<\/b>.<\/li>\n<li>Press <b>OK<\/b>.<\/li>\n<\/ul>\n<p>On the Figure 6 is the Compile window view.<\/p>\n<p><img title=\"Design Vision\" src=\"Design_vision\/6compile.PNG\" alt=\"Design Vision\" \/><\/p>\n<p>Figure 6. Compile window.<\/p>\n<h4>Netlist view<\/h4>\n<p>Now look at the netlist view.<\/p>\n<h4>Generating reports<\/h4>\n<p>In order to see the results of the analysis select <b>Design<\/b>. In the part of the Report select <b>Report Area&#8230;<\/b>.<br \/>\nFor timing analysis, select <b>Timing-&gt;Report Timing Path&#8230;<\/b>. You can also make a combined report with the help<br \/>\nof a command <b>report_qor<\/b> (Figure 7).<\/p>\n<p><img title=\"Design Vision\" src=\"Design_vision\/7report.PNG\" alt=\"Design Vision\" \/><\/p>\n<p>Figure 7. Report.<\/p>\n<p>Finally analize the results. To exit the tool go <b>File-&gt;Exit<\/b>.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Before we start (only on the first time use of the tool) Create some directory for the work with Synopsys (for example hdl) and go into this directory: mkdir hdl cd hdl Copy into this directory the Synopsys setup file for synthesis (be sure, that you can see the M folder): cp M\/Peeter.Ellervee\/.synopsys_dc.setup . Inside [&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1269,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"http:\/\/priit.ati.ttu.ee\/index.php?rest_route=\/wp\/v2\/pages\/2100"}],"collection":[{"href":"http:\/\/priit.ati.ttu.ee\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/priit.ati.ttu.ee\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/priit.ati.ttu.ee\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/priit.ati.ttu.ee\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2100"}],"version-history":[{"count":4,"href":"http:\/\/priit.ati.ttu.ee\/index.php?rest_route=\/wp\/v2\/pages\/2100\/revisions"}],"predecessor-version":[{"id":2106,"href":"http:\/\/priit.ati.ttu.ee\/index.php?rest_route=\/wp\/v2\/pages\/2100\/revisions\/2106"}],"up":[{"embeddable":true,"href":"http:\/\/priit.ati.ttu.ee\/index.php?rest_route=\/wp\/v2\/pages\/1269"}],"wp:attachment":[{"href":"http:\/\/priit.ati.ttu.ee\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}