随笔分类 -  【5】SOPC/NIOS II

[笔记] Nios II基本函数整理
摘要:一、头文件#include "system.h" //包含基本的硬件描述信息#include "altera_avalon_timer_regs.h" //定义内核寄存器的映射,提供对底层硬件的符号化访问#include "altera_avalon_pio_regs.h" //包含基本的I/O口信息 #include "alt_types.h" //Altera定义的数据类型(alt_8等)#include "sys/alt_irq.h" //中断函数 #include "unist 阅读全文

posted @ 2011-09-19 14:14 LiangXuan 阅读(851) 评论(0) 推荐(1)

[黑金笔记五]定时器实验
摘要:红圈1处是用于预设硬件生成后的定时器周期, 也就是说这是个初始值,我们可以通过软件来改变定时器的周期。红圈2处是定时器计数器的大小,它分为32位和64位两种,需要根据你的定时器的周期来选择,我们在这里选择32位。红圈3处是定时器的几种预设方式,是为了实现不同的功能,我们在这里选择Full-featured,就是全功能。选择了这个选项,我们就可以修改周期,可以控制停止开始位。选择好以后,点击Finish完成设置。system.h/* * timer1 configuration * */#define TIMER1_NAME "/dev/timer1"#define TIME 阅读全文

posted @ 2011-08-10 09:19 LiangXuan 阅读(979) 评论(0) 推荐(0)

[黑金笔记六]IIC实验
摘要:IIC(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。它在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收. 阅读全文

posted @ 2011-08-09 11:38 LiangXuan 阅读(496) 评论(0) 推荐(0)

[黑金笔记四]串口实验
摘要:红圈1处为波特率,我们设置为115200;红圈2处是是否允许通过软件改变波特率,我们选中,便是允许,这样我们就可以通过软件来随时更改波特率,如果软件不设置,默认值就是上面设置的115200; system.h中uart部分/* * uart configuration * */#define UART_NAME "/dev/uart"#define UART_TYPE "altera_avalon_uart"#define UART_BASE 0x00001800#define UART_SPAN 32#define UART_IRQ 3#define 阅读全文

posted @ 2011-08-08 10:47 LiangXuan 阅读(2135) 评论(0) 推荐(1)

[黑金笔记三]电平中断实验
摘要:ISR(Interrupt Service Routine)中断服务函数是为硬件中断服务的子程序。NIOS II处理器支持32个硬件中断,每一个使能了的硬件中断都应该有一个ISR与之对应。中断发生时,硬件中断处理器会根据检测到的有效中断级别,调用相应的ISR为其进行中断服务。要完成硬件中断工作,我们需要做两件事: 第一, 注册中断函数ISR,它的函数原型如下所示: int alt_irq_register(alt_u32 id, void* context, void(*handler) (void*,alt_u32)); id:中断优先级,即所注册的ISR是为哪个中断优先级的中断服务的。中. 阅读全文

posted @ 2011-08-05 11:40 LiangXuan 阅读(1313) 评论(0) 推荐(0)

[黑金笔记二]LED实验
摘要:一、建立三个文件夹Main,inc,driver,分别存放main.c,自建.h头文件,驱动.c文件二、sopc.h程序解析#ifndef SOPC_H_#define SOPC_H_/*----------------------------------------------------------------------------- * Include *-----------------------------------------------------------------------------*/#include "system.h"/*------- 阅读全文

posted @ 2011-08-04 22:21 LiangXuan 阅读(786) 评论(0) 推荐(0)

[黑金笔记一]NiosII开发初探
摘要:一、Memory设置: Reset Vector:是复位后启动时的Memory类型和偏移量;(一般为掉电不可擦除型Memory,如Flash) Exception Vector:是异常情况时的Memory类型和偏移量;(可为掉电即擦除型Memory,如SDRAM)二、CPU设置: Data Cache:None;(见NiosII下关于无法进行寄存器方式操作PIO的问题解析)三、Flash地址设置: 我们需要对Flash地址进行锁定,保证Flash的起始地址为0x00000000,因为Flash是系统重启后的起始地址,这样做的好处是有利于我们操作,系统重启后从0x00000000开始也是我们的思 阅读全文

posted @ 2011-08-03 23:03 LiangXuan 阅读(1372) 评论(0) 推荐(0)

[笔记]软核 固核 硬核的区别
摘要:IP(Intellectual Property)就是常说的知识产权。美国Dataquest咨询公司将半导体产业的IP定义为用于ASIC、ASSP和PLD等当中,并且是预先设计好的电路模块。IP核模块有行为(Behavior)、结构(Structure)和物理(Physical)三级不同程度的设计,对应描述功能行为的不同分为三类,即软核(Soft IP Core)、完成结构描述的固核(Firm IP Core)和基于物理描述并经过工艺验证的硬核(Hard IP Core)。什么是软核? IP软核通常是用HDL文本形式提交给用户,它经过RTL级设计优化和功能验证,但其中不含有任何具体的物理信息. 阅读全文

posted @ 2011-08-03 19:10 LiangXuan 阅读(885) 评论(0) 推荐(0)

[笔记]RunningLED Experiment
摘要:一. 实现功能: 流水灯;二. 实验进程: 1. 建立工程RunningLED,SOPC系统RunningLED_System; Note: 1. 定时器在系统中主要是产生一个固定间隔的中断信号,让CPU改变LED的状态。因此Period设置为500ms,表示灯的状态500ms改变一次; 2. Timer组件需要分配一个IRQ号;系统IRQ号可以是0到31的整数,数值越小优先级越高; 2. 用符号框图完成顶层实体,分析综合,分配引脚; 3. Open Nios II ID, Switch Workspace, 新建Blank Project,执行相关优化(Release & -Os); 阅读全文

posted @ 2011-07-07 23:12 LiangXuan 阅读(539) 评论(0) 推荐(0)

[笔记]LCD1602 Display Experiment
摘要:一. 实现功能 在LCD1602上滚动显示"Hello from Nios II"二.实验进程 1. 新建工程HelloWorld,顶层实体名HelloWorld; 2.重新设置编译输出目录为../HelloWorld/release; 3.创建SOPC系统HelloWorld_System; 4. Detailed as display; Notes: 1. CPU: Reset Vector Memory&Exception Vector Memoryset on-chip memory; 2. Onchip-memory: Total Memory Size 阅读全文

posted @ 2011-07-07 13:55 LiangXuan 阅读(886) 评论(1) 推荐(1)

[笔记]NiosII之Count Binary
摘要:基于FPGA的嵌入式系统开发流程Nios处理器分立元件:RAM的设置:M9K;Data Width:12KByte;Total Size:12KbytePIO的设置:Reset Value:0x00;CPU的设置:Instruction Cache:2KbytesInterval Timer的设置:Presets(预先装置):Full-featured(全功能)NiosII例化代码:module first_q2_prj(clk,ext_rst_n,led_pio);input clk;input ext_rst_n;output[7:0] led_pio;wire rst_n;sys_ct. 阅读全文

posted @ 2011-05-29 23:40 LiangXuan 阅读(1050) 评论(0) 推荐(0)

[笔记]DE2-115 LCD1602字符的显示
摘要:顶层代码:module lcd1602(input CLOCK_50,input RST_N,inout[7:0] LCD_DATA,output LCD_EN,output LCD_RS,output LCD_RW,output LCD_ON,output LCD_BLON);//initial//wire[7:0] LCD_D_1;wire LCD_RS_1;wire LCD_RW_1;wire LCD_EN_1;wire DLY_RST;assign LCD_DATA=LCD_D_1;assign LCD_RS=LCD_RS_1;assign LCD_RW=LCD_RW_1;assign 阅读全文

posted @ 2011-05-26 22:52 LiangXuan 阅读(5214) 评论(2) 推荐(1)

[笔记]DE2-115 VGA字符汉子的显示
摘要:代码:module vga_controler(input CLOCK_50,input[3:0] KEY,output VGA_CLK, //should be 25MHzoutput[7:0] VGA_R,output[7:0] VGA_G,output[7:0] VGA_B,output VGA_BLANK_N,output VGA_SYNC_N, output VGA_HS,output VGA_VS);reg[9:0] H_Cont; //行扫描计数器reg[9:0] V_Cont; //列扫描计数器wire[7:0] vga_r;wire[7:0] vga_g;wire[7:0] 阅读全文

posted @ 2011-05-26 07:40 LiangXuan 阅读(2706) 评论(0) 推荐(1)

SRAM与SDRAM的区别
摘要:SDRAMSDRAM(Synchronous Dynamic Random Access Memory)同步动态随机存取存储器,同步是指Memory工作需要步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是由指定地址进行数据读写。目前的168线64bit带宽内存基本上都采用SDRAM芯片,工作电压3.3V电压,存取速度高达7.5ns,而EDO内存最快为15ns。并将RAM与CPU以相同时钟频率控制,使RAM与CPU外频同步,取消等待时间,所以其传输速率比EDO DRAM更快。SDRAM从发展到现在已经经历了四代, 阅读全文

posted @ 2011-05-06 12:29 LiangXuan 阅读(41861) 评论(0) 推荐(3)

[笔记]DE2-115 VGA Color Pattern Generator
摘要:1 module vga_controler(2 input CLOCK_50,3 input[3:0] KEY,4 output VGA_CLK, //should be 25MHz5 output[7:0] VGA_R,6 output[7:0] VGA_G,7 output[7:0] VGA_B,8 output VGA_BLANK_N,9 output VGA_SYNC_N, 10 output VGA_HS,11 output VGA_VS12 );13 reg[9:0] H_Cont; //行扫描计数器14 reg[9:0] V_Cont; //列扫描计数器15 reg[7:0] 阅读全文

posted @ 2011-05-05 18:56 LiangXuan 阅读(2217) 评论(1) 推荐(2)

D-Sub VGA Timing Table
摘要:原文地址:http://www.cnblogs.com/oomusou/archive/2008/08/11/de2_vga_timing_table.html 阅读全文

posted @ 2011-05-03 14:08 LiangXuan 阅读(760) 评论(0) 推荐(0)

基于M9K块的单口RAM配置仿真实验
摘要:FPGA器件中通常嵌入一些用户可配置的存储块,Altera的Cyclone系列器件也不例外。Cyclone器件的嵌入式称之为M4K存储块,这些存储块是独立于FPGA本身的逻辑资源的。也就是说如果用户只使用这些存储器,那么FPGA中的纯逻辑资源消耗可以为零。Cycone的M4K不仅不消耗额外的FPGA逻辑资源,而且可以拿来当RAM用的,标称速率可以达到250M,这个速率不是在cyclone系列的每个器件都能达到,资源少如EP1C3估计就困难,但100M的读写速度还是没有问题的.一、实验步骤三、TestBench编写`timescale 1 ns/ 1 nsmodule m9kram_vlg_ts 阅读全文

posted @ 2011-04-28 18:06 LiangXuan 阅读(4395) 评论(0) 推荐(0)

PLL配置仿真实验
摘要:PLL,即锁相环。即给PLL一个时钟输入(一般为外部晶振时钟),然后经过PLL内部的处理后,在PLL的输出端就可以得到一定范围的时钟频率.PLL之所以应用广泛,是因为从其输出得到的时钟不仅从频率和相位上比较稳定,而且时钟网络延时也相对内部逻辑产生的分频时钟要小的多.一、PLL的配置步骤:Tool->MegeWizard Plug-In Manager->Creat a new megafunction variation->I/O->ALTPLL,输入例话的PLL名称;DE2-115时钟输入为50MHz,欲得输出100MHz和200MHz的频率clkc0,clkc1.二 阅读全文

posted @ 2011-04-26 22:13 LiangXuan 阅读(2437) 评论(0) 推荐(0)

[转帖]DE2_115_Digital_Logic Lab1
摘要:Introduction这个练习的目的是学习如何连接简单的输入、输出设备到一个FPGA芯片,并且用这些器件实现一个电路。我们将用DE2开发板上的switches SW17-0作为输入,用LED和7-segment displays作为输出。完成DE2 实验练习1(Digital Logic)对与初学者来说是一个比较大的实验。我估计,每天要花几小时才能完成。这个实验包括6个部分,主要是组合逻辑电路和使用assign语句Part I :第一次使用assign语句Altera 的DE2开发板有18个拨动开关(toggle switch)和18个红色的LED。Part I非常简单,在实验手册里首先介绍 阅读全文

posted @ 2011-04-22 19:09 LiangXuan 阅读(1426) 评论(0) 推荐(0)

导航