实际验证
下面将对所搭建的SOC系统进行验证,通过对系统翻译、编译、综合、分配管脚、生成下载文件,最后将下载文件烧写到FPGA片中。为验证该系统的准确性,本设计采用两种方法对其进行测试验证,详细过程见3.1和3.2部分。
3.1 搭建的系统对片外Flash的擦写操作
本测试主要是在已经搭建好的SOC系统的基础上,在外部存储器控制器接口连接外部存储器Flash,通过能否对Flash进行正常的擦写操作来验证系统的准确性,测试选用的片外Flash芯片型号Numonyx公司是28F640J3D,它是64M的16位只读存储器,分配的基地址是Ox00000000,由于该芯片16位模式的访问特性,地址线0位拉低不予链接,其余地址线管脚依次连接到顶层外部寄存器控制器的地址端口。
FS2是一款集合了大量指令和可用软件、用以调试基于ARM的SOC系统内核的工具,利用该工具对片外Flash进行配置和擦写操作,来验证系统的准确性。测试首先对片外Flash进行配置,进而对指定存储空间进行擦除操作,然后对该存储空间进行写操作,最后观察此存储空间中的数据,具体过程如图4所示。
在图4中显示的是FS2工具的用户界面,设计中用到的八条指令,分别是:1》、2》、3》……8》,其中指令1》、2》用来配置片外Flash芯片;指令3》用来选择将要擦写的存储空间,由图中可知,本设计中要进行的读写操作 的存储空间是Ox00000000-0x003FFFFF;指令4》用来对Flash指定的存储空间进行擦除操作;指令5》用来把已经准备好的二进制文件写到上述存储空间中,设计中使用的二进制文件名是QUICK.HEX;指令6》是用来显示指定存储空间中的内容,从图中可看出,写到存储空间Ox00000000-0x0000003F的内容是18、FO、9F……、12、E3;指令7》执行对上述存储空间写入的数据的擦除操作;指令8》显示上述存储单元擦除后的内容。

图4 片外Flash的擦写演示过程
通过对上述过程的分析可知,所搭建的SOC系统可准确实现片外Flash的擦写操作,进而说明了该系统的准确性。
3.2 搭建的系统对外设接口的读写操作
本测试在遵循ARM7先进外围总线APB的读写时序的前提下,定制用户逻辑外设PIO,通过该系统对PIO接口进行读写操作来进一步验证设计的准确,验证中的用到的APB总线的读写时序如图5。

图5 APB总线的读写时序
下面将主要遵循系统中先进的外围总线APB的读写时序,首先采用硬件描述语言和C代码,定制八位的用户逻辑外设PIO,然后将PIO的输入端口接到开关Switch0一Switch7,输出端口接到八个发光二极管Led0一Led7,通过软硬件调试,使八位开关的输入电平显示到八个发光二极管上,以此来进一步验证设计中搭建的SOC系统的准确,针对上述过程及要求,为了更直观地展示验证结果,制作了简单的实验板,当开关键在高电平时,发光二极管变亮,否则,发光二极管不亮。其中定制用户逻辑外设的主要步骤如下:
1)规划元件的硬件功能;
2)使用硬件描述来描述硬件逻辑;
3)单独验证元件的硬件功能;
4)描述寄存器的C头文件来为软件定义硬件寄存器映像;
5)将元件集成到ARM7系统中,使用ARM7来测试寄存器的访问是否正确,并为该元件编写软件驱动;
6)执行系统级的验证等。
图6是在Aetel公司的调试软件Sofleonsole和实验板上的实际调试结果。

图6 调试结果
由图6显示的调试结果可知,八位开关Switeh0-Switeh7的输入分别是11001011和11100101,这个和八个发光二极管Led0-Led7的输出结果一致,由此进一步验证了设计的准确性。
实际验证
下面将对所搭建的SOC系统进行验证,通过对系统翻译、编译、综合、分配管脚、生成下载文件,最后将下载文件烧写到FPGA片中。为验证该系统的准确性,本设计采用两种方法对其进行测试验证,详细过程见3.1和3.2部分。
3.1 搭建的系统对片外Flash的擦写操作
本测试主要是在已经搭建好的SOC系统的基础上,在外部存储器控制器接口连接外部存储器Flash,通过能否对Flash进行正常的擦写操作来验证系统的准确性,测试选用的片外Flash芯片型号Numonyx公司是28F640J3D,它是64M的16位只读存储器,分配的基地址是Ox00000000,由于该芯片16位模式的访问特性,地址线0位拉低不予链接,其余地址线管脚依次连接到顶层外部寄存器控制器的地址端口。
FS2是一款集合了大量指令和可用软件、用以调试基于ARM的SOC系统内核的工具,利用该工具对片外Flash进行配置和擦写操作,来验证系统的准确性。测试首先对片外Flash进行配置,进而对指定存储空间进行擦除操作,然后对该存储空间进行写操作,最后观察此存储空间中的数据,具体过程如图4所示。
在图4中显示的是FS2工具的用户界面,设计中用到的八条指令,分别是:1》、2》、3》……8》,其中指令1》、2》用来配置片外Flash芯片;指令3》用来选择将要擦写的存储空间,由图中可知,本设计中要进行的读写操作 的存储空间是Ox00000000-0x003FFFFF;指令4》用来对Flash指定的存储空间进行擦除操作;指令5》用来把已经准备好的二进制文件写到上述存储空间中,设计中使用的二进制文件名是QUICK.HEX;指令6》是用来显示指定存储空间中的内容,从图中可看出,写到存储空间Ox00000000-0x0000003F的内容是18、FO、9F……、12、E3;指令7》执行对上述存储空间写入的数据的擦除操作;指令8》显示上述存储单元擦除后的内容。

图4 片外Flash的擦写演示过程
通过对上述过程的分析可知,所搭建的SOC系统可准确实现片外Flash的擦写操作,进而说明了该系统的准确性。
3.2 搭建的系统对外设接口的读写操作
本测试在遵循ARM7先进外围总线APB的读写时序的前提下,定制用户逻辑外设PIO,通过该系统对PIO接口进行读写操作来进一步验证设计的准确,验证中的用到的APB总线的读写时序如图5。

图5 APB总线的读写时序
下面将主要遵循系统中先进的外围总线APB的读写时序,首先采用硬件描述语言和C代码,定制八位的用户逻辑外设PIO,然后将PIO的输入端口接到开关Switch0一Switch7,输出端口接到八个发光二极管Led0一Led7,通过软硬件调试,使八位开关的输入电平显示到八个发光二极管上,以此来进一步验证设计中搭建的SOC系统的准确,针对上述过程及要求,为了更直观地展示验证结果,制作了简单的实验板,当开关键在高电平时,发光二极管变亮,否则,发光二极管不亮。其中定制用户逻辑外设的主要步骤如下:
1)规划元件的硬件功能;
2)使用硬件描述来描述硬件逻辑;
3)单独验证元件的硬件功能;
4)描述寄存器的C头文件来为软件定义硬件寄存器映像;
5)将元件集成到ARM7系统中,使用ARM7来测试寄存器的访问是否正确,并为该元件编写软件驱动;
6)执行系统级的验证等。
图6是在Aetel公司的调试软件Sofleonsole和实验板上的实际调试结果。

图6 调试结果
由图6显示的调试结果可知,八位开关Switeh0-Switeh7的输入分别是11001011和11100101,这个和八个发光二极管Led0-Led7的输出结果一致,由此进一步验证了设计的准确性。
举报