modelsim的工程文件为.mpf文件,可以理解为modulesim project file。首先,打开modelsim软件:如图1所示,从菜单项选择new->project
之后出现如图所示的对话框,project Name里需要填写项目名称,project Location是新建工程的路径,Default Library Name里一般默认库文件为work,这个一般不要修改,而copy settings from选项是工程的modelsim初始化文件从相应的库中拷贝出(即为modulsim.ini文件),这个选项一般也默认使用。这里,我们设计工程为一个计数器,名为count5。文件放置的位置,我们预先建立一个文件夹,名称也叫count5,如图2所示。
图2
最后点击ok键。点击之后,出现对话框,Create New File表示新建一个文件,Add Existing File表示添加一个已经存在的文件,create Simulation表示新建一个仿真文件。这里,我们新建一个文件,如图3所示,file Name中输入新建的文件名,我们输入count5,Add file as type表示新建文件的类型,我们设计使用VHDL语言,Folder一般默认设置可。
图3
如果还需要继续新建文件名,可以继续点击。这里,我们先建立一个文件,以后如果需要还可以再加。这时,可以看到,出现了一个project选项页,选项页中出现一个文件,名为count5,类型为vhdl,即为我们刚刚所新建的文件,status一栏出现的问号表示此文件还没有被编译过。
双击count5文件,出现count5文件内容,当然目前它还是空的,编辑此文件,编写代码如下:
1 library ieee; 2 use ieee.std_logic_1164.all; 3 use ieee.std_logic_unsigned.all; 4 use ieee.std_logic_arith.all; 5 use std.textio.all; 6 use ieee.std_logic_textio.all; 7 8 entity count5 is 9 port(10 rst_n : in std_logic;11 clk : in std_logic;12 cnt : out std_logic_vector(3 downto 0)13 );14 end count5;15 16 architecture behav of count5 is17 signal cnt_in : std_logic_vector(3 downto 0);18 file count_save :text open write_mode is "data/count_save.txt";19 file rf_data : text is in "data/rf.txt";20 begin21 22 cnt<= cnt_in;23 24 process(rst_n,clk)25 variable data_line : line;26 begin27 if rst_n = '0' then28 cnt_in <= (others => '0');29 elsif clk'event and clk = '1' then30 cnt_in <= cnt_in + 1;31 write(data_line,conv_integer(cnt_in));32 writeline(count_save,data_line);33 end if;34 end process; 35 36 end behav;
右击count5文件,在弹出的菜单中选择compile,表示要编译此文件。在compile 选项下,还有很多子选项,compile selected表示只编译选中的文件,compile all表示将工程中的所有文件都进行编译编译完后,文件的status变成一个对号,表示此文件编译正确。在modelsim软件的最下方,会有一个transcrip类似于控制台,可以输入命令行。