FPGA
文章平均质量分 71
冬麻麻
这个作者很懒,什么都没留下…
展开
-
STM32+FPGA FSMC实验
本质是把FPG去操作A当做一个SRAM1、首先通过cube配置stm32原理图地址总线如下原理图数据总线如下:原理图其余部分原创 2021-08-10 16:59:42 · 5602 阅读 · 8 评论 -
NIOS II 17:错误No such file or directory的解决办法
在对应的makefile里边加入如下的原创 2021-06-23 12:09:53 · 800 阅读 · 0 评论 -
NIOS II 16:Avalon MM Master学习总结
1、Avalon MM Master 通过学习我们知道NIOS II就是一个典型的Avalon MM Master. Master在Avalon MM总线上,可以对Slave进行读写操作。2、用户自定义Avalon MM Master外设 a: master read 包括单次模式和突发模式 b:master write 包括单次模式和突发模式3、master摸板有三部分组成 a: 时钟、复位 b: master总线读写逻辑 ...原创 2021-06-02 15:17:32 · 455 阅读 · 0 评论 -
NIOS II 15:AD7606共享SDRAM
1、首先登陆analog官网下载此文件下载此文档如下2、解压后一会这个文件复制到我们工程内3、把之前SDRAM工程复制一份,在ip文件夹内复制第2步里边的AD7606文件夹。4、打开qsys,左侧能看到如下,如果看不到。点击tools--options,里边加入路径就能看到了5、qsys加入ad7606IP核,连线。注意avalon master 一定要连接到sdram的S1,因为我们AD数据要存在sdram内6、生成。之后修改verilog顶层...原创 2021-06-02 12:07:11 · 570 阅读 · 1 评论 -
NIOS II 14:avalon mm master 共享sdram存储器
1、前边那我们写的程序NIOS II的cpu内存使用的是SDRAM。但是当我们其他外设例如ADC也想使用SDRAM时,就涉及到共享SDRAM。这时候我们需要使用avalon mm master。我们可以理解成master和nios II 是一样的,都可以对sdram、甚至串口、ADC等进行读写。去官网搜索avalon mm master。找到如下的下载此2、里边有个文档,里边给出了master读写的框架。文档里也详细描述了每个信号作用。3、里边还给出了verilog代..原创 2021-06-02 11:34:23 · 1206 阅读 · 0 评论 -
NIOS II 13 :地址对齐
1、在上一次自定义IP时候我们使用了IOWR_16DIRECT这个函数,然后我们verilog 中分别对应16位的地址用红色标出了,这样写很麻烦,每次还要想着。2、所以我们也想使用像下面PIO里边直接使用IOWR这个函数3、使用这个函数需要在我们生成的ip核的tcl文件中添加如下一句话,之后在qsys中,重新生成4、重新生成以后,全编译,下载。这时候在elipse中我们可以看到如下变化。16变成了325、这时候程序修改如下6、下载程序,成功7、当然在我们在tc原创 2021-05-29 15:18:28 · 372 阅读 · 0 评论 -
NIOS II 12:自定义IP总结
一、自定义IP核顶层avalon总线接口程序包含内容1、接口 a,:全局 接口:时钟、复位:clk,reset_n b:avalon mm slave接口: 地址 as_adress 片选:as_chipselect/as_chipselect_n ...原创 2021-05-29 13:32:14 · 722 阅读 · 0 评论 -
NIOS II 11:自定义IP,自定义IP调用
1、以创建ADC128S022为例。当然这个可以直接使用SPI的IP核。ADC128s022里边程序对外主要包含开始转换信号、转换完成信号,数据等2、通过前期学习我们知道一个IP要有自己的基地址,里边有很多可控的寄存器本质上都是有地址的。所以有个信号adress 另外需要一个片选信号,来使能当前IP核:select 时钟信号:CLKxie 复位信号:RST_N写使能信号:WRITE——N写入数据:WDATA中断请求信号:irq读数据端口:...原创 2021-05-26 11:29:22 · 1306 阅读 · 1 评论 -
NIOS II 10:操作系统多任务,看门狗
在NIOS II 9基础上修改,关于elipse工程每次最好新建,否则莫名其妙的一些错误,还不如新建工程把代码拷进来快。在更改了硬件部分时,来到elipse一定要重新生成bsp,如果报错,可以clean再生成bsp任务控制8个LED闪烁。1、控制LED闪烁,就要加入#include "altera_avalon_pio_regs.h"头文件。由于我定义的PIO是双向的,所以要首先给出方向。定义方向首先加入#include "system.h"头文件 IOWR_ALTERA_AVALON.原创 2021-05-08 16:37:09 · 511 阅读 · 0 评论 -
NIOS II 8:SDRAM(W9825G6KH-6),从这里开始使用软件版本改为18.
1、新建工程,打开qsys,加入如下的部分2、生成如下3、写verilog顶层文件如下加入sys文件到工程4、编译之后打开elipse。新建工程5、原创 2021-05-07 12:14:06 · 2806 阅读 · 1 评论 -
NIOS II 9:操作系统、定时器
1、Qsys内加入操作系统定时器2、加入一个通用定时器3、加一个看门狗,根据手册4、添加看门狗用的reset 控制器5、连线如下6、新建一个7、原创 2021-02-08 15:11:54 · 355 阅读 · 0 评论 -
NIOS II 7:中断方式串口接收、发送。时序约束添加
quartus里边和NIOS II 6里边一摸一样1、使能接收中断 IOWR_ALTERA_AVALON_UART_CONTROL(UART_0_BASE,0x0080); //使能接收中断2、中断定义如下 char *p; alt_ic_isr_register (UART_0_IRQ_INTERRUPT_CONTROLLER_ID, //ID ...原创 2021-02-07 17:09:43 · 1842 阅读 · 0 评论 -
NIOS II 6:查询方式串口接收
在NIOS II 5的基础上修改1、quartus程序如下module NIOS_UART(CLK_50M,RST_N,LEDOUT,KEY,uart_0_txd,uart_0_rxd);input CLK_50M;input RST_N;inout LEDOUT;reg [3:0] LEDOUT;inout [3:0] KEY ;i...原创 2021-02-07 16:23:36 · 640 阅读 · 0 评论 -
NIOS II 5:查询方式实现串口发送
继续使用nios II 4里边的例子改一下nios部分1、如果要使用自己的串口驱动,查询的方式。切记要关闭系统的串口驱动,否则可能出现不能收发的情况2、添加串口头文件。还要使用基地址,要讲system.h头文件也添加进来。3、快速找到UART0 base,看手册找到怎么关闭中断 IOWR_ALTERA_AVALON_UART_CONTROL(UART_0_BASE,0x0000); //关闭所有中断4、清状态寄存器IOWR_ALTER...原创 2021-02-05 15:46:46 · 919 阅读 · 1 评论 -
NIOS II 4:串口UART hello world。串口寄存器学习
1、新建一个工程叫做NIOS_UART 建立一个Qsys工程,基本配置如下2、添加UART3、UART连线,assign base adress,之后生成4、定义quartus文件如下module NIOS_UART(CLK_50M,RST_N,LEDOUT,KEY,uart_0_txd,uart_0_rxd);input CLK_50M;input RST_N;ino...原创 2021-02-05 12:01:17 · 1020 阅读 · 1 评论 -
NIOS II 3:按键中断KEY
在NIOS II 2的博客中工程基础上更改。上次已经注明了关于Qsys中中断怎么设置,此次只是记录eclipse中如何修改程序。1、quartus工程,PIO高四位是按键2、Qsys中配置3、eclipse中修改#include "alt_irq.h" 程序加入这个中断头文件首先打开中断,我们的KEY是高四位,所以下面语句IOWR_ALTERA_AVALON_PIO_IRQ_MASK(PIO_LED_BASE,0xf0);...原创 2021-01-28 17:21:31 · 1001 阅读 · 0 评论 -
NIOS II 2:控制多个LED(8个)(使用双向便于理解寄存器)----KEY按键,按键使用查询和边沿捕获实现
里边主要讲了大概过程,详细过程请看NIOS点亮LED博客这里主要记录多位PIO怎么控制1、建立quartus工程,LED82、打开Qsys。选择如下,在NIOS控制LED博客中详细记录了这几个怎么选择3、PIO做如下选择,位宽8.使能单个的位控制,这样可以分别控制每个LED注意:Bidir和inout有个明显区别。使用Bidir有一个端口。使用inou有两个端口所以如果信号外接到FPGA引脚一定要选Bidir型,如果内部使用可以inout之后连线,generate...原创 2021-01-28 11:38:24 · 1237 阅读 · 0 评论 -
eclipse如何加载已有的NIOS II工程. 以及老工程移植后问题
1、file-import2、弹出如下界面,点击1,选择工程文件夹,之后project处能自动出现功能文件。勾选,点击finish完成3、右键工程,点击build project4、回到quartus,下载sof文件到FPGA5、回到nios II run-run configureration打开界面,电机nios II hardware打开如下界面选target connection 如果2没有,点击3直到2出现如下此时点击1处能看到ID...原创 2021-01-19 17:12:58 · 2331 阅读 · 1 评论 -
NIOS II 1:点亮LED---NIOS程序固化
1、基本构成2、第一步创建一个普通工程取名LEDTEST3、tools--Qsys,或者下图快捷键会进入如下界面,双击修改时钟频率为自己的实际频率4、加入nios II软核5、给软核添加ROM6、给软核添加RAM7、给系统添加ID,如果使用多个系统用来区分用8、添加IO口9、设置nios,选定RAM、ROM。之后system--assign base adress10、连线...原创 2021-01-12 11:49:51 · 1187 阅读 · 7 评论 -
libero soc 11.9 UART IP核测试
1、创建IP核,使能TX FIFO。使能FIFO使得发送的数据可以一次性都传给TX,TX慢慢发送。后面会有仿真波形说明。2、发送测试程序我使用的16M时钟。想要测试波特率100K。则16000000/(16*1000000)-1=9;所以BAUD_VAL=9;测试程序如下。module TESTUART(CLK_16M,RST_N,TX,RX,DATA_OUT,WEN,OEN);input CLK_16M;input RST_N;output原创 2020-11-23 12:31:22 · 1847 阅读 · 1 评论 -
libero soc 11.9 modelsim仿真
只是记录一个仿真过程首先建立一个工程,简单的分频程序点击图片处新建一个testbench定义testbench名字随意。由于用的16M时钟,所以62.5ns。ok原创 2020-11-20 12:30:05 · 2880 阅读 · 2 评论 -
modelsim 仿真过程
以一个计数程序为例,记 fluorescentG1,fluorescentG2,fluorescentG3在70ms的计数值 , 这三个数的计数值。testbench如下:`timescale 1ns/1psmodule FluorescentAC_Test;reg clk_16M;reg rst_n;reg go;reg fluorescentG1;reg fluorescentG2;reg fluorescentG3;wire[15:0] G1CNT;wire[15:0] G2原创 2020-10-14 12:02:11 · 370 阅读 · 0 评论 -
CRC校验举例
学习CRC校验例如使用多项式X4+X3+1做校验。即11001.则校验码的位数为5-1=4位下面举例对一个8位数进行校验的过程。1、例如对数据10110011做CRC校验。则在这个数后边加上4个0,再除以11001,余数就是校验码如下2、如图校验码为0100,则我们传数据由原来的8位变成12位,传输数据为10110011 0100.3、接收端接收到我们的数据以后,除以11001,如果余...原创 2020-01-15 15:40:39 · 5168 阅读 · 0 评论 -
quartus II :RAM IP核
1、写时序原创 2020-01-17 16:38:49 · 4892 阅读 · 6 评论 -
quartus II :DDR2使用-接口芯片MT47H64M16HR
tools-,-interfaces-external mermory-DDR2,写入内核名字。原创 2020-01-17 16:37:51 · 1387 阅读 · 1 评论 -
quartus II :FIFO-modelsim、signalnap仿真
1、端口2、例如我们定义了32个字节的fifo,则在最开始的时候empty为高,写入一个数据以后就变低了。当写完32个数据以后,full变高。读取一个字节以后,full再次变低。usedw标志fifo中还有多少个数据3、写时序-modelsim4、读时序-modelsim5、signalnapII仿真...原创 2020-01-17 16:40:29 · 375 阅读 · 0 评论