摘要:/* * "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
阅读全文
摘要:1、对同一个设备的多次DMA读写操作之间如果并行,有可能会导致数据传输错误。可以在程序中对每次DMA操作进行等待。如下:点击(此处)折叠或打开void dma_done(void*p){int*q=p;(*q)++;}main(){ voliate int n1=0,n2=0; alt_dma_txchan_send(tx1,tx_buf1+BUFSIZE,length,dma_done,&n1);alt_dma_txchan_send(tx2,tx_buf2+BUFSIZE,length,dma_done,&n2);while(n1!=1);while(n2!=1);alt_
阅读全文
摘要:在 Quartus7.2之后的版本中,除了原有的基于avalon-mm总线的DMA之外,还增加了Scatter-Gather DMA这种基于avalon-ST流总线的DMA IP核,它更适合与大量数据流传输的场合,使用起来比较灵活,增加了与外设流器件配合的能力。由于网上关于SG-DMA介绍的资料比较少,因此这里简单介 绍一下SG-DMA的使用,利用它可以搭配Altera的千兆网MAC核来实现千兆网方面的应用。SG-DMA的 数据手册已经介绍得非常详细(见Scatter-Gather DMA Controller Core),具体的相关寄存器和功能可能查阅相关手册。Altera为了开发的便利,已
阅读全文
摘要:在nios中,有printf的程序,在线调试没有什么问题,但是下到flash里面,程序跑了一段时间就死掉了!JTAG_UART是阻塞式输出,他只是将数据输出到buffer中,等待你上位机读取,当你的buffer满了之后就会停止cpu。所以在调试模式下面可以正常运行,因为nios2IDE会读取buffer里面的值。UART是不管你有没有接受,都会一直发送数据的。不会阻塞CPU。
阅读全文
摘要:在用Nios II做外设时序驱动的时候,经常会用延时函数。有时会常使用某个FPGA芯片和时钟,比如笔者一直使用的芯片是cyclone系列 EP2C35F484C8N,PLL输入SOPC时钟是50M。因此,提前测试硬件运行延时情况并编写今后常用的延时函数有一定的意义。软件:Quartus II 9.0, Nios II 9.0硬件配置:1、 在SOPC中调用Interval Timer核图 1 调用Interval Timer核2、配置Interval Time图 2 Interval Timer参数配置各参数说明请参照Quartus II Handbook Version 9.0 Volume
阅读全文
摘要:首先,来做一个简单的实验,利用DMA来实现on-chip-memory和SRAM之间的传输,同时也在做一个关于SRAM不同地址之间的传输。一、硬件设计 1、首先设计自己的SOPC结构,包括CPU、jtag_uart、sram、sysid、onchip-memory,时钟就用50M即可。都不需要任何的设置。如下图所示: 2、对于QuartusII上顶层文件就不需要有什么可讲的,主要代码如下。1 Reset_Delay delay1 (.iRST(KEY[0]),.iCLK(CLOCK_50),.oRESET(CPU_RESET));2 3 dma_system u0 (4 // 1) glo..
阅读全文
摘要:PIO核概述具有Avalon接口的并行输入/输出(parallel input/output - PIO)核,在Avalon存储器映射(Avalon Memory-Mapped Avalon-MM)从端口和通用I/O端口之间提供了一个存储器映射接口。I/O端口既可以连接片上用户逻辑,也可以连接到FPGA与外设连接的I/O引脚。PIO核提供容易的I/O访问用户逻辑或外部设备,在这种情况下“位控制”的方法是有效的。下面列举了几种应用的例子:l控制LEDl获取开关数据l控制显示设备l片外设备的配置与通信,例如特定应用的标准产品(ASSP)。PIO核中断请求(IRQ)输出能够确定一个基于输入信号的中断
阅读全文