简介 NIOS II是一个建立在FPGA上的嵌入式软核处理器,除了可以根据需要任意添加已经提供的外设外,用户还可以通过定制用户逻辑外设和定制用户指令来实现各种应用要求.这节我们就来研究如何定制基于Avalon总线的用户外设. SOPC Builder提供了一个元件编辑器,通过这个元件编辑器我们就可以将我们自己写的逻辑封装成一个SOPC Builder元件了.下面,我们就以PWM实验为例,详细介绍一下定制基于Avalon总线的用户外设的过程. 我们要将的PWM是基于Avalon总线中的Avalon…
在SOPC中自定义外设时.可以设置avalon总线的信号时序,以满足外设的要求.一般情况下,可以设为: 其中setup为read和write信号之前,address和writedata信号提前建立的时钟周期数.readwait和writewait为read和write信号的保持周期数.hold为write信号后,writedata保持周期数.read latency为readdata滞后address, read等信号的周期数,一般的若readdata设为reg变量,则可以将read laten…
最近想使用Nios II里的并口PIO口进行双向操作,即需要输出的时候设置为输出方向,需要输入的时候设置为输入方向.在这期间,因为没认真仔细阅读参考文档,走了一点点的弯路.下面就简单的介绍下并行输入/输出PIO. PIO核概述 具有Avalon接口的并行输入/输出(parallel input/output - PIO)核,在Avalon存储器映射(Avalon Memory-Mapped Avalon-MM)从端口和通用I/O端口之间提供了一个存储器映射接口.I/O端口既可以连接片上用户逻辑,…
对于Avalon Master来讲,Address信号代表一个字节(8-bit)的地址.Address的值必须与字节的宽度对齐,如果要对某个word的byte写,需要首先使用byteenable信号: 对于Avalon Slave来说,Address是一个WORD(32-bit)的地址,或者是Symbol,这个可以在Qsys new中设置:…
uC/OS-II(又名Micro C/OS)是基于嵌入式系统的完整的,可移植.可固化.可裁剪的可剥夺型实时内核,其已经广泛应用在航空飞行器.医疗设备.工业控制等可靠性和稳定性要求较高的场合.该内核的代码也是完全开源的,如果不做商业用途,完全免费.因此对于广大的嵌入式爱好者与工程师们而言,了解OS从uC/OS-II开始不失为一个很好的选择.          特权同学最近在一边狂啃邵贝贝翻译的<嵌入式实时操作系统uC/OS-II>,一边动手在NIOS II上做一些实践,加深理解和认识.     …
注:Avalon信号类型命名参考图 /********************************************************************************* * Company : * Engineer : 空气微凉 * * Create Date : 00:00:00 22/03/2013 * Design Name : * Module Name : * Project Name : * Target Devices : * Tool versio…
/********************************************************************************* * Company : * Engineer : 空气微凉 * * Create Date : 00:00:00 22/03/2013 * Design Name : * Module Name : * Project Name : * Target Devices : * Tool versions : * Description…
寄存器图 可以通过操作以下的寄存器来实现对timer(定时器)内核的操作(仅描述32位计数器) 状态寄存器: TO(timeout) :计数器计数到0时,该位置1,之后TO位的值会保持,直到手动清零,向状态寄存器写零,可以清除TO位 RUN:只读寄存器,读该寄存器,返回值为1表示计数其正在运行,0表示计数器停止计数,向状态寄存器写值,对该位无影响 控制寄存器: ITO(interrupt timeout):该位为1允许timer在计数为0 时输出中断.该位为0,计数至0时,不输出中断信号. CO…
转载请说明出处:http://blog.csdn.net/cywosp/article/details/26876231     在Linux中另一种更为高效的线程局部存储方法,就是使用keyword__thread来定义变量.__thread是GCC内置的线程局部存储设施(Thread-Local Storage),它的实现很高效.与pthread_key_t向比較更为高速.其存储性能能够与全局变量相媲美,并且使用方式也更为简单.创建线程局部变量仅仅需简单的在全局或者静态变量的声明中增加__t…
第四步 进入Platform Studio操作界面通过向导创建软核后,进入到PlatformStudio——内核开发环境.Platform Studio主界面如下图. 在Ports项中,右键点击RS232,选择ConfigureIP,对串口进行配置.这里主要是设置波特率.选择115200.可以根据自己要求,选择不同的波特率.导出刚才创建的软核平台.选择Export Only,仅仅只导出平台.Console中显示Done!说明软核平台导出完成.第五步 返回到ISE界面进行操作关闭Platform…