轻量级VHDL编译仿真工具–Symphon.Simili
Author:西格玛 IN:IT悟语, 硬件与嵌入式 标签: VHDL 评论: 0 因为一些缘故开始学习VHDL——一种硬件仿真语言,与VerilogHDL一起横行霸道于FPGA开发领域,至于两种语言的区别就不多叙了,其实个人比较倾向于Verilog (因为与C很像 学起来方便) //———————————————————————–// 建立Workspace : File-》New Workspace 填写工作区项目名称与存储路径: OK 工程区建立完毕 然后点击File—》New 建立一个空文件 用于书写代码 点击 Project-》Add Files 选择你刚才创建的文件 将它添加到该工程中 到此 工程的初步设置就完成了。 2、 书写代码并编译调试 在VHDL代码的书写方面与其他的编译工具是一样的,语法上就不详细说了 这里给出我瞎写的一个实例以说明后续过程: entity STC_AND2 is architecture Behavioral of STC_AND2 is 代码书写并保存之后,这个“部件”就已经随着文件进入你建立的工程了, 3、 信号输入与功能仿真 这里我们同上方式建立一个文件: testbeach.vhdl 用来在端口处添加输入信号。 同样对此文件进行编译 这样就可以使用这个文件进行测试 点击开始按钮 就开始仿真了 可以看出 这个与门的工作正常… O(∩_∩)O~ 到此 这个工具的大部分功能就介绍完了
关于VHDL的介绍:VHDL 维基百科
之前VHDL使用中最常用的开发工具就是Xilinx ISE Design Suite 了,Xilinx是FPGA技术垄断巨头,开发工具必然很强大,但是它的体积和系统负荷是在是太高了,完整安装基本上要8G左右,而运行时一般的电脑是会卡的不得了的。
因此 对于仅仅研究VHDL语言和仿真 不需要烧写分析等高级功能的人来说,一个轻量级的开发工具是很必要的。
经过一番搜索 个人认为Symphon.Simili这款工具是不错的选择。
工具的官方网站:http://www.symphonyeda.com/
这里不提供破解下载,请自行搜索……..(这个可以有….XXXXX…..)
下载后安装,会要求注册,否则只能使用初级的工具,不能仿真,不过可以编译:
注册(或者是破解)之后,就可以使用professional的版本了 工具名称为sonata。
功能略解:
1、 工程建立:
整个工具基本上与VS6.0的思想相近,先建立文件,随后再将其加入工程项目,这样多少有点儿混乱,但是新文件的建立比较自由。这里以一个简单的与门代码为例 介绍“Add”这个工程的建立:
保存该文件为 Add.vhd (这里对后缀名有严格要求 系统根据它来判断文件类型 下面的选单也要相应选择)
这个文件就是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;
Port ( A : in STD_LOGIC;
B : in STD_LOGIC;
C : out STD_LOGIC);
end STC_AND2;
—- 结构声明 一个二输入与门 A B 输入 C 输出
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
%
根据提示更改错误,重新编译即可。
之前的工作已经将功能实现完成了,重要的其实是检验其功能是否有偏差,也就是仿真检验。
与Xilinx ISE有专门的仿真工具,提供信号源,甚至能将器件细化显示相比,这个工具就低级的变态了(没办法,小工具)它没有自带的信号输出功能,只能通过在器件入口添加代码操控的信号源才可以正常的进行测试。
———————————————————————————-
– 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 作为我们的顶层文件
选择好之后 点击Go 或Ctrl+F5 就开始了仿真
出现仿真界面后 将信号A B C 拖拽到仿真信号窗口
———————————————————————————————
