第三部分 最简SOC系统搭建
2.1 最简系统搭建
仅需要 M3 CPU 内核,总线解码模块,RAM模块,ROM模块,简单的外设模块,在配合软件驱动,一个最简的M3 SOC 系统即可运行。这里演示如何在资源有限的硬件平台上,仅利用其中的CPU部分,搭建最简单的系统。在\m3designstart\logical\cortexm3integration_ds_obs\verilog文件夹中有两个VerilogHDL文件:cortexm3ds_logic.v和CORTEXM3INTEGRATIONDS.v。其中前者是经过扰乱的Cortex-M3CPU代码,后者是对外的接口文件。
通过使用vivado的块图设计(Blcok design)工具,预先设计好各个子模块和接口连接关系后,可以以图形化的方式来快捷方便地搭建所需的定制化SOC系统。
2.2 块图设计
我们团队利用CMSOK中提供的资源,以及自己编写所需的模块,设计了如下的子IP模块,用于在块图设计(Blcok design)中使用,各个子模块的功能和接口在下面详细介绍,用于搭建的最简的SOC系统如下所示,利用块图设计,不用一分钟便可以搭建完成,十分方便快捷。
图形化界面搭建完成后,使用vivado自动化工具,即可自动完成模块例化,端口连接的工作。 由于没有采用Xilinx官方IP,故生成的代码是纯Verilog代码,可以任意移植到任何一个FPGA平台上。 利用vivado的块图设计,大大减少了在SOC总线连接时使用的时间,由于采用标准化总线连接,也大大降低了由于失误而造成的总线连接错误。
在上面的最简系统中,外设模块是一个LED灯和按键(KEY或SW)的驱动模块。位宽均设置为12位,CPU通过AHB_lite总线,来读取按键的值,向LED写入数据。 该模块挂载在了地址为 0x4100_0000 ---- 0x410F_FFFF的地址空间。LED和K