本人调试SOPC,基于Cyclone EP1C6Q208C.
一步一步坐下来,
但可以下载进去,但IDE 条C 程序时老出错,
第三部分SOPC系统设计
3.1设计准备
1、 启动QuartusII7.1,利用菜单选择File =>New Project Wizard,单击Next,按提示输入工程存放路径,工程名,设计层文名,1
图3-1 新建工程Nios32
2、 选定目标器件。
选择器件为Family选Cyclone,Available device选EP1CQ240C8,单击OK.
图3-2 确定配置器件EP1C6
3、 开始建立NiosII嵌入式系统。
由选择QuartusII的菜单Tools => SOPC Builder,即弹出一个如图3-3的窗口,在窗口中键如系统名,如:Nios2,并选择目标文件的硬件描述语言表达方式,Verilog或VHDL。本例中选择VHDL,点击OK。
此后将弹出空白的SOPC builder 组件窗。
3.3加入组件
1、加入NiosII CPU
Core。首先是从左边栏中选择加入CPU核Nios II Processor。选择SOPC Builder的组件选择栏中的“System Components ”→“Nios II Processoror”,点击鼠标右键,选择“Add New NiosII Processor…”,打开添加NiosII对话框(图3-4)。由图3-4可见,NiosII CPU核有4种结构可以选择,有不同的配置、功能和资源耗用情况,在此点击选择Nios II/s,再点击Next,进入窗口Caches选择窗,确认设定instruction cache size为4 kbytes ,再点击JTAG Debug Module栏,选择Select the JTAG Target Connection Download Level 3(图3-5)
,最后点击Finish按钮完成NiosII CPU Core的添加过程,随后SOPC Builder的界面就会改变(图3-6)。在图1-8中可以看到,niosII作为一个CPU Core组件已经加入SOPC系统。更改组件名称的方法是选中“CPU_
图3-4 Nios II/s CPU模式
图3-5 选择JTAG的调试模式
注意,加入组件的更改和取名很重要,许多组件名此系统的工作软件,C程序中都会出现,而且大小写有关系。
图3-6 加入了NiosII的SOPC窗口
2、加入JTAG UART 。从左侧组件Interface Protocols栏下的Serial中选择的JTAG UART加入,接受弹出窗口中的所有默认设置(图1-9);再点击Simulation页,选择Create ModelSim alias to open a window showing output as ASCII text,点击Finish,完成设置,并改名为jtag_uart.。
图3-7 组件JTAG UART设置
3、加入定时器Timer。在组件选择栏中选择“Peripherals”→“Microcontroller Peripherals” →“Interval Timer”加入SOPC系统的内部定时器。一切都按照默认配置(图3-8),点击Finish完成加入。更改组件名称为“sys_clk_timer.”。(此定时器可用于此后在上运行的C程序中的某些软件函数进行速度定时)。
图3-8 组件Timer设置窗
4、 加入键输入I/O口。在这里,一般需要加入用于按键的PIO,PIO就是通用I/O口。在组件选择栏中选择“Peripherals”→“Microcontroller Peripherals”→“PIO(Parallel I/O)”加入。选择为4位,以对应4个按键,并选择“Input”输入模式(图3-9)。点击“Next”进行输入选项设置。在此窗中选择产生中断请求(IRQ),为双边沿触发,边沿模式(图3-10),点击“Finish”完成加入。更改组件名称为“button_pio”。
图3-9 组件PIO输入口设置窗
图3-10 输入方式设置窗
5、加入8发光管I/O口。仍然在组件选择栏中选择“Peripherals”→“Microcontroller Peripherals”→“PIO”加入,选择默认8位,以对应8个LED,并确认“Output”输出模式(图3-11)。点击“Finish”完成加入。更改组件名称为“led_pio”。
图3-11 加入8个输出PIO口
6、加入2个7段数码管I/O输出口。仍在组件选择栏中选择“Peripherals”→“Microcontroller Peripherals”→“PIO”加入。选择为16位,以对应4个已经在外围电路被译码的7段数码管,并改成“Output”输出模式。点击“Finish”完成加入。更改组件名称为seven_seg_pio。
7、加入Avalon三态总线桥。NiosII CPU与SRAM、SDRAM、Flash、自定制组件相接都需要Avalon三态总线桥。在组件选择栏中选择“Bridges and Adapters”→“MemoryMapped” →“Avalon-MM Tristate Bridge”,加入;在设置窗中(图3-12)确认选择Registered 。点击“Finish”完成加入。更改组件名称为“ext_mem”。
图3-12 加入Avalon总线3态桥设置
8、加入外部Flash。NiosII C加入Flash。在组件选择栏中选择“Memory and Memory Controllers” →“Flash”→“Flash Memory (Common Flash Interface)”,加入Flash ROM组件。在弹出的参数设置窗中(图3-13),在“Attributes”栏中首先选择地址线宽度Address width为23,和数据线宽度Data width为8;此后Presets栏自动选择“Custom”;在“Timing”栏,设置niosII对Flash的读写时序;此后选择默认设置(图3-14)。点击“Finish”完成加入。更改组件名称为“ext_flash”。
图3-13 加入外部Flash组件的设置窗
图3-14 设置对外部Flash读写时序
9、加入系统ID组件。在组件选择栏中选择“Peripherals ” →“Debug and Performance”→“System ID Peripheral”,加入此组件(图3-15)。此组件名不可改。
图3-15 加入系统ID组件
10、加入EPCS Serial Flash Controller组件。EPCS Serial Flash Controller可用于NiosII处理器对EPCS Flash存储器的读写访问,可以通过此控制器将SOF文件和CPU运行的软件一并存于EPCS器件中,以便大大简化硬件系统组成结构。在组件选择栏中选择“Memory and Memory Controllers” →“Flash”→“EPCS Serial Flash Controller”,点击“Finish”完成加入此组件(图3-16)。此组件名不可改。
图3-16 EPCS Serial Flash Controller组件
11、加入外部SRAM组件。在组件选择栏中选择“Memory and Memory Controllers” → “SRAM”→“IDT71V416 SRAM”,对弹出的选择窗确认选择存储量为1024 kB,点击“Finish”完成加入此组件(图3-17)。组件名可改为ext_sram。
图3-17 加入SRAM组件
至此已完成本项实验的全部组件的加入工作。图3-18就是本系统的NiosII基本元件安装设置完成的界面。
图3-18 NiosII组件窗
3.3 NiosII系统生成前设置与系统生成
1、 地址自动分配设置。为了保证所有组件的地址安排是合法的,如图3-19所示,选择菜单System中的Auto-Assign Base Addresses项,对各组件地址进行自动分配。
图3-19 地址自动分配设置
2、 复位地址和程序运行区域置。为了点击Next,进入如图3-20的NiosII处理器配置窗。选择ext_flash 作为复位程序区域:Reset Address;选择ext_sram作为外部存储单元中的软件运行的存储地址区域:Exception Address。本.页主要设置CPU的复位地址和外部RAM程序游行地址。
图3-20 NiosII处理器配置窗
设置完成后可注意到下方的信息栏中已没有早先指出的大量错误提示。此时保证所有组件的地址安排是合法的。点击System Generation,进入系统生成控制页。
3、 系统文件生成。系统生成控制页如图3-21所示。在该页将最终生成NiosII系统的VHDL文件,以及对应的硬件仿真文件。点击Generate。生成过程如图3-22所示。
图3-21 Nios II系统生成窗
注意如图3-23所示信息栏中出现“…SUCCESS:SYSTEM GENERATION COMPLETED”,则可点击Exit按钮,退出系统生成窗。
3.4 NiosII硬件系统生成
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |