引言
在实际开发中,在写完一个module之后,很少会直接下板测试,更多是选择先进行仿真,在仿真之前,就要先构建仿真环境。
本小节就来构建O_board的全系统仿真环境,并通过一个简单的例子来进行验证。
1,RTL的修改
我们之前曾加构建过基于ML501的仿真环境,对于O_board来说,大体步骤是相似的。
所以在这之前,请先参考:http://blog.csdn.net/rill_zhen/article/details/16880801
对于O_board,在对仿真工程综合过程中,主要有两类问题:
a,提示模块接口数量与例化时不匹配。
解决方法:仔细对比模块端口,将多余的信号去掉。
b,提示某些信号重复定义,或者在本区域内已经定义。原因是在定义信号的前面,已经有使用本信号的代码。
解决方法:将信号定义提前,或者将信号定义去掉(modelsim会自动定义)。建议采用第一种方式。
需要注意的是SDRAM的例化,需要修改clk,cke,cs_n,三个信号。
2,验证软件的编写
由于是全系统仿真,除了要综合出design以及testbench之外,我们还需要编写用于仿真时运行的软件。步骤如下:
a,创建软件仿真目录和文件
cd ~/soc-design/orpsocv2/boards/altera/ordb2a-ep4ce22/sw/tests
mkdir uart
cd uart
mkdir sim
cd sim
touch uart.c
cp ../../usbhostslave/sim/Makefile .
b,编写仿真软件程序
编辑uart.c,如下所示:
/*
* file name : uart.c
* function : uart controller test
* date : 2014-03-13
* author : Rill
*/
#include "cpu-utils.h"
#include "board.h"
#in