2011年1月9日

Nios II 定时器内核

摘要: 定时器是一个非常重要的外围设备。它可以作为系统的周期性时钟源(Tick); 也可以作为一个计时器,测定事件发生的时间;还可以对外输出周期性脉冲或作为一条监管系统正常运行的"看门狗"(Watchdog) 。  定时器是挂载在 Avanlon 总线上的32位定时器,它提供以下特性:   两种计数模式:单次减 1和连续减 1计数模式(软件设置,见控制寄存器CONT位);   定时器达到 0 时产生中断请求(IRQ);   可选择设定为看门狗定时器,当为看门狗时,定时器计算达到 0 时复位系统;   可选择输出周期性脉冲,在定时器计算达到 0 时输出脉冲;   可由软件启动、停止和复位定时器 阅读全文

posted @ 2011-01-09 22:45 zxl2431 阅读(2765) 评论(2) 推荐(2) 编辑

2011年1月8日

NISO II IDE (一)

摘要: NIOS II 集成开发环境(IDE) 是 NIOS II 系列嵌入式处理器的基本软件开发工具。所有软件开发任务都可以在 NIOS II IDE下完成,包括编辑、编译和调试程序。NIOS II 还提供了一个统一的开发平台,用于NIOS II 处理系统。  NIOS II IDE 基于开放式的、可扩展 Eclipse IDE Project 工程以及 Eclipse C/C++ 开发工具(CDT) 工程。NIOS II IDE为软件提供4个主要功能:工程管理器、编辑器和编译器、调试器以及闪存编程器。  工程管理中的软件组件,NIOS II IDE 提供的软件组件包括:硬件抽象层系统库(HAL)、 阅读全文

posted @ 2011-01-08 22:02 zxl2431 阅读(986) 评论(0) 推荐(0) 编辑

2011年1月6日

指针学习(一)

摘要: 每一个学习和使用 C 语言的人,都应当深入地学习和掌握指针。我汗颜啊。。。  一个变量的地址称为该变量的"指针",如果有一个变量专门用来存放另一个变量的地址(即指针),则它称为指针变量。比如 int i; int *p; p = & i;如果 i 的地址是2000,那么2000是变量 i 的指针。p就是一个指针变量。指针变量的值就是指针(即地址)。总之,指针就是一个地址,而指针变量是存放地址的变量。  变量的指针就是变量的地址。存放变量地址的变量就是指针变量,它是用来指向另一个变量的。  int * p1 , *p2 ;定义了两个指针变量 p1 和 p2 ,它们是指向整形变量的指针变量。" * 阅读全文

posted @ 2011-01-06 13:51 zxl2431 阅读(268) 评论(0) 推荐(1) 编辑

2011年1月4日

NIOS II 调试出的问题集[以后慢慢加]

摘要: 对于一个不熟悉的东西,出问题了,哪怕是一个简单的问题也要折腾半天,但我知道只要折腾一段时间就会好的。。。 问题(1): 出现这个问题的原因很多。 在网上查阅了几种解决办法: (1): 软件版本的问题,现在的软件应该不存在这个问题。 (2): 芯片设置问题,unused pin 设置为 输入三态。 (3): 芯片设置问题,复用引脚的设置。 都没解决问题,最后在《NIOS II 那些事儿》里面的常见问题解答里面找到了答案,是NIOS 软核的复位(RESET)出了问题。原来写代码时复位总是这样写,低电平复位。 在例化NIOS核的时候也就想当然这样了,结果就出现了以上了错误,软核的复位不要这个取反的. 阅读全文

posted @ 2011-01-04 16:24 zxl2431 阅读(588) 评论(0) 推荐(2) 编辑

2011年1月3日

结构体学习(一)

摘要: C语言还没入门,慢慢学,急不得。。。  在《NIOS II的那些事儿》的第一课LED实验中我就遇到了难题。。。  在生成的 system.h 文件中的PIO配置部分有这么一句:    #define PIO_LED_BASE 0x02000000  我们自己写的 sopc.h 文件是这样的:      在主函数 main.c 中我们是这样用的:      首先就要搞清楚 typedef 的作用,typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。在编程中使用typedef目的一般有两个,一 阅读全文

posted @ 2011-01-03 20:53 zxl2431 阅读(371) 评论(0) 推荐(2) 编辑

CodeBlocks 基本用法

摘要: 学NIOS的时候发现自己C语言基础太差,一定要补一下,下了个编译器CodeBlocks,用的还行。。。  新建工程:        选择Console application,工程名字和工程路径:               看你是用C++还是C,我是学C的。。。          这个估计是选择编译器或者编译环境还有一些设置之类的,编译器我不是很懂            OK,可以看到里面有个巨经典的代码,哈哈哈、          至于其他的高级功能,我就搞不懂了。。。 阅读全文

posted @ 2011-01-03 19:58 zxl2431 阅读(707) 评论(1) 推荐(2) 编辑

预处理命令学习(一)

摘要: 预处理命令是由 ANSI C 统一规定的,但是它不是C语言本身的组成部分,不能直接对它们进行编译。必须在对程序进行通常编译(包括词法和语法分析、代码生成、优化等)之前,先对程序中的特殊命令进行 "预处理"。  C语言提供的预处理功能主要有以下3种:  1. 宏定义    #define  2. 文件包含   #include  3.条件编译    #if  宏定义不是C语言语句,不必在行末加分号。如果加分号则会连分号一起进行置换。  在文件包含处理中,#includefile2.h 和 #include "file2.h"都是合法的。二者的区别是用时,系统到存放 C 库函数头文件的 阅读全文

posted @ 2011-01-03 16:23 zxl2431 阅读(221) 评论(0) 推荐(0) 编辑

C语言编程规范[以后慢慢加]

摘要: 坚决归零。。。  C语言应注意的基本编程规范:  1,文件名用小写字母、下划线、数字的组合命名,不可出现空格等其他字符,更不允许出现汉字、日语、俄语等 ASCII码字符。  2,每个.c文件都要对应一个.h文件来配合其对外资源声明。.h文件内可包括 宏定义、类型定义、对外资源(全局变量、全局函数)声明。 .c文件可以包含变量声明、函数原型、函数体。为了防止重复调用,.h文件的逻辑开头需要加入开关控制。  3,宏、枚举体均需要用大写字母、数字及下划线的组合,宏与常量之间用 "tab” 隔离,同一类型含义的宏定义在一起,并放于相关的头文件中。宏定义以能表达清楚含义为标准。  4,我们可以用c关键字 阅读全文

posted @ 2011-01-03 13:59 zxl2431 阅读(385) 评论(0) 推荐(1) 编辑

2011年1月2日

【转载】.阿迪老师 — 《SD卡入门到精通》视屏

摘要: 很是给力。。。 阅读全文

posted @ 2011-01-02 14:27 zxl2431 阅读(237) 评论(0) 推荐(1) 编辑

2010年12月31日

Nios II SBTE的工程路径

摘要: 2010年的最后一天,写篇博客以为记。  看亚峰的博客,我也玩起了数码相框,原来使用Nios II IDE地,但他用的是Nios II SBTE,我也就跟着尝下鲜,觉得他们区别还是有点大的。首先我建个工程都没搞成器。。。  指定一个工作空间:      新建工程:      指定APP工程路径:      指定BSP工程路径:      如果你把工作空间,APP工程路径和BSP工程路径指定在一个地方,那一定会出错。。。      在网上找了一下解决的办法,大概说的意思就是,工程路径不能工作空间workspace在一个地方。也不知道这是为什么,期待高手解答。。。      有时也会有其他的错误, 阅读全文

posted @ 2010-12-31 22:23 zxl2431 阅读(303) 评论(0) 推荐(0) 编辑

2010年12月8日

啥子是LUT

摘要: 一般来说简化的FPGA是由6部分组成的:可编程I/O单元,基本可编程逻辑单元...  基本可编程逻辑单元是可编程逻辑的主体,可以说CPLD和FPGA除了工艺不同以外,还有就是LAB(LogicArrayBlock)逻辑阵列模块的排布方式不同,CPLD是LAB排列在周围布线池在中间,而FPGA是LAB到处分布,布线资源在其中穿插,就像大城市的房子和街道,如图:  一个LAB是有几个LE(LogicElement)逻辑单元组成的一般10个吧。  一般情况下一个LE又是由一个LUT加一个进位逻辑和一个Register加组成的。所以也是在一般情况下LUT的数目跟Register的数目是差不多的。一般的 阅读全文

posted @ 2010-12-08 17:04 zxl2431 阅读(3711) 评论(1) 推荐(3) 编辑

2010年12月6日

DE2上SRAM测试(一)

摘要: SDRAM我是没搞定,SRAM应该没问题。。。  SRAM的控制很简单,DE2板子上面的是512KB的SRAM—IS61LV25616.先简单的看一下其引脚和时序图:      可以看到在一般情况下起到最重要的是WE,其他给一个默认的值就好,CE让它有效,OE让它有效,LB和UB现在也让它都有效就好。这样就少了很多事。    这是一个写的时序图,在前面已经省去了很多引脚,这里就简单了,先给地址,过Tsa拉低WE,同时送数据,完事后将WE拉高,数据就会被写入。在要求不太严格的情况下,三者同时进行也是可以的。这里需要注意的是数据口是双向的,要做一个三态门才行,在写的时候它选通,在读SRAM的时候它 阅读全文

posted @ 2010-12-06 15:18 zxl2431 阅读(1427) 评论(3) 推荐(2) 编辑

2010年12月4日

Verilog 串口实验

摘要: 写了个串口接收的代码,没反应,沉思ing。。。最怕就是思路很清晰,结构很合理,没有结果。差错都不好查。再来写个发送的看看。串口接收的已经调试成功,串口发送的还有点小问题,这边串口终端也能接收数据,但接收的数据总是 00 ,不管你发什么都是这个样子的,什么问题了?  再次验证了一个真理,好记性不如乱笔头。上次Modelsim 破解成功,这次重新安装了一下,还是按照上次的方法破解,搞了半天才好,吼吼,在修改环境变量时添加这个文件LM_LICENSE_FILE,它的途径一定是你放他的目录+它的名字,呵呵。  必须要为自己的粗心大意买单!在写状态机的时候,没想到很好的名字,就直接 reg[3:0] i 阅读全文

posted @ 2010-12-04 14:40 zxl2431 阅读(1141) 评论(0) 推荐(1) 编辑

2010年12月3日

NIOS 的外部中断

摘要: 按照黑金的《NIOS 那些事儿》做到中断实验,编译时显示寄存器配置成功了,开始下到板子上灯是灭的,一阵狂按。。。还是不亮,在while(1)里面把LED-DATA 的赋值颠倒一下,再下载板子上亮的,又是一阵狂按。。。还是不灭,怎么?没进入中断?往后看有将怎么调试的,OK,调试看看,在 void ISR_button(void *context,unsigned long id)处设置断点,全速,按一下,好程序停在那里了,在全速,OK,灭了。反复几次。。。发现灯是一亮一灭的,看来不加按键消抖危害巨大啊。虽然有现象,但这个程序我没看懂,主要是 NIOS 处理中断的过程都没有理清楚。  NIOS 阅读全文

posted @ 2010-12-03 13:44 zxl2431 阅读(589) 评论(0) 推荐(2) 编辑

2010年11月6日

简单的人机界面——LCD1602+PS2

摘要: 在被4*4的矩阵键盘搞的有点晕的时候,我决定换成PS2的键盘和LCD1602,在初步认识和简单调试出来1602后,今天准备学习PS2。在FPGA的学习上一直都是这种状态深入不下去,客观上是DE0带的资料确实有点少,一直也没找到一个好的突破口,主要还是付出不够。OK,1602和PS2键盘分别已经基本搞懂了,先总结一下遇到的问题,再来想一下两者中间的连接模块。参考DE2上面的LCD1602的例程。只是... 阅读全文

posted @ 2010-11-06 22:34 zxl2431 阅读(1000) 评论(0) 推荐(1) 编辑

2010年11月5日

Calculator

摘要: 最近想用Verilog写一个计算器,主要就可以分为两部分了:人机界面和运算部分。人机界面其实也很简单就是一个4*4的矩阵键盘和几个数码管,在做的时候就会有基本的按键扫描,去抖动和数码管显示,但一直都有一个问题显示不是很稳定,总是喜欢跳到别的键当然也不是乱跳,一行之间的数值是不会乱跳的,喜欢在它所在的列之间跳动,代码我认为是没有什么问题的,按键的消抖我也做了,我用的是买的4*4键盘难道是它不稳定,我... 阅读全文

posted @ 2010-11-05 16:52 zxl2431 阅读(330) 评论(0) 推荐(1) 编辑

2010年10月25日

FPGA经典模块(1)——分频器

摘要: 在数字逻辑电路设计中,分频器是一种基本电路,通过分频可以得到需要的时钟频率。常见的分频器有二进制分频器、偶数次分频器、奇数次分频器、占空比可调的分频器和小数分频器。分频的方法很多最常见的就是利用加法器对时钟信号进行分频,当然也可以利用一些专用的电路结构来实现。  偶数次分频器是比较简单的,最简单的是2分频的即使不用加法器也可以搞定,在每个时钟上升沿来的时候把电平翻转一次就OK。其他的偶数次分频电路... 阅读全文

posted @ 2010-10-25 13:44 zxl2431 阅读(4353) 评论(0) 推荐(2) 编辑

2010年10月20日

如何编写和验证简单的纯组合逻辑模块——《Verilog数字系统设计教程》读书笔记(二)

摘要: 每个模块的设计工作包括3个部分:1,电路模块的设计;2,测试模块的设计;3,设计文档的编写和整理。测试模块的设计和文档编写是比电路模块设计更为重要的设计环节,测试是否严密和完整决定了系统设计的成败,设计文档的完整和准确也是系统设计成败的关键,缺少完整的设计说明文件,就不能维持设计工作的连续性,为今后的调试和维护带来困难。组合电路逻辑在数字系统中起着基本组件的作用,也可以说,如果不了解组合逻辑的构成... 阅读全文

posted @ 2010-10-20 21:56 zxl2431 阅读(1484) 评论(0) 推荐(1) 编辑

2010年10月18日

10月学习计划

摘要: 心里的石头落地了,是该淡定下来了。想想接下来的安排了,数字电路,Verilog,IC设计,nios, c ...我都想学。但那是不可能地,所以要仔细想想,好好计划。  10月份已经只剩下10天的时间,也不想多想了,天天在这里想计划,倒不如踏踏实实把手头的事做好。就把上个月没有看完的那本 夏宇闻的《Verilog数字系统设计教程》看完就算是完成任务了。 阅读全文

posted @ 2010-10-18 21:51 zxl2431 阅读(294) 评论(0) 推荐(2) 编辑

2010年10月10日

【转】ALTERA在线FPGA/NIOS视频教程地址

摘要: Altera产品和资源入门指南 0.5小时20100321-------------------------------------------------------------------------------https://mysupport.altera.com/etr ... irst_CN/player.htmlhttps://mysupport.altera.com/etr ...... 阅读全文

posted @ 2010-10-10 19:03 zxl2431 阅读(766) 评论(0) 推荐(1) 编辑

导航