西格玛向量™

标签存档: VHDL

轻量级VHDL编译仿真工具–Symphon.Simili

Author:西格玛   IN:IT悟语, 硬件与嵌入式   标签:    评论: 0

  

因为一些缘故开始学习VHDL——一种硬件仿真语言,与VerilogHDL一起横行霸道于FPGA开发领域,至于两种语言的区别就不多叙了,其实个人比较倾向于Verilog (因为与C很像 学起来方便)
   关于VHDL的介绍:VHDL 维基百科
   之前VHDL使用中最常用的开发工具就是Xilinx ISE Design Suite 了,Xilinx是FPGA技术垄断巨头,开发工具必然很强大,但是它的体积和系统负荷是在是太高了,完整安装基本上要8G左右,而运行时一般的电脑是会卡的不得了的。
   因此 对于仅仅研究VHDL语言和仿真 不需要烧写分析等高级功能的人来说,一个轻量级的开发工具是很必要的。
   经过一番搜索 个人认为Symphon.Simili这款工具是不错的选择。
   工具的官方网站:http://www.symphonyeda.com/
   这里不提供破解下载,请自行搜索……..(这个可以有….XXXXX…..)
   下载后安装,会要求注册,否则只能使用初级的工具,不能仿真,不过可以编译:
   注册(或者是破解)之后,就可以使用professional的版本了 工具名称为sonata。

 轻量级VHDL编译仿真工具  Symphon.Simili

 //———————————————————————–//
功能略解:
 1、 工程建立:
  整个工具基本上与VS6.0的思想相近,先建立文件,随后再将其加入工程项目,这样多少有点儿混乱,但是新文件的建立比较自由。这里以一个简单的与门代码为例 介绍“Add”这个工程的建立:

 

 轻量级VHDL编译仿真工具  Symphon.Simili

建立Workspace : File-》New Workspace  填写工作区项目名称与存储路径:

 轻量级VHDL编译仿真工具  Symphon.Simili

OK 工程区建立完毕

然后点击File—》New 建立一个空文件 用于书写代码
保存该文件为 Add.vhd  (这里对后缀名有严格要求 系统根据它来判断文件类型 下面的选单也要相应选择)
这个文件就是VHDL源代码了。 轻量级VHDL编译仿真工具  Symphon.Simili

 轻量级VHDL编译仿真工具  Symphon.Simili
 轻量级VHDL编译仿真工具  Symphon.Simili

点击 Project-》Add Files  选择你刚才创建的文件 将它添加到该工程中

到此 工程的初步设置就完成了。

2、 书写代码并编译调试

 在VHDL代码的书写方面与其他的编译工具是一样的,语法上就不详细说了 这里给出我瞎写的一个实例以说明后续过程:
 
———————————————————————————-
– Company:        STC    
– Engineer:       Sigmax6

– Create Date:    08:42:51 07/07/2009
– Design Name:
– Module Name:    STC_ADD – Behavioral
– Project Name:
– Target Devices:
– Tool versions:
– Description:

– Dependencies:

– Revision:
– Revision 0.01 – File Created
– Additional Comments:

———————————————————————————-
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
—- 引用一些库
—- Uncomment the following library declaration if instantiating
—- any Xilinx primitives in this code.
–library UNISIM;
–use UNISIM.VComponents.all;

entity STC_AND2 is
    Port ( A : in  STD_LOGIC;
           B : in  STD_LOGIC;
           C : out  STD_LOGIC);
end STC_AND2;
—- 结构声明  一个二输入与门 A B 输入 C 输出

architecture Behavioral of STC_AND2 is

begin
 
  C<=A and B ;

end Behavioral;
—- 行为声明 描述与门功能 (A B 与的结果输送给C)
———————————————————————————–

代码书写并保存之后,这个“部件”就已经随着文件进入你建立的工程了,
点击工具栏上的Compile=》Compile file ‘你的文件名.vhd(l)’ 就开始编译你的文件了
编译正常会出现如下提示:
% vhdlp -ini test.sws -work test -s -maxerrors 10 AND_OR/add.vhd
————————————————————
Begin compilation session, Library = test, Dir=E:/Files/VHDL Project
Finished compilation session
%
说明编译成功 如果你的代码有错误,编译器会提示警告和报错:
Error: CSVHDL0002: AND_ORadd.vhd: (line 34): syntax error, unexpected END, expecting ‘;’
Error: CSVHDL0265: AND_OR/add.vhd: Skipping compilation of 0 file(s) due to errors compiling file ‘AND_OR/add.vhd’
Errors: 2, Warnings: 0
%
根据提示更改错误,重新编译即可。

3、 信号输入与功能仿真
之前的工作已经将功能实现完成了,重要的其实是检验其功能是否有偏差,也就是仿真检验。
与Xilinx ISE有专门的仿真工具,提供信号源,甚至能将器件细化显示相比,这个工具就低级的变态了(没办法,小工具)它没有自带的信号输出功能,只能通过在器件入口添加代码操控的信号源才可以正常的进行测试。

这里我们同上方式建立一个文件: testbeach.vhdl 用来在端口处添加输入信号。
———————————————————————————-
– Company:        STC    
– Engineer:       Sigmax6

– Create Date:    21:15:10 21/07/2009
– Design Name:
– Module Name:    testbeach – Behavioral
– Project Name:
– Target Devices:
– Tool versions:
– Description:

– Dependencies:

– Revision:
– Revision 0.01 – File Created
– Additional Comments:

———————————————————————————-
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity tbh is
end tbh;

architecture beh of tbh is
  signal a: std_logic;
  signal b: std_logic;
  signal c: std_logic;
 
  component stc_and2
   port ( A: in std_logic;
          B: in std_logic;
          C: out std_logic);
    end component stc_and2;
—- 一个空结构器件 只有端口 建立三个信号用于输入输出
   begin
     andgate:stc_and2
       port map ( a=>A ,
                 b=>B,
                 c=>C);
     tb: process
     begin
&nbs
p;      a<=’0′;b<=’0′;

       wait for 10 ns;
       a<=’0′;b<=’1′;
       wait for 10 ns;
       a<=’1′;b<=’0′;
       wait for 10 ns;
       a<=’1′;b<=’1′;
       wait for 10 ns;
       assert false
       report “End of TestBench”
       severity error;
      end process tb;
   end architecture beh;
  
  —-给器件输入相应信号 并定时更改信号 用于测试
   configuration tb_c of tbh is
   for beh
   end for;
   end configuration tb_c;
 —-配置信息文件段 tb_c  用于工具使用此文件进行测试
———————————————————————————

同样对此文件进行编译 这样就可以使用这个文件进行测试

开始仿真之前需要选择“顶层文件” 便于工具选择用哪一个文件来作为器件分析的入口(包在最外面的信息)
这里我们必须选择配置信息 tb_c 作为我们的顶层文件
 轻量级VHDL编译仿真工具  Symphon.Simili

 轻量级VHDL编译仿真工具  Symphon.Simili

 轻量级VHDL编译仿真工具  Symphon.Simili
 选择好之后 点击Go 或Ctrl+F5  就开始了仿真
 出现仿真界面后 将信号A B C 拖拽到仿真信号窗口

 轻量级VHDL编译仿真工具  Symphon.Simili

点击开始按钮 就开始仿真了

 轻量级VHDL编译仿真工具  Symphon.Simili

 可以看出 这个与门的工作正常… O(∩_∩)O~

到此 这个工具的大部分功能就介绍完了
———————————————————————————————

08-03
2009
loading...