|
关于怎样完成定点仿真以及模块输出结果截取的原理和方法将在下章中展开详细关系讨论。此外,利用MATLAB对FPGA设计进行功能仿真是比较关键的,下面介绍如何将MATLAB和ModelSim结合起来使用。
首先,在MATLAB中产生仿真所需的输入信号,以十六进制的形式存放在数据文件中,通常放在后缀为.txt的文本文件中;其次在ModelSim中用Verilog编写仿真测试文件,并通过系统函数$readmemh将上述仿真数据文件中的测试向量读入,在ModelSim中做功能仿真和时序仿真,并调用$fopen函数打开另外一个数据文件,用$fdisplay函数将仿真结果写入;再次,在MATLAB中将ModelSim仿真输出数据文件中的数据读入一个数组中,可以作图分析或者利用统计手段来分析。此外,还可以将ModelSim的仿真输出与MATLAB的浮点性能作对比,来验证设计的性能。这样比利用其他方式要方便、直观,并且具有更高的正确性。
下面举例介绍Verilog语言中文件输入/输出函数的使用方法。
1)系统函数$fopen用于打开一个文件,并返回一个整数的文件指针。然后,$fdisplay就可以使用这个文件指针在文件中写入信息。写完后,用$fclose关闭文件。
其语法格式为:
integer <file_desc>;
<file_desc> = $fopen("<file_name>", "<file_mode>");
$fwrite(<file_desc>, "<string>", variables);
$fclose(<file_desc>);
例如:integer W_file; //定义文件指针
W_file = $fopen("W_file.txt");
$fdisplay (W_file, "@%h\n%h", a, b);
$fclose (W_file);
以上语句将“a”和“b”分别显示在“@%h\n%h”中的两个%h位置,并写入Write_out_file指针所指的文件W_file.txt中。
2)读文件操作通过$readmemh和$readmemb来完成,分别对应的数据文件为16进制和二进制。其语法格式为:
reg [<memory_width>] <reg_name> [<memory_depth>];
$readmemh ("<file_name>", <reg_name>);
例如:reg [15:0] c [0:15];
$readmemh (“R_file.txt”, c);
上例就是将R_file中的数据读入数组c中,然后就可以直接使用这些数据了。其中数据文件的格式为:
@2c
45
其中,@2c表示地址,为16进制数,45表示该地址的数据。
2. System Generator工具简介
System Generator工具由MathWorks 与 Xilinx 合作开发而成,DSP 设计人员可使用 MATLAB 和 Simulink 工具在 FPGA 内进行开发和仿真来完善 DSP 设计。新型8.2版本System Generator使DSP系统和算法开发商不用写VHDL或Verilog编程,只需要利用MATLAB 及 Simulink 来开发他们的设计。一旦浮点建模完成,设计工程师采用Xilinx的比特及周期精确工具箱对其进行量化并自动生成HDL/RTL、用于Xilinx FPGA的网表或完整的比特流,包括新的Virtex-5 LX 和 LXT器件。最后,设计工程师在Simulink环境内采用高带宽硬件环境来验证并调试实际FPGA上的设计。
System Generator的关键特性主要包括:
• DSP建模。利用包含信号处理(如FIR滤波器、FFT)、纠错(如Viterbi解码器、Reed-Solomon编码器/解码器)、算法、存储器(如FIFO、RAM、ROM)及数字逻辑功能的Xilinx模块集,在Simulink内构建和调试高性能DSP系统。 Xilinx模块集提供的模块可以使您导入MATLAB功能模块(如创建控制电路)及HDL模块(System Generator为Mentor Graphics的ModelSim和Xilinx ISE仿真器提供了HDL协仿真接口)。
• Simulink 的 VHDL 或 Verilog 的自动代码生成。从 Xilinx 模块集实现行为(RTL)生成与对象明确的 Xilinx IP 核。
• 硬件协同仿真。创建“FPGA 在环路(FPGA-in-the-loop)”仿真对象是代码生成选项,允许您验证工作硬件并加速 Simulink 与 MATLAB 中的仿真。System Generator 支持以太网(10/100/千兆位)、PCI、Cardbus 及硬件平台与 Simulink 之间的 JTAG 通信。
• 嵌入式系统的硬件/软件协设计。为 Xilinx MicroBlaze™ 32 位 RISC 处理器构建和调试 DSP 协处理器。System Generator 提供了 HW/SW 接口的共享存储器提取功能,自动生成 DSP 协处理器、总线接口逻辑、软件驱动器及协处理器使用方面的软件技术文档。
一个典型的System Generator开发实例如图4-107所示,图中形如Xilinx公司标志的图标就是System Generator,只需要双击图标,就可以将浮点算法自动转化成FPGA实现。Xilinx公司网站上提供了System Generator完整的使用手册和丰富的实例,读者如有兴趣,可自行阅读。
图4-107 一个典型的System Generator开发实例
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?我要注册
x
|