Using the SDRAM on Altera’s
DE1-SoC Board with Verilog Designs

1.DE1-SOC Board上SDRAM资源

2.系统架构框图

3.关于SDRAM controller

SDRAM controller能生成SDRAM芯片所需要的信号,但是SDRAM芯片的时钟信号需要外部来提供。

4.DE1-SOC Board---SDRAM Controller参数配置

Memory Profile

Timing---自己直接输入参数即可

5.系统时钟与SDRAM时钟的配置

采用university program提供的IP核:

因为板上的时钟为50MHz,所以reference clock:50MHz,本实验的系统时钟也采用50MHz。

6.搭建Qsys系统

选择Reset vector 和 Exception Vector为new_sdram_controller.s1,即软件程序在SDRAM里面跑。

7.在顶层文件上对Qsys系统进行实例化

module top(

         new_sdram_controller_wire_addr,  // new_sdram_controller_wire.addr
new_sdram_controller_wire_ba, // .ba
new_sdram_controller_wire_cas_n, // .cas_n
new_sdram_controller_wire_cke, // .cke
new_sdram_controller_wire_cs_n, // .cs_n
new_sdram_controller_wire_dq, // .dq
new_sdram_controller_wire_dqm, // .dqm
new_sdram_controller_wire_ras_n, // .ras_n
new_sdram_controller_wire_we_n, // .we_n
sys_sdram_pll_ref_clk_clk, // sys_sdram_pll_ref_clk.clk
sys_sdram_pll_sdram_clk_clk
); output [:] new_sdram_controller_wire_addr; // new_sdram_controller_wire.addr
output [:] new_sdram_controller_wire_ba; // .ba
output new_sdram_controller_wire_cas_n; // .cas_n
output new_sdram_controller_wire_cke; // .cke
output new_sdram_controller_wire_cs_n; // .cs_n
inout [:] new_sdram_controller_wire_dq; // .dq
output [:] new_sdram_controller_wire_dqm; // .dqm
output new_sdram_controller_wire_ras_n; // .ras_n
output new_sdram_controller_wire_we_n; // .we_n
input sys_sdram_pll_ref_clk_clk; // sys_sdram_pll_ref_clk.clk
output sys_sdram_pll_sdram_clk_clk; mem u1 (
.sys_sdram_pll_ref_clk_clk (sys_sdram_pll_ref_clk_clk), // sys_sdram_pll_ref_clk.clk
.sys_sdram_pll_ref_reset_reset ('b0), // sys_sdram_pll_ref_reset.reset
.new_sdram_controller_wire_addr (new_sdram_controller_wire_addr), // new_sdram_controller_wire.addr
.new_sdram_controller_wire_ba (new_sdram_controller_wire_ba), // .ba
.new_sdram_controller_wire_cas_n (new_sdram_controller_wire_cas_n), // .cas_n
.new_sdram_controller_wire_cke (new_sdram_controller_wire_cke), // .cke
.new_sdram_controller_wire_cs_n (new_sdram_controller_wire_cs_n), // .cs_n
.new_sdram_controller_wire_dq (new_sdram_controller_wire_dq), // .dq
.new_sdram_controller_wire_dqm (new_sdram_controller_wire_dqm), // .dqm
.new_sdram_controller_wire_ras_n (new_sdram_controller_wire_ras_n), // .ras_n
.new_sdram_controller_wire_we_n (new_sdram_controller_wire_we_n), // .we_n
.sys_sdram_pll_sdram_clk_clk (sys_sdram_pll_sdram_clk_clk) // sys_sdram_pll_sdram_clk.clk
); endmodule

综合结果图:

8.烧写硬件代码开启NIOS II---eclipse

9.编写C语言代码

/*
* "Hello World" example.
*
* This example prints 'Hello from Nios II' to the STDOUT stream. It runs on
* the Nios II 'standard', 'full_featured', 'fast', and 'low_cost' example
* designs. It runs with or without the MicroC/OS-II RTOS and requires a STDOUT
* device in your system's hardware.
* The memory footprint of this hosted application is ~69 kbytes by default
* using the standard reference design.
*
* For a reduced footprint version of this template, and an explanation of how
* to reduce the memory footprint for a given application, see the
* "small_hello_world" template.
*
*/ #include <stdio.h>
#include "system.h"
#include "io.h"
#include "alt_types.h" int main()
{
printf("Hello from Nios II!\n");
alt_u16 i = ;
for(i=;i<;i++)
{
IOWR(0x0, i, i);
}
return ;
}

关于函数的使用:

9.更新BSP(假设之前更改过硬件)

首先开启BSP Editor,配置相应的部分,最后点击Generate.

9.软件调试 ----Debug

10 读取memory里面的数据

11更改Reset vector 和 Exception Vector为:

即程序在on-chip RAM里面跑。

12.更改了硬件之后,得重新生成BSP

13.BSP做好后,程序就可以开始debug了:

调试结果:读取相应memory里面的数据:

Using the SDRAM on Altera’s DE1-SoC Board with Verilog Designs的更多相关文章

  1. arm-linux下qt + opencv开发环境的搭建(Altera DE1 Soc)

    arm-linux-gnueabihf-gcc下载 qt下载 arm-linux下qt + opencv开发环境的搭建(Altera DE1 Soc) Ubuntu 16.04 安装QT arm嵌入式 ...

  2. altera soc体验之旅 FPGA与ARM的窃窃私语

      喜大普奔,公司要评估用SOC做产品,我就自然而然的被安排了学习和评估的工作,于是,每天的工作就是开始研究soc了.其实,只要能静下心来学习,一切都还是能够弄出来的. 以前像个无头苍蝇一样到处乱撞, ...

  3. DS-5建工程

    DS-5教程-使用ARM DS-5 和DSTREAM仿真器调试裸机程序 http://bbs.elecfans.com/jishu_453909_1_1.html i2c( 楼主 )2014-10-1 ...

  4. diy作品——视觉追踪小车介绍

    最近刚刚完毕了一个追踪功能的小车.大体功能例如以下:小车能通过网线给电脑传图(抱歉.临时没搞wifi驱动).并在电脑端通过鼠标选中待跟踪的目标,然后小车就開始追踪.由于追踪框有缩放功能.所以也能推断物 ...

  5. FPGA的过去,现在和未来

    我们知道,相对于专业的ASIC,FPGA有上市时间和成本上的优势.另外,在大多数情况下,FPGA执行某些功能较之CPU上的软件操作更高效.这就是为什么我们认为它不但会运用在数据中心的服务器.交换器.存 ...

  6. 基于FPGA的PCIe接口实现(具体讲解了数据流向)

    时间:2014-12-09 来源:西安电子科技大学电子工程学院 作者:姜 宁,陈建春,王 沛,石 婷 摘要 PCI Express是一种高性能互连协议,被广泛应用于网络适配.图形加速器.网络存储.大数 ...

  7. Device Tree(一):背景介绍

    一.前言 作为一个多年耕耘在linux 2.6.23内核的开发者,各个不同项目中各种不同周边外设驱动的开发以及各种琐碎的.扯皮的俗务占据了大部分的时间.当有机会下载3.14的内核并准备学习的时候,突然 ...

  8. ModelSim仿真入门

    ModelSim仿真入门之一:软件介绍 编写这个教程之前,为了让不同水平阶段的人都能阅读,我尽量做到了零基础入门这个目标,所有的操作步骤都经过缜密的思考,做到了详细再详细的程度. 如果您是FPGA开发 ...

  9. U-Boot Makefile分析(5)主控Makefile分析

    这次分析源码根目录下的Makefile,它负责读入配置过的信息,通过OBJS.LIBS等变量设置能够参与镜像链接的目标文件,设定编译的目标等等. HOSTARCH := $(shell uname - ...

随机推荐

  1. 自动化测试-21.RobotFrameWork配置安装

    更新pip python -m pip install --upgrade pip 1安装robotframework --pip install robotframework 2. 安装支持框架的运 ...

  2. live555 学习资料

    下载源码 http://www.live555.com/liveMedia/public/live555-latest.tar.gz 安装tar xzf live555-latest.tar.gz c ...

  3. SpringMVC详细示例实战教程(较全开发教程)

    SpringMVC学习笔记---- 一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于Spring ...

  4. mastering elasticsearch

    概念: Term: 它是搜索的基本单位,其表现形式为文本中的一个词. Token: 它是单个Term在所属Field中文本的呈现形式,包含了Term内容.Term类型.Term在文本中的起始及偏移位置 ...

  5. 使用libcurl作为Http client

    产品通过HTTP协议为外部提供接口服务,常规情况是客户通过HTTP协议请求服务,服务结束后通过HTTP协议将服务记录POST到请求方. 用原生C实现了一个简单的HTTP Client,只有简单的功能: ...

  6. Unity调用Windows弹框、提示框(确认与否,中文)

    Unity调用Windows弹提示框 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- ...

  7. 回文树&后缀自动机&后缀数组

    KMP,扩展KMP和Manacher就不写了,感觉没多大意思.   之前感觉后缀自动机简直可以解决一切,所以不怎么写后缀数组.   马拉车主要是通过对称中心解决问题,有的时候要通过回文串的边界解决问题 ...

  8. python---map 用法 [转载]

    map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回. 1.当seq只 ...

  9. 20155208徐子涵 2016-2017-2 《Java程序设计》第6周学习总结

    20155208徐子涵 2016-2017-2 <Java程序设计>第6周学习总结 教材学习内容总结 10.1.1 1.Java将输入/输出抽象化为串流,数据有来源及目的地,衔接两者的是串 ...

  10. 牛客国庆集训派对Day1 L-New Game!(最短路)

    链接:https://www.nowcoder.com/acm/contest/201/L 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 1048576K,其他语言20 ...