
FPGA学习之路
文章平均质量分 62
@晓凡
败人二字,非傲即惰
展开
-
FPGA中利用fifo时钟域转换---慢时钟域转快时钟域
FIFO输入端的时钟频率小,输出时钟频率快,为了保证输入FIFO的数据与输出数据速度相等,即FIFO不至于读空,行计数器计数的最大值也必须放大1.5倍,即640*1.5=960,从FIFO中读数据时前640个计数时数据有效,这640个计数期间可以至一个标志rd_en位为1,作为FIFO读使能信号,960中的后320个计时为FIFO读数据消隐期,此时rd_en=0,即不读数据。FIFO的输入数据的时钟是40MHz,FIFO输出数据取60MHz,刚好是40MHz的1.5倍,将慢时钟域转快时钟域。原创 2025-02-20 17:04:23 · 778 阅读 · 0 评论 -
Xilinx FPGA工程移植步骤---包含软核工程
选择导出的.hdf文件关联上逻辑端代码,工程地址选择.sdk文件夹下:E:\Xilinx\xx\xx\project_1\project_1.sdk。返回vivado,重新生成bit流文件即可,即可将sdk和vivado中的代码关联起来。注意的是:在这页中千万不要滑动鼠标的滚轮,不然很容易改变里面的信息,切记切记!将目录E:\Xilinx\xx\xx\project_1\project_1.sdk。,这里面是源码文件不可以删除,其他文件全部删除。双击进去img IP核的配置界面,至此,工程移植完毕。原创 2025-02-19 21:21:10 · 462 阅读 · 0 评论 -
移植NIOS10.1工程,NIOS10.1路径修改
打开NIOS工程,在*_bsp文件夹上右键->nios II ->Generate BSP;因工程的需要,使用的NIOS10.1,比较老,这个版本的路径是使用的绝对路径,导致移植工程市回报路径的错误,在13.1之后改为了相对路径,不存在这个问题。需要修改三个文件夹内的路径,第2个文件夹是修改生成elf文件名称,里面有个Makefile,在里面修改,不修改也不会报错,只是用于区分备份。建议用替换的方法,这个文件中一共有6个路径需要修改,只列出了三个。原创 2024-12-04 22:20:10 · 585 阅读 · 0 评论 -
NIOS Eclipse突然报错:No rule to make target `/system.h
今天打开NIOS Eclipse编译昨天完好的工程,发现报错。我就纳闷了,代码没有修改,编译结果报错。原创 2024-08-21 14:02:16 · 662 阅读 · 2 评论 -
温度传感器NST175手册阅读
首先看芯片的输入和输出:主要关注IIC接口,毕竟是要驱动这个芯片读取温度。在编写此博客时还未对改温度传感器进行调试,只是阅读手册,把需要重点关注的地方标记出来。原创 2024-06-18 10:07:17 · 2493 阅读 · 7 评论 -
NOS II - Timer定时器
简单回忆NIOS II中定时器的使用。原创 2024-06-10 19:36:44 · 522 阅读 · 0 评论 -
2023-2024总结
可以缓解压力,我平时喜欢慢跑和打羽球,喜欢运动时那种放松的奇妙感觉,这时候也是最轻松的时候。武汉是一个美丽、充满活力的城市,在这待了将近一年也逐渐习惯了武汉的生活,来这里第一次见到雪,在我的家乡冬天不会下雪,至少从我记事开始没见过下雪。长江大桥,徒步横跨长江大桥,那一晚和老同学徒步从江汉路->江滩->鹦鹉洲->长江大桥->黄鹤楼的山脚下,运动量也是达标了。武汉大学,很美,氛围也很好,进去就不想离开的学校。原创 2024-05-02 14:15:16 · 583 阅读 · 3 评论 -
Modelsim自动仿真平台的搭建
如果要搭建自动仿真平台脚本那就需要更改下面3个文件。run_simulation.bat、complie.do和wave.do文件。注:前提是安装了modulsim并且配置好了环境变量,这里不过多介绍。只有一条语句,主要是添加想要观测的波形到modulsim中。将testbench_top这个文件中的所有信号,包括wire,reg类型或者其他类型的信号全部添加到波形中。一、下面是run_simulation.bat文件的内容。二、compile.do文件的语法和工作。三、wave.do文件。原创 2024-04-29 23:33:00 · 854 阅读 · 0 评论 -
【一】DDR3基础知识与IMG IP
一、DDR3的基本知识与MIG IP核。原创 2024-03-30 22:47:04 · 2351 阅读 · 3 评论 -
modelsim与quartus联合仿真ROM读不出数据
1、mif文件的格式不对,保证深度、位宽等信息是正确的,地址是从0开始,然后依次递增。我试过地址不是从0开始,ROM初始化会直接报错。原因:hex或者mif文件放的不对,放在与bd放在同一个文件夹下。modelsim在这个目录查找mif文件或hex。modelsim与quartus联合仿真ROM没有数据被读出,很是纳闷。mif文件在quartus中可以直接另存为hex文件转换方便。原创 2024-03-23 22:08:08 · 757 阅读 · 0 评论 -
Avalon总线学习
avalon总线可以分为:Avalon clock interfaceAvalon reset interfaceAvalon Memory mapped interfaceAvalon iterrupt interfaceAvalon streaming interfaceAvalon tri-state conduit interfaceAvalon conduit interface这是一个时钟接口,所有的avalon接口都是同步的,都需要有一个时钟,在qsys中,我们每添加一个新的IP核,都需要将它原创 2024-03-18 20:21:51 · 2112 阅读 · 0 评论 -
生成jic文件,固化代码
1)将下面两个选项选上,选上之后重新generating BSP,然后再重新编译工程。2)烧写完之后点击nios ii–>flash programmer。再通过“ls”命令查看生成的文件,我们要用的是.hex文件。确保quartus中能正常下载sof文件。然后切换到quartus ii软件中。注意:路径需要根据自己的情况调整。选择setings.bsp文件。2、打开脚本命令窗口,输入。1、复制文件到工程目录下。原创 2024-03-12 13:44:51 · 2032 阅读 · 1 评论 -
nios ii开发随笔
原先代码是在sdram跑的,然后改到了在片上ram_oc_xzs中跑,出现问题。2、减少代码的大小(当板子的资源不足时)1、在qsys中修改大小。原创 2024-02-23 22:09:12 · 570 阅读 · 0 评论 -
AXI4的4K边界
主机每一次写突发或者读突发传输,地址偏移量(或叫地址增加量),不能超过4K,也不能跨域4K。4K=4096。举个例子:数据位宽m_axi_wdata=128bit,突发长度为100。可以计算出突发长度的字节数量:128÷8×100=1600。第一次:突发开始的地址是0,结束地址(最后一个字节的地址)是1599。axi总线规定一个字节对应一个地址。第二次:突发开始的地址是1600,结束地址(最后一个字节的地址)是3199。axi总线规定一个字节对应一个地址。原创 2024-02-22 14:53:02 · 2803 阅读 · 1 评论 -
调试ad5245的总结
2、要往SDA数据线上写三个字节才能调节ad5245的电阻值,第三个字节就是用于调节阻值的(范围FF-00);因为我只写两个字节(器件地址+指令字节)导致AD5245调节出来的数值不正确,后面仔细阅读手册才发现需要写入三个字节。3、IIC总线在空闲状态的时候SCL和SDA一定要拉高,注意如果代码上拉高了,但是用逻辑分析仪抓取的时候没有拉高那可能是上拉电阻的问题,看看有没有接上拉电阻,电阻的阻值对不对。1、SCL和SDA端的要有上拉电阻,且上拉电阻能正常工作;原创 2024-01-15 17:00:05 · 948 阅读 · 1 评论 -
JESD204B协议、仿真
JESD204B是一种针对ADC、DAC设计的传输接口协议。包括协议四层,分别为:物理层、链路层、传输层、应用层。物理层:约束接口规范(SEDES CML),串化,线速率等。链路层:并行数据组帧(添加控制位 约束位),8B/10B编码,链路建立传输层:链路建立后,传输ADC的数据,以半字节为单位。应用层:用户解析ADC数据并使用SERDES:串行器/解串器。它是一种主流的时分多路复用(TDM)、点对点(P2P)的串行通信技术。原创 2023-12-28 07:13:56 · 12338 阅读 · 2 评论 -
【一】FPGA实现SPI协议之SPI协议介绍
【一】FPGA实现SPI协议之SPI协议介绍。原创 2023-12-19 22:14:49 · 1255 阅读 · 0 评论 -
紫光FPGA学习之常见报错
一、4005: [D:/**/rtl/burstORsingle.v(line number: 47)] Logic for ddr_head_addr_rr does not match a standard flip-flop.注意看第8和第9行,少了一个begin end的,修改后的代码。解决方法:test_bench中添加语句。原因:紫光自带的系统复位模块。原创 2023-12-18 08:34:00 · 1919 阅读 · 0 评论 -
紫光FPGA DDR3 IP使用和注意事项(axi4协议)
使用的芯片型号时PG2L100H-6FBG676,不同的型号IP核接口和axi的握手协议也不一样(一定要注意),这点要注意,这也给我挖了一个很大的坑,一把心酸一把泪啊。下面代码就是握手的过程。3、读ddr时,ddr的位宽在配置ip时设置为32,axi总线的宽度为256,256 /32=8,所以读ddr时每读一个数据地址就要偏移8,否则从ddr3中读出来的数据是不对的。这段代码是用状态机的方式对ddr循环写地址,只有两个状态,状态1写入地址0x0000111,状态2写入地址0x0000311,对应上面图的。原创 2023-12-17 22:12:54 · 2447 阅读 · 7 评论 -
matlab实现单精度、16进制之间的转换函数
matlab16进制转单精度浮点型:typecast(uint32(hex2dec(‘3f000000’)),‘single’)matlab 单精度转16进制:num2hex(single(1.0))原创 2023-12-17 22:06:42 · 1908 阅读 · 0 评论 -
vscode编写verilog的插件【对齐、自动生成testbench文件】
vscode编写verilog的插件:插件名称:verilog_testbench,用于自动生成激励文件安装教程:基于VS Code的Testbench文件自动生成方法——基于VS Code的Verilog编写环境搭建SP_哔哩哔哩_bilibili优化的方法:https://blog.csdn.net/qq_39498701/article/details/84668833遇到的问题:https://blog.csdn.net/m0_71959044/article/details/133764204操原创 2023-11-18 17:09:43 · 5466 阅读 · 0 评论 -
再次总结nios II 下载程序到板子上时出现 Downloading RLF Process failed的问题
问题:nios II 下载程序到板子上时出现 Downloading RLF Process failed的问题。原创 2023-10-03 01:00:00 · 699 阅读 · 0 评论 -
altera FPGA 程序固化命令
1)sof文件转为flash文件的命令:qsys_sdram.sof为sof文件名称,hwimage.flash为生成的flash名称,针对不同的工程只需要更改这两个地方就可以2)elf文件转为flash文件qsys_sdram_rw.elf为elf文件的名称,swimage.flash为要输出的flash文件名字,第一个步骤生成的文件hwimage.flash作为参数输入,辅助这次flash文件的生成;3)flash文件转为hex文件。原创 2023-10-02 21:30:00 · 917 阅读 · 0 评论 -
xilinx的原语的使用
在学习FPGA实现千兆网时需要GMII转RGMII,这就涉及了原语的使用,特此记录!原创 2023-10-02 14:45:00 · 1126 阅读 · 0 评论 -
错误:F13 is an invalid placement site
加上错误中仅仅提示了BUFIO_inst的错误,没有提示BUFG_inst的错误,原语BUFG和BUFIO的功能是一样的,为何不能让代码中的rgmii_rxc_bufio=rgmii_rxc_bufg呢,按照这个思路,将BUFIO_inst模块注释掉,定位到了u_gmii_to_rgmii模块,这个模块是gmii转rgmii接口的,根据提示出现的提示是BUFIO_inst端口类型不匹配。在u_gmii_to_rgmii模块中,用到了原语:BUFG和BUFIO;通过上面的操作,就可以顺利绑定F13引脚了。原创 2023-10-02 10:43:25 · 3598 阅读 · 1 评论 -
以太网协议介绍(ARP、UDP、ICMP、IP)
IP:internet protocol(网际协议)IP协议是TCP/IP协议簇中的核心协议之一,也是TCP/IP协议的载体,IP协议规定了数据传输时的基本单元和格式。所有的TCP、UDP以及ICMP数据都是以IP数据报格式传输的。IP数据报格式:IP首部是以4(32bit)个字节为单位,版本:IPv4 or IPv6;IPv4的地址是4个字节,即为0100,IPv6是6个字节,即0110;原创 2023-10-02 10:21:33 · 14919 阅读 · 0 评论 -
【二】SPI IP核的使用
从代码中我们可以看出,使用的是altera公司提供的API访问程序alt_avalon_spi_command()对从机进行读/写。 该实验主要是利用SPI IP核驱动SD卡来实现读写实验,在这个实验中我们要了解spi使用方法核学习sd卡的读写操作方法。clk c1输出100MHz,相位偏差为-60。将sd卡拔出,插入读卡器中,打开电脑的WinHex软件,打开sd卡。其他没有展示的ip核配置均采用默认的配置。(3)SPI IP核配置。(4)PIO ip核配置。PLL IP核的配置。原创 2023-08-07 16:05:41 · 2074 阅读 · 0 评论 -
【一】SPI IP核使用
spi ip的使用,sd卡的操作命令原创 2023-08-07 16:02:33 · 1470 阅读 · 0 评论 -
已经成功安装了usb-blaster驱动,但是在quartus II中没有找到usb-blaster选项,只有no hardware
问题:已经成功安装了usb-blaster驱动,但是在quartus II中没有找到usb-blaster选项,只有no hardware。4、将复制的文件粘贴在 D:\altera\11.0\quartus\bin64。5、重新连接下载器quartus II就可以识别得到usb-blaster了。2、找到USB-Blaster驱动的安装路径,打开 x64 文件。3、复制 x64 文件夹下的所有文件。原创 2023-07-27 08:52:44 · 5174 阅读 · 1 评论 -
FPGA工程中eclipse软件常见的错误
eclipse中常见的错误和解决方法原创 2023-07-22 15:44:35 · 1200 阅读 · 0 评论 -
FPGA中RAM的结构理解
FPGA中RAM的结构理解原创 2023-07-22 15:38:21 · 1220 阅读 · 0 评论 -
对数组的“reg [7:0] a_tmp[32:0]”理解
在verilog中,对数组**reg [7:0] a_tmp[32:0]**进行操作时,分不清楚先对**[32:0]**进行操作还是先对 **[7:0]**进行操作,为此进行下面的实验。进一步加深对数组的理解。原创 2023-06-12 09:16:42 · 674 阅读 · 0 评论 -
verilog实现“101”序列检测器
有“101”序列输入时输出为1,其他输入情况下,输出为0。画出状态转移图,并用verilog描述。原创 2023-06-11 20:21:16 · 2521 阅读 · 0 评论 -
vivado中ila的使用方法记录
在FPGA的开发中,当完成代码设计后,为了验证代码的准确性和各种不同条件下的可靠性,往往需要优先想到通过逻辑仿真进行相关验证。使用逻辑仿真进行验证虽然可以周密的考虑给出不同输入条件下的输出结果或交互结果,但是也其相对局限性:使用仿真需要设计人员写testbench代码,从而增加代码的书写量,随之而产生提高验证工作的门槛和排除错误的工作量等一些列问题。原创 2023-06-07 22:25:07 · 12201 阅读 · 2 评论 -
EEPROM读写测试实验(主要记录IIC通信协议)
EEPROM,电可擦除可编程只读存储器,是一个非易失性的存储器件。RAM: 随机访问存储器,可读也可写,断电不保存数据,常用的RAM有ddr3、SDRAM。ROM仅支持读,不可写,但断电可以保存数据。随着技术的发展出现了EEPROM,它既可以断电之后保存数据也可以对数据进行改写(即可读可写),芯片是AT24C64。(1)单次写(字节写)时序。用Verilog将下面的时序写出来即可完成IIC协议。原创 2023-05-16 09:14:17 · 3136 阅读 · 0 评论 -
音频环回实验
WM8978是一个低功耗、高质量的立体声多媒体数字信号编译码器,它结合了一个高质量的立体声音DAC和ADC,带有灵活的音频线输入、麦克风输入和音频输出处理WM8978内部有58个寄存器。每一个寄存器的地址位为7位,数据位为9位。可通过控制接口配置相应的寄存器以打开相应的通道或者使能相应的功能。控制接口是一个可选的2线或3线结构。通过MODE引脚选择(MODE引脚接高电平时为3线接口模式、低电平时为2线接口模式)。原创 2023-05-05 08:25:09 · 2853 阅读 · 1 评论 -
verilog驱动LCD显示彩条、字符
LCD(liquid crystal display):液晶显示器TFT:薄膜晶体管LCD屏幕接口:常见的LCD屏幕接口有:RGB、MCU、LVDS、MIPI等RGB LCD接口原理图:其中MISO、MOSI是IIC接口;SCK、MISO、MOSI、CS可以组成SPI协议。原创 2023-05-04 11:31:46 · 1793 阅读 · 0 评论 -
【四】Qsys的软核知识记录----UART IP核
框图:通过Avalon协议对IP里面的寄存器数据进行读写从而实现对IP核的控制。原创 2023-04-28 20:03:10 · 1120 阅读 · 0 评论 -
【二】软核学习
fpga软核学习原创 2022-11-08 07:27:13 · 961 阅读 · 0 评论 -
【一】Qsys的软核知识记录
Qsys软核知识原创 2022-11-06 12:38:23 · 1662 阅读 · 0 评论