verdi_modelsim联合仿真

verdi_modelsim联合仿真
verdi_modelsim联合仿真

(筆記) 如何使用Debussy與ModelSim做Co-Simulation? (SOC) (Verilog) (VHDL) (Debussy) (ModelSim)

Abstract

本文介紹如何使用Debussy與ModelSim做Co-Simulation,並使用Verilog、VHDL以及Verilog搭配VHDL交叉一起simulation。

Introduction

使用環境:Debussy 5.4 v9 + ModelSim SE 6.3e

我之前一直使用Debussy + NC-Verilog做simulation,Debussy (Verdi)可以說是HDL的Source Insight,是trace與debug的神兵利器,NC-Verilog也是Verilog simulator中速度最快的,可是最近因工作需要,拿到的一包code卻是用Verilog寫RTL,用VHDL寫testbench,所以必須2種語言一起做simulation,我在NC-Verilog一直無法成功讓兩種語言一起simulation。ModelSim雖然支援Verilog + VHDL co-simulation,但用慣Debussy 的我還是無法忘懷其方便的trace code方式,所以若能讓ModelSim也能dump出Debussy 所需要的fsdb檔案,這樣就太完美了。

接下來會分4個方式討論

1.RTL與testbench皆使用Verilog

2.RTL與testbench皆使用VHDL

3.RTL使用VHDL,testbench使用Verilog

4.RTL使用Verilog,testbench使用VHDL

1.RTL與testbench皆使用Verilog

Step 1:

設定ModeSim使用Verilog PLI (因為testbench使用Verilog)

將C:\Novas\Debussy\share\PLI\modelsim_pli\WINNT\novas.dll複製到

C:\Modeltech_6.3e\win32\下

修改C:\Modeltech_6.3e\modelsim.ini,將Veriuser部分修改成如下所示:

; List of dynamically loaded objects for Verilog PLI applic ations

; Veriuser = veriuser.sl

; use by verilog

Veriuser = novas.dll

; use by vhdl

; Veriuser = novas_fli.dll

modelsim.ini是個read only檔,要修改前記得修改其屬性才能存檔。

Step 2:

RTL部分(以4 bit counter為例)

counter.v / Verilog

1/*

2(C) OOMusou 2011 https://www.360docs.net/doc/c112603292.html,

3

4Filename : counter.v

5Simulator : ModelSim 6.3e, Debussy 5.4 v9 6Description : ModelSim with debussy

7Release : 01/31/2010 1.0

8 */

9

10module counter (

11 clk,

12 rst_n,

13 cnt

14);

15

16input clk;

17input rst_n;

18output [3:0] cnt;

19

20reg [3:0] cnt;

21

22always@(posedge clk, negedge rst_n) begin 23if (~rst_n)

24 cnt <= 4'h0;

25else

26 cnt <= cnt + 1'b1;

27end

28

29endmodule

Step 3:

Testbench部分

counter_tb.v / Verilog

1/*

2(C) OOMusou 2011 https://www.360docs.net/doc/c112603292.html, 3

4Filename : counter_tb.v

5Compiler : ModelSim 6.3e, Debussy 5.4 v9 6Description : ModelSim with debussy

7Release : 01/31/2010 1.0

8 */

9

10module counter_tb;

11

12reg clk;

13reg rst_n;

14wire [3:0] cnt;

15

16// 50MHz

17always #(10) clk = ~clk;

18

19initial begin

20 #0;

21 clk = 1'b0;

22 rst_n = 1'b0;

23

24 #5;

25 rst_n = 1'b1;

26 #195;

27 $finish;

28end

29

30initial begin

31 $fsdbDumpfile("counter.fsdb");

32 $fsdbDumpvars(0, counter_tb);

33end

34

35counter u_counter (

36 .clk(clk),

37 .rst_n(rst_n),

38 .cnt(cnt)

39);

40

41endmodule

19行

initial begin

#0;

clk = 1'b0;

rst_n = 1'b0;

#5;

rst_n = 1'b1;

#195;

$finish;

end

一搬來說,若在NC-Verilog做simulation,我們會在testbench內指定結束simulation的時間,不過在ModelSim裡,simulation時間是由ModelSim script控制,在testbench內寫$finish並沒有用,所以會省略$finish時間入下。

initial begin

#0;

clk = 1'b0;

rst_n = 1'b0;

#5;

rst_n = 1'b1;

end

Step 4:

ModelSim script部分

vsim.do

vlib work

vlog counter.v

vlog counter_tb.v

vsim counter_tb

run 200ns

q

其中

vlib work

建立work library。

vlog counter.v

vlog counter_tb.v

編譯RTL:counter.v 與testbench:counter_tb.v,vlog為modelsim的Verilog compiler。

vsim counter_tb

以counter_tb為top module進行simulation。

run 200ns

命令ModelSim執行200 ns的simulation。

q

離開ModelSim

Step 5:

執行ModelSim的批次檔

mod.bat

vsim -c -do sim.do

-c 表示ModelSim將以console mode執行,因為在Debussy + ModelSim時,只把ModelSim當成NC-Verilog使用,並沒有用到ModelSim的GUI模式。

-do 表示執行ModelSim script。

執行結果

D:\0Clare\VerilogLab\ModelSim\counter_verilog>vsim -c -do sim.do

Reading C:/Modeltech_6.3e/tcl/vsim/pref.tcl

# 6.3e

# do sim.do

# ** Warning: (vlib-34) Library already exists at "work". # Model Technology ModelSim SE vlog 6.3e Compiler 2008.02 F eb 2 2008

# -- Compiling module counter

#

# Top level modules:

# counter

# Model Technology ModelSim SE vlog 6.3e Compiler 2008.02 F eb 2 2008

# -- Compiling module counter_tb

#

# Top level modules:

# counter_tb

# vsim counter_tb

# ** Note: (vsim-3813) Design is being optimized due to mod ule recompilation...

# ** Note: (vsim-3865) Due to PLI being present, full desig n access is being specified.

# Loading C:\Modeltech_6.3e\win32/novas.dll

# // ModelSim SE 6.3e Feb 2 2008

# //

# // Copyright 1991-2008 Mentor Graphics Corporation

# // All Rights Reserved.

# //

# // THIS WORK CONTAINS TRADE SECRET AND

# // PROPRIETARY INFORMATION WHICH IS THE PROPERTY

# // OF MENTOR GRAPHICS CORPORATION OR ITS LICENSORS

# // AND IS SUBJECT TO LICENSE TERMS.

# //

# Loading work.counter_tb(fast)

# Loading work.counter(fast)

# Novas FSDB Dumper for ModelSim, Release 5.4v9 (Win95/NT) 05/04/2005

# Copyright (C) 1996 - 2004 by Novas Software, Inc.

# *Novas* Create FSDB file 'counter.fsdb'

# *Novas* Start dumping the scope(counter_tb), layer(0).

# *Novas* End of dumping.

# ** Note: $finish : counter_tb.v(27)

# Time: 200 ns Iteration: 0 Instance: /counter_tb

Step 6:

執行Debussy批次檔部份

deb.bat

debussy -2001 counter_tb.v counter.v -ssf counter.fsdb -ss wr counter.rc

-2001表示支援Verilog 2001語法

-ssf 載入Debussy dump file

-sswr 載入Debussy signal file

執行結果

2.RTL與testbench皆使用VHDL

Step 1:

設定ModelSim使用VHDL FLI (因為testbench使用VHDL)

將C:\Novas\Debussy\share\PLI\modelsim_fli54\WINNT\novas_fli.dll複製到

C:\Modeltech_6.3e\win32\下

修改C:\Modeltech_6.3e\modelsim.ini,將Veriuser部分修改成如下所示:

; List of dynamically loaded objects for Verilog PLI applic ations

; Veriuser = veriuser.sl

; use by verilog

;Veriuser = novas.dll

; use by vhdl

Veriuser = novas_fli.dll

modelsim.ini是個read only檔,要修改前記得修改其屬性才能存檔。

複製C:\Novas\Debussy\share\PLI\modelsim_fli54\WINNT\novas.vhd到自己的project底下

(為什麼Verilog不需要這個檔,而VHDL需要這個檔,稍後會解釋)

Step 2:

RTL部分(以4 bit counter為例)

counter.vhd / VHDL

1-- (C) OOMusou 2011 https://www.360docs.net/doc/c112603292.html,

2

3 -- Filename : counter.vhd

4 -- Simulator : ModelSim 6.3e, Debussy 5.4 v9

5 -- Description : ModelSim with debussy

6 -- Release : 02/05/20111.0

7

8library IEEE;

9use IEEE.std_logic_1164.all;

10use IEEE.std_logic_unsigned.all;

11

12entity counter is

13port ( clk : in std_logic;

14 rst_n : in std_logic;

15 cnt : out std_logic_vector(3downto0));

16end entity counter;

17

18architecture arc of counter is

19signal cnt_r : std_logic_vector(3downto0);

20begin

21process(clk, rst_n)

22begin

23if (rst_n = '0') then

24 cnt_r <= "0000";

25 elsif rising_edge(clk) then

26 cnt_r <= cnt_r + 1;

27end if;

28end process;

29

30 cnt <= cnt_r;

31end arc;

Step 3:

Testbench部分

counter.vhd / VHDL

1-- (C) OOMusou 2011 https://www.360docs.net/doc/c112603292.html, 2

3 -- Filename : counter_tb.vhd

4 -- Simulator : ModelSim 6.3e, Debussy 5.4 v9

5 -- Description : ModelSim with debussy

6 -- Release : 01/31/20101.0

7

8library IEEE;

9use IEEE.std_logic_1164.all;

10use IEEE.std_logic_unsigned.all;

11use work.pkg.all;

12

13entity counter_tb is

14end entity counter_tb;

15

16architecture arc of counter_tb is

17component counter

18port (

19 clk : in std_logic;

20 rst_n : in std_logic;

21 cnt : out std_logic_vector(3downto0)

22 );

23end component;

24

25signal clk : std_logic := '0';

26signal rst_n : std_logic := '0';

27signal cnt : std_logic_vector(3downto0); 28

29begin

30process

31begin -- 50MHz

32 clk_loop : loop

33 clk <= '0';

34wait for10 ns;

35 clk <= '1';

36wait for10 ns;

37end loop clk_loop;

38end process;

39

40process

41begin

42wait for5 ns;

43 rst_n <= '1';

44end process;

45

46process

47begin

48 fsdbDumpfile("counter.fsdb");

49 fsdbDumpvars(0, "counter_tb");

50wait;

51end process;

52

53 u_counter : counter

54port map (

55 clk => clk,

56 rst_n => rst_n,

57 cnt => cnt

58 );

59end arc;

11行

use work.pkg.all;

這是因為novas.vhd與VHDL FLI的原因,稍後會解釋。

47行

process

begin

fsdbDumpfile("counter.fsdb");

fsdbDumpvars(0, "counter_tb");

wait;

end process;

一樣使用fsdbDumpfile()與fsdbDumpvars()兩個Debussy所提供的函數,不過在VHDL FLI並不需要如Verilog PLI一樣加上$。

wait也一定要加上,否則在ModelSim做simulation時會造成無窮回圈無法停止。

Step 4:

ModelSim script部分

vsim.do

vlib work

vcom novas.vhd

vcom counter.vhd

vcom counter_tb.vhd

vsim counter_tb

run 200ns

q

因為是VHDL,所以全部改用vcom編譯。

其中novas.vhd是從Debussy目錄複製過來的,為什麼需要編譯這個檔案呢?

VHDL FLI (Foreign Language Interface)與Verilog PLI (Programming Language Interface)不同的地方在於,當你自己提供由C寫的function給simulator使用時,Verilog PLI 會自己到所提供的dll去找是否有此function,但VHDL FLI需要自己去提供mapping的動作,告訴simulator哪一個function對應dll內那ㄧ個function,novas.vhd就是提供這個mapping的腳色。

若直接使用Debussy所提供的novas.vhd,在執行ModelSim會有以下錯誤訊息。

# ** Warning: (vsim-FLI-3159) Failed to find foreign functi on 'fliparseVariableInFile' in FLI object file "C:\Modelte ch_6.3e\win32/./novas_fli.dll".

意思是novas.vhd定義的fliparseVariableInFile在novas_fli.dll找不到,致於為什麼會有此錯誤,我並不清楚。

將novas.vhd修改成如下所示:

novas.vhd / VHDL

1package pkg is

2attribute foreign : string;

3

4procedure fsdbDumpfile (file_name : in string);

5attribute foreign of fsdbDumpfile : procedure is"flip arseTraceInit ./novas_fli.dll";

6

7procedure fsdbDumpvars (depth : in integer;

8 region_name : in string);

9attribute foreign of fsdbDumpvars : procedure is"flip arsePartial ./novas_fli.dll";

10end;

11

12package body pkg is

13procedure fsdbDumpfile(file_name : in string) is

14begin

15assert false report"ERROR : foreign subprogram n ot called"severity note;

16end;

17

18procedure fsdbDumpvars(depth : in integer;

19 region_name : in string) is

20begin

21assert false report"ERROR : foreign subprogram n ot called"severity note;

22end;

23end;

24

25entity novas is end;

26

27architecture novas_arch of novas is

28attribute foreign : string;

29attribute foreign of novas_arch : architecture is"fli parseCommand novas_fli.dll";

30begin

31end;

32

也就是僅留下fsdbDumpfile()與fsdbDumpvars()兩個function,其他的都刪除。

根據我使用Debussy的經驗,只要留這兩個function就夠用了,其他Debussy的function 我還真的沒用過。

在novas.vhd也看到了這些是定義在pkg這個package下,所以在counter_tb.vhd必須use work.pkg.all。

Step 5:

執行ModelSim的批次檔

mod.bat

vsim -c -do sim.do

執行結果

D:\0Clare\VerilogLab\ModelSim\counter_vhdl>vsim -c -do sim. do

Reading C:/Modeltech_6.3e/tcl/vsim/pref.tcl

# 6.3e

# do sim.do

# ** Warning: (vlib-34) Library already exists at "work".

# Model Technology ModelSim SE vcom 6.3e Compiler 2008.02 F eb 2 2008

# -- Loading package standard

# -- Compiling package pkg

# -- Compiling package body pkg

# -- Loading package pkg

# -- Compiling entity novas

# -- Compiling architecture novas_arch of novas

# Model Technology ModelSim SE vcom 6.3e Compiler 2008.02 F eb 2 2008

# -- Loading package standard

# -- Loading package std_logic_1164

# -- Loading package std_logic_arith

# -- Loading package std_logic_unsigned

# -- Compiling entity counter

# -- Compiling architecture arc of counter

# Model Technology ModelSim SE vcom 6.3e Compiler 2008.02 F eb 2 2008

# -- Loading package standard

# -- Loading package std_logic_1164

# -- Loading package std_logic_arith

# -- Loading package std_logic_unsigned

# -- Loading package pkg

# -- Compiling entity counter_tb

# -- Compiling architecture arc of counter_tb

# vsim counter_tb

# Loading C:\Modeltech_6.3e\win32/novas.dll

# // ModelSim SE 6.3e Feb 2 2008

# //

# // Copyright 1991-2008 Mentor Graphics Corporation

# // All Rights Reserved.

# //

# // THIS WORK CONTAINS TRADE SECRET AND

# // PROPRIETARY INFORMATION WHICH IS THE PROPERTY

# // OF MENTOR GRAPHICS CORPORATION OR ITS LICENSORS

# // AND IS SUBJECT TO LICENSE TERMS.

# //

# Loading std.standard

# Loading ieee.std_logic_1164(body)

# Loading ieee.std_logic_arith(body)

# Loading ieee.std_logic_unsigned(body)

# Loading work.pkg(body)

# Loading C:\Modeltech_6.3e\win32/./novas_fli.dll

# Loading work.counter_tb(arc)

# Loading work.counter(arc)

# Novas FSDB Dumper for ModelSim 5.4 (FLI), Release 5.4v9 (Win95/NT) 05/04/2005

# Copyright (C) 1996 - 2004 by Novas Software, Inc.

# *Novas* Create FSDB file 'counter.fsdb'

Step 6:

執行Debussy批次檔部份

deb.bat

debussy –vhdl –93 novas.vhd counter_tb.vhd counter.vhd –to p counter_tb -ssf counter.fsdb -sswr counter.rc

-vhdl 表示支援VHDL語法,因為Debussy預設支援Verilog

-93 表示支援VHDL 93的語法

-top 指定top module,在Verilog可以不指定top,Debussy可以自動判斷而抓到top module,但是VHDL沒辦法,需要自己指定,若不指定,待會會有GUI要你手動挑選top module

執行結果

3.RTL使用VHDL,testbench使用Verilog

Step 1:

設定ModeSim使用Verilog PLI (因為testbench使用Verilog)

將C:\Novas\Debussy\share\PLI\modelsim_pli\WINNT\novas.dll複製到

C:\Modeltech_6.3e\win32\下

修改C:\Modeltech_6.3e\modelsim.ini,將Veriuser部分修改成如下所示:

; List of dynamically loaded objects for Verilog PLI applic ations

; Veriuser = veriuser.sl

; use by verilog

Veriuser = novas.dll

; use by vhdl

; Veriuser = novas_fli.dll

modelsim.ini是個read only檔,要修改前記得修改其屬性才能存檔。

Step 2:

RTL部分(以4 bit counter為例)

counter.vhd / VHDL

1-- (C) OOMusou 2011 https://www.360docs.net/doc/c112603292.html,

2

3 -- Filename : counter.vhd

4 -- Simulator : ModelSim 6.3e, Debussy 5.4 v9

5 -- Description : ModelSim with debussy

6 -- Release : 02/05/20111.0

7

8library IEEE;

9use IEEE.std_logic_1164.all;

10use IEEE.std_logic_unsigned.all;

11

12entity counter is

13port ( clk : in std_logic;

14 rst_n : in std_logic;

15 cnt : out std_logic_vector(3downto0)); 16end entity counter;

17

18architecture arc of counter is

19signal cnt_r : std_logic_vector(3downto0);

20begin

21process(clk, rst_n)

22begin

23if (rst_n = '0') then

24 cnt_r <= "0000";

25 elsif rising_edge(clk) then

26 cnt_r <= cnt_r + 1;

27end if;

28end process;

29

30 cnt <= cnt_r;

31end arc;

Step 3:

Testbench部分

counter_tb.v / Verilog

1/*

2(C) OOMusou 2011 https://www.360docs.net/doc/c112603292.html, 3

4Filename : counter_tb.v

5Compiler : ModelSim 6.3e, Debussy 5.4 v9 6Description : ModelSim with debussy

7Release : 01/31/2010 1.0

8 */

9

10module counter_tb;

11

12reg clk;

13reg rst_n;

14wire [3:0] cnt;

15

16// 50MHz

17always #(10) clk = ~clk;

18

19initial begin

20 #0;

21 clk = 1'b0;

22 rst_n = 1'b0;

23

24 #5;

25 rst_n = 1'b1;

26 #195;

27 $finish;

28end

29

30initial begin

31 $fsdbDumpfile("counter.fsdb");

32 $fsdbDumpvars(1, counter_tb);

33end

34

35counter u_counter (

36 .clk(clk),

37 .rst_n(rst_n),

38 .cnt(cnt)

39);

40

41endmodule

30行

initial begin

$fsdbDumpfile("counter.fsdb");

$fsdbDumpvars(1, counter_tb);

end

$fsdbDumpvars()的第一個參數是填1不是0,若填0會產生以下warning,不過並不影響最後fsdb的結果。

# ** Warning: Unknown scope type: counter_tb.u_counter 101 0

# : counter_tb.v(30)

# Time: 0 ns Iteration: 0 Instance: /counter_tb

# ** Warning: Unknown scope type: counter_tb.u_counter 101 0

# : counter_tb.v(30)

# Time: 0 ns Iteration: 0 Instance: /counter_tb

# *Novas* End of dumping.

Step 4:

ModelSim script部分

vsim.do

vlib work

vcom counter.vhd

vlog counter_tb.v

vsim counter_tb

run 200ns

q

VHDL使用vcom編譯,Verilog使用vlog編譯。

Step 5:

執行ModelSim的批次檔

mod.bat

vsim -c -do sim.do

執行結果

D:\0Clare\VerilogLab\ModelSim\counter_vhdl_verilog>vsim -c -do sim.do

Reading C:/Modeltech_6.3e/tcl/vsim/pref.tcl

# 6.3e

# do sim.do

# ** Warning: (vlib-34) Library already exists at "work". # Model Technology ModelSim SE vcom 6.3e Compiler 2008.02 F eb 2 2008

# -- Loading package standard

# -- Loading package std_logic_1164

# -- Loading package std_logic_arith

# -- Loading package std_logic_unsigned

# -- Compiling entity counter

# -- Compiling architecture arc of counter

# Model Technology ModelSim SE vlog 6.3e Compiler 2008.02 F eb 2 2008

# -- Compiling module counter_tb

#

# Top level modules:

# counter_tb

# vsim counter_tb

# Loading C:\Modeltech_6.3e\win32/novas.dll

# // ModelSim SE 6.3e Feb 2 2008

# //

# // Copyright 1991-2008 Mentor Graphics Corporation

# // All Rights Reserved.

# //

# // THIS WORK CONTAINS TRADE SECRET AND

# // PROPRIETARY INFORMATION WHICH IS THE PROPERTY

# // OF MENTOR GRAPHICS CORPORATION OR ITS LICENSORS

# // AND IS SUBJECT TO LICENSE TERMS.

# //

# Loading work.counter_tb(fast)

# Loading std.standard

# Loading ieee.std_logic_1164(body)

# Loading ieee.std_logic_arith(body)

# Loading ieee.std_logic_unsigned(body)

# Loading work.counter(arc)

# Novas FSDB Dumper for ModelSim, Release 5.4v9 (Win95/NT) 05/04/2005

# Copyright (C) 1996 - 2004 by Novas Software, Inc.

# *Novas* Create FSDB file 'counter.fsdb'

# *Novas* Start dumping the scope(counter_tb), layer(0). # ** Warning: Unknown scope type: counter_tb.u_counter 101 0

# : counter_tb.v(30)

# Time: 0 ns Iteration: 0 Instance: /counter_tb

# ** Warning: Unknown scope type: counter_tb.u_counter 101 0

# : counter_tb.v(30)

# Time: 0 ns Iteration: 0 Instance: /counter_tb

# *Novas* End of dumping.

D:\0Clare\VerilogLab\ModelSim\counter_vhdl_verilog>vsim -c -do sim.do

Reading C:/Modeltech_6.3e/tcl/vsim/pref.tcl

# 6.3e

# do sim.do

# ** Warning: (vlib-34) Library already exists at "work". # Model Technology ModelSim SE vcom 6.3e Compiler 2008.02 F eb 2 2008

# -- Loading package standard

# -- Loading package std_logic_1164

# -- Loading package std_logic_arith

# -- Loading package std_logic_unsigned

# -- Compiling entity counter

# -- Compiling architecture arc of counter

# Model Technology ModelSim SE vlog 6.3e Compiler 2008.02 F eb 2 2008

# -- Compiling module counter_tb

#

# Top level modules:

# counter_tb

# vsim counter_tb

# ** Note: (vsim-3813) Design is being optimized due to mod ule recompilation...

# ** Note: (vsim-3865) Due to PLI being present, full desig n access is being specified.

# Loading C:\Modeltech_6.3e\win32/novas.dll

# // ModelSim SE 6.3e Feb 2 2008

# //

# // Copyright 1991-2008 Mentor Graphics Corporation

# // All Rights Reserved.

# //

# // THIS WORK CONTAINS TRADE SECRET AND

# // PROPRIETARY INFORMATION WHICH IS THE PROPERTY

# // OF MENTOR GRAPHICS CORPORATION OR ITS LICENSORS

# // AND IS SUBJECT TO LICENSE TERMS.

# //

# Loading work.counter_tb(fast)

# Loading std.standard

# Loading ieee.std_logic_1164(body)

# Loading ieee.std_logic_arith(body)

# Loading ieee.std_logic_unsigned(body)

# Loading work.counter(arc)

# Novas FSDB Dumper for ModelSim, Release 5.4v9 (Win95/NT) 05/04/2005

# Copyright (C) 1996 - 2004 by Novas Software, Inc.

# *Novas* Create FSDB file 'counter.fsdb'

# *Novas* Start dumping the scope(counter_tb), layer(1).

# *Novas* End of dumping.

Step 6:

執行Debussy批次檔部份

deb.bat

vhdlcom -93 counter.vhd

vericom -2001 counter_tb.v

debussy -lib work -top counter_tb -ssf counter.fsdb -sswr c ounter.rc

若RTL與testbench同時包含Verilog與VHDL,Debussy就無法直接開啟,必須先將Verilog 與VHDL分別編譯成lib,然後才可開啟。

VHDL使用vhdlcom作編譯,-93表示支援VHDL 93的語法,Verilog使用vericom作編譯,-2001表示支援Verilog 2001語法,vhdlcom與vericom預設都會編譯在work這個lib下,所以debussy開啟時需用-lib指定使用work這個lib,並用-top指定top module,這樣才可開啟mixed-language的design。

執行結果

4.RTL使用Verilog,testbench使用VHDL

Step 1:

設定ModelSim使用VHDL FLI (因為testbench使用VHDL)

將C:\Novas\Debussy\share\PLI\modelsim_fli54\WINNT\novas_fli.dll複製到

C:\Modeltech_6.3e\win32\下

修改C:\Modeltech_6.3e\modelsim.ini,將Veriuser部分修改成如下所示:

; List of dynamically loaded objects for Verilog PLI applic ations

; Veriuser = veriuser.sl

; use by verilog

;Veriuser = novas.dll

; use by vhdl

Veriuser = novas_fli.dll

modelsim.ini是個read only檔,要修改前記得修改其屬性才能存檔。

Step 2:

RTL部分(以4 bit counter為例)

counter.v / Verilog

1/*

2(C) OOMusou 2011 https://www.360docs.net/doc/c112603292.html,

Ansoft和Simplore联合仿真注意事项

1.Ansoft和Simplore联合仿真时,如果Ansoft中的模型类型是Transient,则必 须勾选Maxwell 2D -> Design Settings -> Advanced Product Coupling菜单中的Enable transient-transient link with Sim,否则在检查时会产生Cannot find the matching inductor in the imported file 这个错误。 2.Ansoft和Simplore联合仿真时,Simplore软件控制着仿真步长,也控制着 Ansoft模型的旋转速度(或者称线速度)。 3.Ansoft和Simplore联合仿真的必要前提: 1)Ansoft模型必须可以求解(即可以进行运算)。 2)Ansoft模型必须含有机械运动(原文: must have mechanical motion) 3)Ansoft模型必须至少含有一个外部类型(external类型)的绕组。 4)Ansoft模型名不能含有非法字符(如空格) 5)建议:在与Simplore联合仿真之前,最好保证Ansoft模型可以单独进行 运算(即可以Solve without external windings) 4.Ansoft和Simplore联合仿真时,Ansoft软件内部设定的开始和停止时间会发 生变化(即由Simplore控制) 5.Ansoft的仿真停止时间必须大于或等于Simplore的仿真停止时间。 6.Ansoft和Simplore联合仿真,Ansoft模型必须含有:几何图形,运动的Band (moving band),材料,边界条件,external 类型的绕组,剖分。

Maxwell与Simplorer联合仿真方法及注意问题

三相鼠笼式异步电动机的协同仿真模型实验分析 本文所采用的电机是参照《Ansoft 12在工程电磁场中的应用》一书所给的使用RMxprt输入机械参数所生成的三相鼠笼式异步电动机,并且由RMxprt的电机模型直接导出2D模型。由于个人需要,对电机的参数有一定的修改,但是使用Y160M--4的电机并不影响联合仿真的过程与结果。 1.1 Maxwell与Simplorer联合仿真的设置 1.1.1Maxwell端的设置 在Maxwell 2D模型中进行一下几步设置: 第一步,设置Maxwell和Simplorer端口连接功能。右键单击Model项,选择Set Symmetry Multiplier项,如图1.1所示,单击后弹出图1.2的对话框。 图1.1 查找过程示意图

图1.2 设计设置对话框 在对话框中,选择Advanced Product Coupling项,勾选其下的Enable tr-tr link with Sim 。至此,完成第一步操作。 第二步,2D模型的激励源设置。单击Excitation项的加号,显示Phase A、Phase B、Phase C各项。双击Phase A项,弹出如图1.3所示的对话框。 图1.3 A相激励源设置 在上图的对话框中,将激励源的Type项设置为External,并勾选其后的Strander,并且设置初始电流Initial Current项为0。Number of parallel branch项按照电机的设置要求,其值为1。参数设置完成后,点击确定退出。 需要说明的一点是,建议在设置Maxwell与Simplorer连接功能即第一步之前,记录电压激励源下的电阻和电感。事实上,这里的电组和电感就是Maxwell 2D计算出的电机的定子电阻与定子电感。这两个数据在外电路的连接中会使用到,在后面会详细说明。 至此,Maxwell端的设置完毕。 1.1.2 Simplorer端的设置 Simplorer端的设置,主要是对电机外电路的设置,具体的电路会在空载实验和额定负载实验中详细给出,这里不再赘述。

AMEsim联合仿真配置

本教程主要解决AMEsim R13联合仿真过程中SimuCosim生成失败问题。 VS2010(C:\Program Files (x86)\Microsoft Visual Studio 10.0) AMEsimR13(C:\AMESim) 注:先安装VS。

编辑还是新建记不清了,有就编辑,没有就新建。 用户变量(注,根据自己软件的安装路径对应修改) PACH C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools;C:\Program Files

(x86)\Microsoft Visual Studio 10.0\VC\bin; MSSDK C:\Program Files (x86)\Microsoft Visual Studio 10.0\SDK;C:\Program Files (x86)\Microsoft Visual Studio 10.0\DIA SDK; 系统变量 PACH %AME%;%AME%\win32;%AME%\win64;%AME%\sys\mingw32\bin;%AME%\sys\mpich\mpd\bin ;%AME%\sys\cgns;%AME%\sys\python\win32;%SystemRoot%\system32;%SystemRoot%;%Syste mRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\; AMEsim设置

参数模式

Moldflow2019最新进展与仿真优化

Moldflow 2019最新进展与仿真优化Rahul Patil Product Manager | Autodesk

Moldflow40周年了!!

内容 ?Moldflow 2019 –最新进展?Moldflow 2019更新2 ?仿真优化案例研究

最新进展

Moldflow 2019.0:发布和更新概述 效率& 易用性 市场影响力 技术领导力 ?仿真任务管理器的改善 ?新的文件传输协议? 修复了Bug ? 用户界面速度的提升? 易用性的提升: ?可选择CAD 实体/面/边 ?网格划分GUI(图形用户界面)的提升? 切割面的控制(图层属性)?网格的更新: ?在CAD 上指定水路尺寸 ?双层面转换为带厚度属性的中性面? 在曲线上设置阀浇口 ?更快的随形冷却求解器 ?~5x 速度提升?支持并行计算?支持Linux 系统 ?全面的准确性提升 ?纤维取向的准确性 ?重力和惯性作用下的3D 流动准确性?微孔发泡的提升? 型芯偏移的准确性 ?不包含温度求解的冷却液流动分析 ?包含水泵 ?双色的缩痕分析 ?求解器API 支持金属粉末成型 ?共享结果(工程师的Snapchat)?与同事共享一个3D 的结果?共享数据(Autodesk 驱动器)?最新CAD 转换 ?Helius PFA 最新支持温度因子?温度插值 ? Fusion360 Ultimate 支持Synergy 和Adviser: ?模型修复(替代SimStudio Tools) ? 提供完整的Fusion 360 Ultimate 功能: ?机械仿真?加工?渲染,等等。

AMESim和ADAMS联合仿真设置

AMESim和ADAMS 依托AMESim7.0与adams2007或2005联合仿真过程,除要用到这两中软件外还要安装完整版的vc++(注意不能要绿色版,要完整破解版)。 设置环境变量: 右键点击我的电脑>属性>高级>环境变量,在administration 用户变量栏下点“新建”,设置:变量名 AME_ADAMS_HOME 变量值填写你安装adams的安装路径(例如:D:\adams2005) 然后确定。在开始>运行栏中打cmd进入dos环境,输入 echo %AME_ADAMS_HOME% 注意echo后有空格,然后回车,显示你的adams安装路径(例如:D:\adams2005)说明正确。 下面总体说一下联合仿真过程,简单的说,是两种软件量与量的交换过程。首先在adams中会建立一个接受AMESim传来的量(f)驱动模型,然后从adams中输出一个模型量(w)传到AMESim。 建立adams模型: 首先建立一个工作文件夹,adams和AMESim的工作目录全部指向它,注意这个文件夹的名字和路径全部为英文不能有其他符号和字符,视频教程中建在c盘根目录下,命名aa。为了说明清楚,在这里仅建立了一个绕固定点旋转的杆件模型,在它和ground直接加入铰接关系,就是那个合页的连接关系,给它加入空间力矩。然后在build下选system elements>stable variable>new建立新的变量f(AMESim 输入扭矩),用同样的方法建立变量w(adam s输出角速度),并且设置w的值,从build下选system elem ents>stable variable>modify选择model中的w,设定f=值,点击三个小点的按钮进入function build,在下拉框中选择velocity,单击anglar velocity about Z,点击assist,在to marker 栏右键单击,选择marker>browse,选择part2 cm(杆中心点),OK,Ok,删掉原有的0,然后确定, 然后选择build>contral toolit>plant input在弹出对话框中,双击variable nam e栏,Database Navigator中选择f,OK;同样在build>contral toolit>plant output的Database Navigator中选择w为输出变量,OK! 将前面设定的扭矩值设定为f,就是在那个fuction窗口中选data element>plant input. 从tool>plung manage>中选择control,调出control,在control下选择plant explorer,在plant input选择pinput1,在plant output选择poutput1,点确定。这时在aa文件夹下会出现三个文件*.inf, *.adm, *.cmd,其中*.inf文件包含了进行联合仿真时AMESim软件所需要的一些基本信息,如工作路径、文件名、输入输出变量的特征、状态变量数。*.cmd, *.adm分别是仿真运行时计算方式为交互式和批处理式所必须的数据文件,包含ADAMS求解器可读的信息,这些信息在运行仿真时,将输入到求解器。

AMESim与ADAMS联合仿真

AMESim与ADAMS联合仿真 1.引言 AMESim(Advanced Modeling Environment for Simulation of engineering systems)软件是由法国IMAGINE公司于1995年推出的多学科复杂领域系统工程高级建模和仿真平台,该软件不要求用户具备完备的仿真专业知识,采用面向系统原理图建模的方法,便于工程技术人员掌握和使用。机构动力学分析软件ADAMS (automatic dynamic of mechanical system)集建模、求解和可视化技术于一体,能有效分析和比较多种参数方案。运用AMESim与ADAMS的联合仿真,可以有效的对设备的动态过程进行分析,根据交互分析产生的结果来评价设备的性能,为了更加真实的符合实际情况,理论分析用来完成检验产生的数值结果。这种虚拟产品开发方法与得出的结论将对设计人员提供一定帮助。 通过AMESim/ADAMS之间的接口,有两种方式实现联合仿真: 1)将模型从一个平台中输入到另一个平台中,采用单一的积分器进行计算。 2)各个平台分别利用自己的积分器计算自己的模型,通过预先统一的通讯间隔进行信息交换。 2.软件环境要求: 首先AMESim软件需要4.2级以上版本; ADAMS需要2003级以上版本(含A/Control模块)。其次必须要有Microsoft Visual C++ 编译器。如果需要从ADAMS环境中使用接口,那么还强烈推荐Fortran编译器,这样可以将AMESim的模型编译成为ADAMS的子函数(Subroutine)。该接口支持的操作系统包括Windows、Sun、SGI和IBM。

Moldflow分析解释

Moldflow分析结果解释 一流动分析部分 1 Fill time result 填充时间 填充时间显示了模腔填充时每隔一定间隔的料流前锋位置。每个等高线描绘了模型各部分同一时刻的填充。在填充开始时,显示为暗蓝色,最后填充的地方为红色。如果制品短射,未填充部分没有颜色。 使用: 制品的良好填充,其流型是平衡的。一个平衡的填充结果:所有流程在同一时间结束,料流前锋在同一时间到达模型末端。这个意味着每个流程应该以暗蓝色等高线结束。 等高线是均匀间隔,等高线的间隔指示了聚合物的流动速度。宽的等高线指示快速的流动,而窄的等高线指示了缓慢的填充。 查看项目: 确认填充行为的显示状况。 短射—在填充时间结果上,短射将显示为半透明的,查看流动路径的末端是否有半透明区域。 关于3D模型, 可以使用未填充的模穴(短射)结果来检查是否在制品的内部存在未充填的部分。 滞流—如果填充时间结果显示一些区域上的云图有很近的间隔,将产生滞流。如果一个薄区域在制品完全填充之前冻结滞流会导致短射。 过保压—如果填充时间结果显示某个流程的流程之前完成,将显示过保压。过保压会导致高的制品重量、翘曲和不均匀的密度分布。 熔接线和气穴—在填充时间结果上重叠熔接线结果可以确定其存在,熔接线会导致结构和视觉上的缺陷。 气穴—在填充时间结果上重叠气穴结果可以确认其存在,气穴会导致结构和视觉上的缺陷。 跑道效应—跑道效应会导致气穴和熔接线,查看气穴和熔接线的位置及数量。 2 Pressure at velocity/pressure switchover result V/P切换时刻的压力 该结果从流动分析产生,显示了通过模型内的流程在从速度到压力控制切换点的压力分布。 使用: 在填充开始前,模腔内各处的压力为零(或者为大气压,绝对压力)。熔料前沿到达的位置压力才会增加,当熔料前沿向前移动填充后面的区域时压力继续增加,此取决于该位置与熔料前沿的长度。 各个位置的压力不同促使聚合物熔料的填充流动,压力梯度是压力差除以两个位置间的距离。聚合物总是朝着负压力梯度方向移动,从高压力到低压力(这个类似于水的流动从高处流向低处)。因而,最大压力总是发生在聚合物注射位置处,最小压力发生在填充过程中的熔料前沿。压力大小(或压力梯度)取决于聚合物在模腔中的阻抗;高粘性的聚合物要求更多的压力来填充模腔。模型中的受限制区域,比如薄部分、小的流道、长的流动长度也要求大的压力梯度高压力来填充。

simplorer-maxwell联合仿真实例

T1T2T3T4

Co-simulation with Maxwell Technical Background The co-simulation is the most accurate way of coupling the drive and the motor model. The advantage of this method is the high accuraty, having the real inverter currents as source in Maxwell and the back emf of the motor on the inverter currents as source in Maxwell, and the back-emf of the motor on the inverter side. The transient-transient link enables the use to pass data between Simplorer and Maxwell during the simulation: Maxwell2D and Maxwell3D can be used Simplorer and Maxwell will run altogether Simplorer is the Master, Maxwell is the slave At a given time step, the Winding currents and the Rotor angle are passed from Simplorer to Maxwell, the Back EMF and the Torque are passed from Maxwell to Simplorer The complexity of the drive system and of the mechanical system is not The complexity of the drive system and of the mechanical system is not limited Insights on the coupling Method The Simplorer time steps and the Maxwell time steps don’t have to be the same. Usually, Simplorer requires much more time steps than Maxwell. Assume the current simulation time is t Simplorer, based on the previous time steps, gives a forward meeting time t1to Maxwell where both simulators will exchange data. Between t0and t1, both code run by themselves. At t 1, both codes exchange data. If during the t0-t1period, some event appears on Simplorer side (state graph transition, large change of the pp p(g p,g g dynamic of the circuit), Simplorer will roll back to t0and set a new forward meeting time t1’, t1’< t1.

moldflow 中文教程

三维注塑成形模拟系统的研究和应用 一、发展概况和应用背景 塑料工业近20年来发展十分迅速,早在7年前塑料的年产量按体积计算已经超过钢铁和有色金属年产量的总和,塑料制品在汽车、机电、仪表、航天航空等国家支柱产业及与人民日常生活相关的各个领域中得到了广泛的应用。塑料制品成形的方法虽然很多,但最主要的方法是注塑成形,世界塑料成形模具产量中约半数以上是注塑模具。 随着塑料制品复杂程度和精度要求的提高以及生产周期的缩短,主要依靠经验的传统模具设计方法已不能适应市场的要求,在大型复杂和小型精密注射模具方面我国还需要从国外进口模具。 二、关键技术和实用功能 1.用三维实体模型取代中心层模型 传统的注塑成形仿真软件基于制品的中心层模型。用户首先要将薄壁塑料制品抽象成近似的平面和曲面,这些面被称为中心层。在这些中心层上生成二维平面三角网格,利用这些二维平面三角网格进行有限元计算,并将最终的分析结果在中面上显示。而注塑产品模型多采用三维实体模型,由于两者模型的不一致,二次建模不可避免。但由于注塑产品的形状复杂多样、千变万化,从三维实体中抽象出中心层面是一件十分困难的工作,提取过程非常繁琐费时,因此设计人员对仿真软件有畏难情绪,这已成为注塑成形仿真软件推广应用的瓶颈。 HSCAE 3D主要是接受三维实体/表面模型的STL文件格式。现在主流的CAD/CAM系统,如UG、Pro/ENGINEER、CATIA和SolidWorks等,均可输出质量较高的STL格式文件。这就是说,用户可借助任何商品化的CAD/CAE 系统生成所需制品的三维几何模型的STL格式文件,HSCAE 3D可以自动将该STL文件转化为有限元网格模型,通过表面配对和引入新的边界条件保证对应表面的协调流动,实现基于三维实体模型的分析,并显示三维分析结果,免去了中心层模拟技术中先抽象出中心层,再生成网格这一复杂步骤,突破了仿真系统推广应用的瓶颈,大大减轻了用户建模的负担,降低了对用户的技术要求,对用户的培训时间也由过去的数周缩短为几小时。图1为基于中心层模型和基于三维实体/表面模型流动分析模拟情况对比图。 图1(a)中模型分别表示为产品模型→中心层→有限元网格→流动显示。图1(b)中模型分别表示为产品模型→有限元网格→流动显示。 图1 基于中心层模型和基于三维实体/表面模型流动分析模拟情况对比 2.有限元、有限差分、控制体积方法的综合运用 注塑制品都是薄壁制品,制品厚度方向的尺寸远小于其他两个方向的尺寸,温度等物理量在厚度方向的变化又非常大,若采用单纯的有限元或有限差分方法势必造成分析时间过长,无法满足模具设计与制造的实际需要。我们在流动平面采用有限元法,厚度方向采用有限差分法,分别建立与流动平面和厚度方向尺寸相适应的网格并进行耦合求解,在保证计算精度的前提下使得计算速度满足工程的需要,并采用控制体积法解决了成形中的移动边界问题。对于内外对应表面存在差异的制品,可划分为两部分体积,并各自形成控制方程,通过在交接处进行插值对比保证这两部分的协调。 3.数值计算与人工智能技术的结合 优选注塑成形工艺参数一直是广大模具设计人员关注的问题,传统的CAE软件虽然可以在计算机上仿真出指定工艺条件下的注塑成形情况,但无法自动对工艺参数进行优化。CAE软件使用人员必须设置不同的工艺条件进行多次CAE分析,并结合实际经验在各方案之间进行比较,才能得出较满意的工艺方案。同时,在对零件进行CAE分析后,系统会产生有关该方案的大量信息(制品、工艺条件、分析结果等),其中分析

AMESim与ADAMS联合仿真操作说明

AMESim与ADAMS联合仿真操作说明 1.引言 AMESim(Advanced Modeling Environment for Simulation of engineering systems)软件是由法国IMAGINE公司于1995年推出的多学科复杂领域系统工程高级建模和仿真平台,该软件不要求用户具备完备的仿真专业知识,采用面向系统原理图建模的方法,便于工程技术人员掌握和使用。机构动力学分析软件ADAMS (automatic dynamic of mechanical system)集建模、求解和可视化技术于一体,能有效分析和比较多种参数方案。运用AMESim与ADAMS的联合仿真,可以有效的对设备的动态过程进行分析,根据交互分析产生的结果来评价设备的性能,为了更加真实的符合实际情况,理论分析用来完成检验产生的数值结果。这种虚拟产品开发方法与得出的结论将对设计人员提供一定帮助。 通过AMESim/ADAMS之间的接口,有两种方式实现联合仿真: (1)将模型从一个平台中输入到另一个平台中,采用单一的积分器进行计算。 (2)各个平台分别利用自己的积分器计算自己的模型,通过预先统一的通讯间隔进行信息交换。 2.软件环境要求 首先AMESim软件需要4.2级以上版本;ADAMS需要2003级以上版本(含A/Control模块)。其次必须要有Microsoft Visual C++ 编译器。 如果需要从ADAMS环境中使用接口,那么还强烈推荐Fortran编译器, 这样可以将AMESim 的模型编译成为ADAMS的子函数(Subroutine)。该接口支持的操作系统包括Windows、Sun、SGI和IBM。 3.AMESim与ADAMS接口操作 要成功使用接口, 必须在Windows中设置环境变量%AME_ADAMS_HOME%, 该环境变量的值为ADAMS的安装路径(例如C :\ADAMS2003。注意在ADAMS的安装路径中不能出现空格)。 如果需要从ADAMS环境中使用接口,那么还需要将dfvars.bat文件拷贝至AMESim的安装路径下。 3.1.在ADAMS中设置用于输入到AMESim的模型 在这种情况下,AMESim是主控软件,用户需要在AMESim中运行并控制ADAMS的仿真进程。从ADAMS输出到AMESim有两种方式: 1.共同仿真模式,AMESim通知ADAMS在给定的时间间隔提供它的输出。由ADAMS 自己来求解它的模型。 2.连续模式,AMESim从ADAMS输入完整的系统模型并将所有的方程集成起来在AMESim中求解,此时ADAMS只起到函数评估器的作用。 不管上述哪种模式,在ADAMS中的设置过程是一样的。 用户只需要在AMESim中选择是共同仿真方式或是连续模式输出方式。 3.1.1:创建/检查需要交换的变量。 在这个步骤中,用户需要检查一些状态变量的定义,使用这些状态变量作为两个软件间的交换变量。例如, 如果用在AMESim建立的液压作动器模型来驱动ADAMS中建立的机构模型, 那么这些变量就应该是力、位移以及速度等。事实上, AMESim需要根据位移和速度计算得到力。 ADAMS中的输出变量, 通常是速度和位移, 主要是使用ADAMS内部函数来定义;如AZ()用于角度测量,WZ()用于转速,DM()用于位移。

amesim simulink联合仿真

MATLAB/Simulink interface? Version 4.0 - March 2002 https://www.360docs.net/doc/c112603292.html, EMail:cadserv21@https://www.360docs.net/doc/c112603292.html, The document is for study only,if tort to your rights,please inform us,we will delete

Copyright ? IMAGINE S.A. 1995-2002 AMESim? is the registered trademark of IMAGINE S.A. AMESet? is the registered trademark of IMAGINE S.A. ADAMS? is a registered United States trademark of Mechanical Dynamics, Incorporated. ADAMS/Solver? and ADAMS/View? are trademarks of Mechanical Dynamics, Incorpo- rated. MATLAB and SIMULINK are registered trademarks of the Math Works, Inc. Netscape and Netscape Navigator are registered trademarks of Netscape Communications Corporation in the United States and other countries. Netscape’s logos and Netscape product and service names are also trademarks of Netscape Communications Corporation, which may be registered in other countries. PostScript is a trademark of Adobe Systems Inc. UNIX is a registered trademark in the United States and other countries exclusively licensed by X / Open Company Ltd. Windows, Windows NT, Windows 2000 and Windows XP are registered trademarks of the Microsoft Corporation. X windows is a trademark of the Massachusetts Institute of Technology. All other product names are trademarks or registered trademarks of their respective compa- nies. https://www.360docs.net/doc/c112603292.html, EMail:cadserv21@https://www.360docs.net/doc/c112603292.html, The document is for study only,if tort to your rights,please inform us,we will delete

注塑模流分析报告

华东交通大学 螺丝刀盒moldflow实训说明书 QZ 2015/11/30 课程:材料成型计算机仿真 学校:华东交通大学 学院:机电工程学院 专业:材料成型及控制工程 班级:2012模具2班 姓名:覃钊 学号:20120310040 指导老师:匡唐清

1、三维造型 利用UG8.0设计出模型如下图1.1、1.2表示 图1.1 实物图图1.2三维图 模型参数长宽高为143*85*19.5,主壁厚为1.5mm。二维图如图1.3 图1.3二维图 壁厚均匀,但在盖钩和挂孔处厚度和壁厚相差较大,体积收缩率在这两个地方应该会出现一些问题。主分型面在上表面,侧面有卡勾及圆孔,需要做侧抽芯。材料选用普通PP材料。 模型建好之后导出为IGES格式。

2、模型修复与简化 打开CAD Doctor后导入IGES模型,检查并修复,直到所有错误都为0,修复完 成之后将模型导出,格式为udm格式。 3、moldflow模流分析 3.1网格划分 (1)新建工程,输入工程名称,导入模型,在导入窗口选择双层面。 (2)网格划分,网格变长取壁厚的3倍,为4.5mm,合并容差默认为0.1,启用弦高控制0.1mm,立即划分网格,划分之后打开网格统计,看到网格的基本情况,不存在自由边和多个连通区域的问题后进行下一步。一般来说初始划分的网格纵横比都比较大,所以要进行修复。纵横比诊断结果如图3.1.1:最大纵横比达到了45.57。 图3.1.1初次纵横比诊断 3.2网格诊断与修复 点击【网格】——【网格修复向导】,前进到选择目标纵横比,输入6,点击修复。之后在进行手动修复,通过合并节点移动节点等方式进行,直到得到满意的结果。如下图

Adams与AMESim联合仿真实例

ADAMS与AMESim联合仿真 以AMESim作为主软件进行联合仿真。在ADAMS中建立曲柄滑块机构,将建立的模型导入AMESim中,用AMESim中的液压系统驱动曲柄转动,并绘制滑块的位移曲线。在创建模型前通过Settings—Interface Style—Classic将界面切换到经典模式。 1、在Adams中建立曲柄滑块机构,如图示: 2、通过Build—System Elements—New创建变量建立状态变量t,x,其中t代表力,x代表滑块的位移; t作为输入变量,默认为0;x作为输出变量,使用函数DZ(MARKER_12, MARKER_13, MARKER_13),MARKER_12是滑块上的一坐标系,MARKER_13

为ground与滑块建立移动副时产生的ground上的坐标系,其含义是测量MARKER_13到MARKER_12的距离,方向沿MARKER_13的Z轴方向。 3、通过Date Elements—Plant—Plant Input/Plant Output建立输入输出变量,并与状态变量连接起来 4、右击SFORCE_1将力与输入变量连接起来

5、通过Controls—Plant Export将ADAMS模型导出

6、在AMESim中建立液压系统如图示: 通过Modeling—Interface block—Import Adams model,选择工作目录中刚刚生成的inf文件; 完成如下图示的菜单

最终的液压系统如下图示

7、进行联合仿真,注意Print interval的值要小于MSC.Adams output step size 的值 进行联合仿真时如下图示:

ADAMS与AMESim联合仿真

首页>> 科技资讯>> 实用宝典AMESim与ADAMS联合仿真操作说明 摘要:物理系统可能由各种元件组成,例如气动的,机械的,液压的,电子的以及控制系统等,所有的元件协同工作。多学科领域系统和复杂多体系统之间的相互作用很难在单一的软件平台中来仿真。 解决的方案就是通过AMESim和专用的多体动力学软件ADAMS之间的接口,使得两者在仿真中协同工作。本文结合天线的简单实例介绍AMESim与ADAMS联合仿真的操作过程。 关键词:AMESim ADAMS 联合仿真 1.引言 AMESim(Advanced Modeling Environment for Simulation of engineering systems)软件是由法国IMAGINE公司于1995年推出的多学科复杂领域系统工程高级建模和仿真平台,该软件不要求用户具备完备的仿真专业知识,采用面向系统原理图建模的方法,便于工程技术人员掌握和使用。机构动力学分析软件ADAMS (automatic dynamic of mechanical system)集建模、求解和可视化技术于一体,能有效分析和比较多种参数方案。运用AMESim与ADAMS的联合仿真,可以有效的对设备的动态过程进行分析,根据交互分析产生的结果来评价设备的性能,为了更加真实的符合实际情况,理论分析用来完成检验产生的数值结果。这种虚拟产品开发方法与得出的结论将对设计人员提供一定帮助。

通过AMESim/ADAMS之间的接口,有两种方式实现联合仿真: (1)将模型从一个平台中输入到另一个平台中,采用单一的积分器进行计算。 (2)各个平台分别利用自己的积分器计算自己的模型,通过预先统一的通讯间隔进行信息交换。 2.软件环境要求 首先AMESim软件需要4.2级以上版本;ADAMS需要2003级以上版本(含A/Control 模块)。其次必须要有Microsoft Visual C++ 编译器。如果需要从ADAMS环境中使用接口,那么还强烈推荐Fortran编译器,这样可以将AMESim的模型编译成为ADAMS的子函数(Subroutine)。该接口支持的操作系统包括Windows、Sun、SGI和IBM。 3.AMESim与ADAMS接口操作 要成功使用接口,必须在Windows中设置环境变量%AME_ADAMS_HOME%,该环境变量的值为ADAMS的安装路径(例如C :\ADAMS2003。注意在ADAMS的安装路径中不能出现空格)。如果需要从ADAMS环境中使用接口,那么还需要将dfvars.bat文件拷贝至AMESim 的安装路径下。 3.1.在ADAMS中设置用于输入到AMESim的模型 在这种情况下,AMESim是主控软件,用户需要在AMESim中运行并控制ADAMS的仿真进程。从ADAMS输出到AMESim有两种方式: 1.共同仿真模式,AMESim通知ADAMS在给定的时间间隔提供它的输出。由ADAMS自己来求解它的模型。 2.连续模式,AMESim从ADAMS输入完整的系统模型并将所有的方程集成起来在AMESim 中求解,此时ADAMS只起到函数评估器的作用。

AMESim与MATLAB_Simulink联合仿真接口配置

AMESim—MATLAB(64位)联合仿真设置详细步骤说明:现以AMESimR12、MATLAB2014b为例说明,其他版本类似。 1、版本要求 2、辅助软件VS2013 若要使用 AMESim 与 Simulink 的接口,则需要在本机安装编译器,高版本软件需要高版本的编译器,这里以VS2013为例设置。一般推荐先安装VS编译器,然后安装 Matlab,最后安装 AMESim的顺序。 若后安装VS编译器,将VS编译器安装目录下如 D:\ Microsoft Visual Studio 12.0 \VC\bin 目录中的nmake.exe 文件和vcvars32.bat 以及D:\Microsoft Visual Studio 12.0\VC\bin\amd64下的vcvars64.bat(64位版本的MATLAB)文件拷贝至 AMESim 安装目录,如D:\AMESim\v1200下。 3、环境变量设置 定义Windows 系统环境变量: 1)选择“控制面板-系统”或者在“我的电脑”图标上点右键,选择“属性”; 2)在弹出的“系统属性”窗口中选择“高级”页,选择“环境变量”; 3)用户变量中添加 HOME D:\ MATLAB D:\MATLAB\R2014b Path D:\ Microsoft Visual Studio 12.0\Common7\Tools; D:\ Microsoft Visual Studio 12.0\VC\bin; D:\Program Files\MATLAB\R2014b\bin; D:\Program Files\MATLAB\R2014b\bin\win64

模流分析之CAE工程塑料数据解析


CAE工程塑料参数解析
2012年3月

目录
? CAE概述 ? CAE参数需求 ? CAE参数详解
? 导热系数 ? 比热容 ? 转化温度和弹出温度 ? 熔体流动速率 ? 剪切粘度 ? 密度 ? PVT曲线 ? 拉伸性能 ? 剪切模量 ? 收缩率-CRIMS参数 ? 线性膨胀系数

部分CAE 软件及用途
? 塑料成型仿真 以MOLDFLOW为代表。塑料成型仿真工具,能够帮助您验证和优化塑料 零件、注塑模具和注塑成型流程。该软件能够为设计人员、模具制作人员、 工程师提供指导,通过仿真设置和结果阐明来展示壁厚、浇口位置、材料、 几何形状变化如何影响可制造性。
? 模拟碰撞 本讲义内容是关于工程塑料制件:汽车、高速铁路模拟碰撞,手机、电动 工具跌落的模拟。 I-DEAS,LS-DYNA,ABAQUS,Pam Crash,Madymo等 用计算机辅助求解分析复杂工程和产品的结构力学性能,以及优化结构性 能等。而CAE软件可作静态结构分析,动态分析;研究线性、非线性问题; 分析结构(固体)、流体、电磁等。

CAE作用
CAD\CAE


更 字
产品设计





不 可 更实 改体 阶 段
材料选定
N
软件模拟
Y
模具制造
零件生产 装配测试
材料参数
缩短开发时间,减少开发费用,提高产品质量

AMESim与ADAMS联合仿真步骤及相关注意事项

AMESim与ADAMS联合仿真 1、安装软件 最好的安装顺序:VS , Adams,Amesim 安装路径不要有中文和空格及特殊字符 2、环境变量设置 AME_ADAMS_HOME,指向Adams安装目录,如:D:\MSC.Software\MD_Adams\R3 ADAMS_CONTROLS_WTIME=20 3、安装完成后,确认在AMESim安装目录下(如:AMESim/v1300)已包含如下文件: nmake.exe vcvars32.bat 如果没有,从VS安装目录拷贝过来(C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin)。 4、将adams库加入到AMESim路径中:

五、如果提示MSSDK问题,安装GRMSDKX_EN_DVD.iso。也就是安装Windows SDK7.1 如果安装时报错,可按照方法:卸载比Microsoft Visual C++ 2010 x86 Redistributable - 10.0.30319 以及Microsoft Visual C++ 2010 x64 Redistributable - 10.0.30319更高的版本。 如果还出错,在安装时不要选择安装VC-Compiler,其它选项默认即可。 如果卸载了上面的两个组件,则需要安装VBVCRedist中的两个补丁,只需要选择两个卸载的补丁即可。 六、如果提示AsUtility_imp.lib的link错误,在C盘中搜索,找到该文件,再放到AMESim 模型所在工作目录。(一般不需要此项。) 七、64位操作系统中:AMESim中选择Microsoft Visual C++编译器,Subplatform type选择win64。如下图

基于MOLDFLOW的玩具车外壳成型工艺分析开题报告

基于MOLDFLOW的玩具车外壳成型工艺分析 学生:安福松 指导老师:张园 教学单位:三峡大学科技学院 1、课题的来源 本课题来源于工业生产实际,面向玩具车外壳设计和基于moldflow注塑成型分析过程。 2、课题研究的意义 本课题的性质是对比较简单的塑料件采用MOLDFLOW软件进行成型工艺仿真。其主要的内容是已知玩具车外壳及其相关技术要求, 采用MOLDFLOW软件对整个注塑成型过程进行模拟分析,准确预测熔体的填充、保压、冷却情况,以及制品中的应力分布、制品的收缩和翘曲变形等情况从而制定其最佳成型工艺方案。本课题以实际用的塑料件为研究对象,可以培养学生对有限元软件的了解,能通过注塑模拟软件对注塑成型过程进行模拟分析的能力。通过计算机模拟仿真技术可以减少试模修模次数,提高制品质量和降低成本等,对企业降低成本,提高效率有着重大的技术和经济意义。 本塑料产品从设计到成型生产是一个十分复杂的过程,它包括塑料制品设计浇注系统优化分析、冷却系统优化分析,注塑工艺参数优化等几个主要方面,它是一个设计、修改、再设计的反复迭代、不断优化的过程。传统的手工设计、制造已越来越难以满足市场激烈竞争的需要。计算机技术的运用,正在各方面取代传统的手工设计方式,并取得了显著的经济效益 3、注射成型的发展概况及未来发展趋势 3.1 注注射成型的发展概况 注塑成型工艺是塑料制品加工中非常重要技术类型,大多数行业的塑料件加工均需要注塑成型工艺来完成。所涉及的行业及领域甚广,如食品、电子电器、仪表仪器、汽摩、日用、化工、农业、运输等行业都可使用到注塑成型工艺制造的塑料元件。 注塑成型是塑料制品成型的一种重要方法。几乎所有的热塑性塑料、多种热固性塑料和橡胶都可用此法成型。在中国,目前注塑成型制品约占塑料制品总量的30%左右,注塑机占塑料机械总产值的38%左右。注塑成型可制造各种形状、尺寸、精度、性能要求的制品。注塑制品包括小到几克甚至几毫克的各种仪表小齿轮、微电子元件、医疗微器械等,大到几千克的电视机、洗衣机外壳、汽车用塑料件,甚至几万克的制品。 3.2 注射成型的未来发展趋势 近年来,工业领域的迅速发展,给注塑成型技术的发展提供了强大的推动力,使注塑成型技术在发展速度上、水平上都得到了迅猛的发展,特别是对于注塑成型新技术的发展更是起到了强大的推动作用。注塑成型新技术发展动向主要集中在:新型气辅注塑成型技术、多组分注塑成型新技术、微孔发泡注塑成型技术、微注塑成型技术等方面。

相关文档
最新文档