您的位置:技术中心首页 > 电路综合 >> 使用synopsys的基本步骤

使用synopsys的基本步骤

作者:未知   时间:2007-10-11 23:00:28  来自:网上转载  浏览次数:0  文字大小:【】【】【

(以.cshrc 及用户根目录下的.synopsys_vss.setup .synopsys_dc.setup 已经配置为前提)
1.        创建工作目录;
2.        编写vhdl源程序;
3.        编写.synopsys_vss.setup 和.synopsys_dc.setup文件;
4.        编译vhdl源程序;
5.        运行vhdldbx 仿真器;
6.        运行synopsys的综合器;
7.        完成综合后的门级仿真;

以一个一位加法器为例,进行具体说明(用户界面为CDE):
1)        创建adder 目录:
可以在资源管理器中完成,也可以在unix环境下完成:mkdir adder;
2)        在adder目录下创建work目录;
3)        编写.synopsys_vss.setup文件并存入adder目录;.synopsys_vss.setup的内容如下:
WORK >DEFAULT
DEFAULT:work
TIMEBASE = NS
4)        编写一位加法器的源程序(adder1.vhd)并存入adder目录下:
library ieee;
use ieee.std_logic_1164.all;
entity adder1 is
        port(din1 : in std_logic;
                din2 : in std_logic;
                cin        : in std_logic;
                dout: out std_logic;
                cout: out std_logic);
                end adder1;

                architecture rtl of adder1 is
                begin
                        dout <= din1 xor din2 xor cin;
                        cout <= (din1 and din2) or (cin and (din1 xor din2));
                end rtl;
5)        编写一位加法器的测试基准(即test_bench)并存入adder目录下:(tb_adder1.vhd)
library ieee;
use ieee.std_logic_1164.all;

entity tb_adder1 is
end tb_adder1;

architecture rtl of tb_adder1 is
component adder1 is
        port(din1 : in std_logic;
                din2 : in std_logic;
                cin        : in std_logic;
                dout: out std_logic;
                cout: out std_logic);
end component ;
signal din1 : std_logic:='1';
signal din2 : std_logic:='0';
signal cin : std_logic;
signal dout : std_logic;
signal cout : std_logic;

for all : adder1 use entity work.adder1(rtl);

begin
                u1 : adder1 port map(din1,din2,cin,dout,cout);
                        din1 <= not din1 after 10 ns;
                        din2 <= not din2 after 20 ns;
                        cin <= '0','1' after 40 ns;
        end rtl;
       
        configuration test_adder1 of tb_adder1 is
                        for rtl
                        end for;
        end test_adder1;
6)        编译源程序:
有两种方法可供使用:
A:使用命令vhdlan adder1.vhd tb_adder1.vhd
B:用批处理文件。如analyze.sh
                vhdlan –noevent \
                        adder1.vhd \
                        tb_adder1.vhd
保存文件analyze.sh,并将其属性(property)改为可执行。方法如下:可以在文件管理器中修改,也可以用unix命令:chmod 755 analyze.sh
7)        模拟(仿真):
使用仿真命令:vhdldbx &
注:在仿真器中常用的命令如下:trace,step,next,monitor,run,list,lv (-v),quit等;具体用法参考相应的文档资料。
8)        综合:
使用命令:design_analyzer &
注: (1)综合器中常用的命令如下:read,clock_specify,design_enviroment,optimization等;具体用法参考相应的文档资料。
          (2)如果有自己的工艺库,则应将根目录下的.synopsys_dc.setup 修改为:
                        search path :
                        link library =
                        target library =
                        symbol library =
9)        保存文件:
将文件保存为vhdl格式,如adder_syn.vhd
10)        修改原来的testbench:
将tb_adder1.vhd 中的for all : adder1 use entity work.adder1(rtl);改为:for all : adder1 use entity work.adder(syn_rtl);(syn_rtl为adder_syn.vhd中,adder1的结构体名)。
11)        编译:与第6步相同。
12)        仿真:与第7步相同。
注:若须打印波形,则应将其存为.ps文件(如:wave.ps);然后使用打印命令,选择打印选项为文件形式,并写入文件名(如:wave.ps)。

责任编辑:5life

更多相关 synopsys 综合 的文章

PrimePower 教程 [2006-03-26]
Design Compiler FAQ [2005-07-05]
利用Synopsys工具的高性能数据路径综合 [2005-12-21]
Dracula这个东西 [2005-12-18]
本文共有0条评论,现在显示最新的5条。

栏目导航

电路基础
硬件语言
逻辑验证
电路综合
后端设计
可测设计
基本逻辑
制造工艺
书籍精选
说文解字
工具学习
数字滤波
趣闻逸事
数字锁相
设计杂项
低耗设计

站点最新

更多相关链接

  使用synopsys的基本步骤
  STA在芯片设计后端的应用
  静态时序分析在数字集成...
  静态时序分析(Static T...
  Design Compiler FAQ
  利用Synopsys工具的高性...
  逻辑综合中对关键路径处...

栏目最新

更多相关链接

  使用synopsys的基本步骤
  STA在芯片设计后端的应用
  静态时序分析在数字集成...
  静态时序分析(Static T...
  Design Compiler FAQ
  利用Synopsys工具的高性...
  逻辑综合中对关键路径处...

热点文章

更多相关链接

  静态时序分析(Static Timin...
  静态时序分析在数字集成电路...
  逻辑综合中对关键路径处理方...
  STA在芯片设计后端的应用
  Design Compiler FAQ
  利用Synopsys工具的高性能数...
  使用synopsys的基本步骤