自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 zynq SDK 关于SD卡报错

4.之后再打开自己的Test工程下的Debug/Src/objects.mk文件,可以看到是缺少了关于SD卡相关的库的。3.打开demo的Debug/Src/objects.mk,可以看到LIBS里面有-lxilffs。1.首先打开bsp的system.mss文件,滑到最下面,导出一个SD卡读写的Demo。2.之后编译这个生成的demo,可以看到没有报错。5.直接把demo的这段抄过来就解决了。

2024-09-20 20:07:39 341

原创 Verilog实现直接读取YUV数据

【代码】Verilog实现直接读取YUV数据。

2023-06-22 14:31:12 494

原创 AXI-Stream Data FIFO接口学习

stream_data_fifo接口与普通的FIFO方案基本差不多,只是写数据端为AXI-stream从接口,读书节端为AXI-stream主接口。

2022-07-15 20:16:06 6903 2

原创 搭建FPGA SOC系统(7)基于虚拟地址的应用程序开发

学习主要参考https://rocketboards.org/foswiki/Documentation/EmbeddedLinuxBeginnerSGuide1.软件设计到这一步就要回头参考前面的硬件修改了,本例程针对前面的自定义PIO组件进行开发控制。首先把前面生成的hps_0.h硬件头文件拷贝出来。打开该文件查看对应的地址:可以看到自定义的PIO组件地址为DYQ_PIO_0_BASE 0x0#ifndef _ALTERA_HPS_0_H_#define _ALTERA_HPS_0_H_

2022-03-31 14:01:21 761 2

原创 搭建FPGA SOC系统(6)使用buildroot生成根文件系统并下载到SD卡中

学习主要参考https://rocketboards.org/foswiki/Documentation/EmbeddedLinuxBeginnerSGuide1根文件系统定义这根文件系统是文件系统包含在同一个划分在这上面根目录位于,它是所有其他文件系统所在的文件系统安装好的(即逻辑上连接到系统)因为系统是启动(即启动)。分区是硬盘驱动器(HDD)中逻辑上独立的部分。文件系统是目录的层次结构(也称为目录树)用于组织计算机系统上的文件。在Linux操作系统和其他类Unix 操作系统目录从根目录开始,根目录

2022-03-31 13:36:47 1976 1

原创 搭建FPGA SOC系统(5)编译Linux内核

学习主要参考https://rocketboards.org/foswiki/Documentation/EmbeddedLinuxBeginnerSGuide1.获取Linux内核输入以下指令,从GitHub上克隆altera发行的Linux内核git clone https://github.com/altera-opensource/linux-socfpga.git进入内核目录,输入以下指令可查看内核发布的各个版本。cd linux-socfpgagit tag -l rel*输入

2022-03-31 13:28:48 2195

原创 搭建FPGA SOC系统(3)编译u-boot

学习主要参考https://rocketboards.org/foswiki/Documentation/EmbeddedLinuxBeginnerSGuide本次学习需要在Linux系统下进行,Windows下的Embedded_Command_Shell终端不支持。linux系统版本:unbuntu16.04 64位系统下载相关工具交叉编译工具在这里可以下载交叉编译工具https://rocketboards.org/foswiki/pub/Documentation/EmbeddedLin

2022-03-31 13:26:15 1569

原创 搭建FPGA SOC系统(4)制作SDcard映像

学习主要参考https://rocketboards.org/foswiki/Documentation/EmbeddedLinuxBeginnerSGuide1. 分区我们将创建一个512兆字节的映像,其中FAT分区将占用256兆字节,根文件系统将使用254兆字节,原始A2分区将使用1兆字节(最后1兆字节由MBR占用)。每个嵌入式Linux设备都有不同的大小要求。如果您发现您的根文件系统需要更多的空间,请稍后回到这一节,用更大的分区重新创建SD卡。**注意:**创建顺序必须按照分区号为3 2 1的顺

2022-03-31 12:45:17 1683

原创 搭建FPGA SOC系统(2)生成predloader和设备树

学习主要参考https://rocketboards.org/foswiki/Documentation/EmbeddedLinuxBeginnerSGuide如下图,为生成preloader image的流程。在设计完成硬件编译之后,也就是生成sof文件之后,就可以进行该步骤了。打开**Embedded_Command_Shell**终端,进入到工程目录下。输入bsp-editor &命令打开BSP Editor打开File→New HPS BSP...为主板预加载程序创建新

2022-03-31 11:46:27 2116

原创 vcs产生fsdb文件并使用Verdi查看波形

文件结构如下vcs_prjrtltbprj_file其中rtl存放源代码,tb存放测试代码,prj_file存放Makefile以及生成的仿真文件等。要生成fsdb文件,需要在tb的测试代码中加入如下代码:initial begin $fsdbDumpfile("test.fsdb"); //指定生成的的fsdb $fsdbDumpvars(0,u_rec_intra_top); //0表示生成u_rec_intra_top模块及以下所有的仿真数据 $vcdpluson.

2022-03-15 11:03:47 21459

原创 vcs综合问题汇总

Verilog 2005 IEEE 1364-2005 syntax used.…/tb/test.v, 351Please enable SystemVerilog or use -v2005 to support this construct:generate for loop with unnamed generate block.出现这个问题是因为测试代码写的内容为2005版的,vcs只能默认支持2001版的,所以需要在命令行增加-v2005或`-sverilog写法如下:vcs ..

2022-03-14 21:47:07 3191

原创 sublime 插件和创建代码片段

1.下载和安装去官网直接下载sublime text3双击sublime_text_build_4126_x64_setup.exe文件,选择安装路径,一步安装即可。2.安装packagectrl+shift+p 即可弹出搜索框,输入install,选中下面提示的install package,跳转到安装package中。输入Verilog,选择安装即可。2.创建代码片段2.1.创建点击工具 >> 插件开发 >> 新建代码片段之后会自动生成一个模板

2022-03-12 10:29:11 984

原创 解决modelsim出现Error: (vish-4014) No objects found matching ‘sim:/test/tb_top/xxx/xxx/xxx‘.

这个问题的出现主要是添加波形上面。也就是我们在修改代码之前添加了一些波形,并保存在了仿真脚本里面,也就是后缀为.do的文件当中,当我们的测试架构发生改变之后,有些信号相对也发生了改变,这个时候就会报错,提示匹配不到单引号里面的信号。最简单的解决办法就是重新生成一个do文件。或者打开do文件,把添加波形的部分代码删掉即可。对应的添加波形部分的代码举例如下:add wave -position insertpoint \sim:/test/tb_top/xxx/xxx/xxx \sim:/test/

2021-11-03 13:56:07 2903

原创 DE-10开发板 FPGA SOC学习(六)在HPS上添加一个uart模块IP

在上一次学习的基础上,添加uart 模块IP,,同时测试上次的自定义IP的读数据功能1.硬件设计1.1.添加uart在IP Catalog中搜索uart选择下图的IP。配置如下图:偶校验、8bit数据、1bit停止位、115200波特率。连线与pio基本一致,这里需要将rx和tx供给外部连接。然后将irq与HPS组件的f2h_irq0相连。最后生成新的qsys系统保存。1.2.顶层代码修改打开顶层代码,添加uart的接收发送接口。soc_system例化部分编译生sof文件再转

2021-10-31 22:03:02 1375 8

原创 搭建FPGA SOC系统(1)自定义Avalon总线组件

1.设计自定义IP(Avalon接口)1.点击New Component…新建一个组件2.如下图,可设置组件类型、rtl文件、参数、接口信号等。3.编写一个avalone接口的逻辑module my_led( input clk, input reset, input avs_s0_address, input avs_s0_read, input avs_s0_write, output [31:0] avs_s0_readdata, inp

2021-10-21 18:12:06 1888 2

原创 vmware16安装Ubuntu16.04,并实现主机与虚拟机文件的双向拖拽

1.百度从官网下载Ubuntu16.04镜像2.创建虚拟机3.重启虚拟机4.安装open-vm-tools终端输入:sudo apt-get updatesudo apt-get install open-vm-toolssudo apt install open-vm-tools-desktop5.重启结束一个新的Ubuntu操作系统的虚拟机配置...

2021-10-20 11:33:33 1128

原创 Error (12153): Can‘t elaborate top-level user hierarchy

quartus在综合的时候出现了这个错误提示。找到对应的代码:从敏感列表上来看,该always块内的寄存器是异步复位,那么在综合的时候,寄存器的复位端必须只能接复位信号,而代码中却接了复位信号以外的同步信号。修改方法:1、改成同步always@(posedge clk) begin if(!rst_n || first_tu_flag) begin ... end2、规范写法always@(posedge clk or negedge rst_n) begin if(!rst_n

2021-10-13 17:07:43 22388 1

原创 Verilog设计指定寄存器数组在综合时使用block memory资源(Altera)

有的时候我们自己用Verilog代码写的rom或ram会被quartus ii综合成查找表,并没有使用到block memory资源。以下是在网上查到的一段说明:To use the ramstyle attribute in a Verilog Design File (.v), specify the synthesis attribute delimited by (* and *) preceding the Variable Declaration of an inferred RAM w

2021-10-13 11:20:40 3770

原创 Verilog的带参数例化

模块电路module test#( parameter P1 = 1 , parameter P2 = 2 )//参数例化( input clk, input a, output b);//内部电路endmudule例化时修改参数定义的方式写法1:test #(.P1(3),.P2(4))u_test( .clk(clk), .a(a), .b(b));写法2:test #(3,4)u_test( .clk(

2021-09-22 15:42:08 8274

原创 Verilog的无符号移位运算(“>>“和“<<“)和算术移位运算(“<<<“和“>>>“)的设计

1.无符号移位1.1.基本设计我们在进行Verilog代码设计时经常会用到移位运算,对于无符号运算,我们只需要使用移位运算符("<<“和”>>")就能够实现移位的功能,这个很容易理解。如无符号左移时,接收寄存器要比源寄存器多出对应移位位宽。reg [3:0] reg1;reg [5:0] reg2;always@(posedge clk) reg2 <= reg1 << 2;//左移两位,reg2比reg1多出两位。 同理对于无符号右移时,只需要减

2021-09-21 11:45:41 6053 7

原创 Verilog设计技巧:function、generate的用法

function函数,我们可以按照C语言的函数的那样进行理解。软件的函数,我们在使用或设计的时候,函数名、输入和返回值是我们最为关注的。而对应硬件,函数名、输入、返回值,只不过一个是软件实现,一个是硬件电路。因此Verilog的函数的相关思想与软件非常相似,特点:1)不能有always块,也就是不考虑延时,一般都是使用for、case、if-else完成函数功能。2)至少有一个输入变量。3)只有一个返回值,且没有输出。5)函数可以调用其他函数,但是不能调用任务。用途:可用于仿真代码,也可

2021-08-30 21:22:27 2427

原创 viso的基本用法

基础在使用viso画图的时候,比如画电路图、流程图这种,除了基本框图库以外,最常用的功能就是拖动图片位置、改变框图大小、连接图片之间的线条以及添加文本等操作。这里介绍几种操作方法。1.控制框图(文本框)位置、大小、旋转以及连线如上图,在工具一栏中有指针工具、连接线、文本这三个选项。首先将工具一栏选择指针工具这一项,当调整位置和大小的时候,就可以像word那样进行调整,而当对框图进行旋转的时候,可以鼠标点击下图方框上边框中间的那个旋转标志,拖动即可完成旋转,但是不是360度任意角度旋转。当需要

2021-06-19 20:28:45 11949

原创 C1073 涉及增量编译的内部错误(编译器文件“d:\agent\_work\4\s\src\vctools\Compiler\CxxFE\sl

代码变更之后出现:C1073 涉及增量编译的内部错误(编译器文件“d:\agent_work\4\s\src\vctools\Compiler\CxxFE\sl无法启动程序,。。。。不是有效的Win32应用程序。如下图:在用Visual Stdio 2019的时候,经常出现这些个问题,而基本上每次出现这个问题的时候,都是对代码进行了修改之后出现的(有的时候就可以直接修改,然后直接点击调试就可以了),然后实在解决不了,只能新建工程,或重新打开新的工程,然后就是靠运气解决。很玄学,有时有问题有时又没问

2021-06-17 15:49:06 3068

原创 C++打印文本数据

学习一种比较简便的打印文本数据的方式。#include <iostream>#include <fstream>using namespace std;int main(int argc,char* argv[]) { FILE* file1; //定义文件指针 string datapath = "F:\\dyq_work_file\\study_ex\\C++_ex\\FILE_IO\\data"; //定义主文件夹路径 //注意文件夹路径中的反斜杠要

2021-06-03 12:27:23 1546 1

原创 Verilog取绝对值代码设计

取绝对值的时候肯定都是针对有符号数来取的,然后存入无符号数中。对于有符号数在寄存器中的存储,是默认最高位为符号位, 低位为数据位(正数源码,负数补码),对于正数,我们可以直接将数据赋给无符号寄存器(这个寄存器的位宽至少要大于或等于数据位)。而对于负数,我们需要对数据位取反加一,然后将数据赋给无符号寄存器。有的时候我们的这个无符号寄存器位数比较大的时候,若数据位负数,可以直接将有符号寄存器直接不考虑符号位取反加一。如上图,有符号寄存器在给下一级寄存器赋值的时候,对于最高位的符号位,是默认向高位补全的,就

2021-05-28 13:06:24 10055 2

原创 Verilog有符号和无符号运算设计分析

最近对这几种运算很困惑,主要是对于有符号数的运算的困扰,如果运算出现负数怎么办。

2021-05-28 01:11:48 5862 1

原创 FPGA复位电路设计学习分析

同步复位同步的意思就是与控制时钟保持同步,因此,在设计中,寄存器接收的复位信号有效是在时钟的边沿触发的。实际上同步复位在altera的芯片中,是与数据一同接入一个组合逻辑电路,然后通过该组合逻辑电路,将最终的数据接入寄存器输入端。如下设计一个简单的同步复位电路:module Verilog1( input clk, input rst_n, output reg a);always@(posedge clk)begin if(!rst_n) a <= 1'b0; else

2021-05-18 22:54:09 1260 1

原创 SD卡格式化重建分区

首先需要准备一个SD卡,和读卡器,该SD卡在烧写之前,需要进行格式化,格式化成FAT32格式的,并且只能有一个分区,在本次实验学习中,SD卡有三个分区,所以需要通过Windows的磁盘管理,重新整理成一个分区。将读卡器插到PC机上,在Windows的搜索框中搜索磁盘管理。点击创建并格式化磁盘分区。之后打开对应的U盘分区,在对应的磁盘上,右键(这里以D盘为例)弹出如下窗口,点击删除卷即可将该分区删除掉,我们只将SD卡的分区删掉即可。删完之后,剩下一个未分配的磁盘,也就是我们的SD卡,我们需要分配

2021-05-01 16:29:12 3809

原创 quartus软件调用代码模板

首先说明一下为什么要使用代码模板,主要因为这些代码模板的设计,在对应厂商的器件上综合出来的电路功能和效率是最好的,而且可以降低我们整个工程的综合时间。1.怎样调用以quartus 16.1版本为例。打开quartus 16.1软件,点击File > New ,新建一个Verilog代码文件点击Insert Temolate对话框3.找到Verilog部分的模板,打开Full Designs,可以看到很多设计模板。4. 找一个乘法器加法器设计代码例程,点击Insert,将模板粘贴到我

2021-04-29 21:10:41 5644 2

原创 FPGA设计功能验证debug思路(待更新)

1.流水线设计debug仿真时出现同一信号在不同输入下,内部电路信号翻转出现不一致。首先对于控制信号,检查所有的控制信号是否都进行了流水线同步传输。检查数据处理电路中,数据赋值是否出现错误,选择电路是否出现错误。检查数据赋值时,左右两边的位宽是否一致,一定要避免左边寄存器位宽不足的情况,这样会导致右侧的计算结果不能正确传输。注意复位电路,在仿真的时候在不同的输入的情况下,可能会受到影响。...

2021-04-28 20:34:22 666

原创 matlab打印文本txt数据

一般在matlab中打印数据,肯定都是打印的矩阵里面的数据。这里随便设计一个矩阵数据A = [ 1,2,3; ... 4,5,6; ... 7,8,9; ];1.基本打印流程1.1.读取数据fopen函数fid = fopen('data.txt','wt');后面再对该文件进行操作,都是对fid进行操作,文件名为data.txt。后面的wt是对于该文件的操作方式,本来是w,加个t是为了生成一个文本文件(txt类型文件),读取操作解释如下表。

2021-04-28 20:01:16 4353

原创 unbuntu虚拟机连接U盘

点击连接即可

2021-03-21 02:51:58 385

原创 DE-10开发板 FPGA SOC学习(四)生成 Preloader Image File

操作过程1.首先打开操作台2.在控制台中输入: bsp-editor打开BSP Editor3.左上角点击 File ->New HPS BSP…4.打开之后是这样的界面5.设置路径选择该工程下面的hps_isw_handoff\soc_system_hps_0,点击ok6.之后点击generate生成即可,完成之后点击exit。7.然后工程文件夹下面会有一个 software 的文件夹,里面有一个 spl_bsp 文件夹。8.回到之前的控制台如下命令,进入生成的这

2021-03-21 02:51:25 793 3

原创 DE-10开发板 FPGA SOC学习(三)熟悉SOC开发流程

在GHRD工程的基础上,简单的修改PIO配置,将SOC的开发过程学习一遍。学习主要参考的是小梅哥的SOC开发文档。

2021-03-21 02:51:01 3916

原创 MATLAB中sort函数简单使用

a存的是将A向量进行升序排列之后的数据,b存的是与a中数据对应的数据的原先的位置索引。

2021-03-07 13:27:23 320

原创 异步FIFO IP核的wrusedw与rdusedw

如图,我们在调用FIFO的IP核的时候有这么一个选项,可以选择读端口与写端口的相关信号。今天学习了FIFO中的有效数据量,也就是usedw信号。从note中可以看出,这个信号是相对于其对应的clk的同步信号。在上图中,我选择的是读那一侧的同步数据量,那么这个usedw信号就是依靠读时钟来同步的。同理选择写一侧的就是依靠写时钟来同步的。仿真写操作如图,该仿真是我将读一侧与写一侧的都选上了,先看写操作下的时序。可见读一侧的数据是相对写时钟延时一个读clk的,这个不用管,只需要知道只相对读信号延时.

2021-02-17 19:14:51 5434

原创 modesim用波形仿真汉字

大过年的,祝大家新年快乐哈,先上图。效果还行。在做这个之前需要下载一个字符取模软件:PCtoLCD2002。百度一下就能下载到。打开是这样的界面,一般默认的是等比缩放,但是等比的话,最后仿真的效果不好,因此需要把字宽调大点,我设置的是30.(字高我设置的是16,如果完全用我的代码的话,这个就不要改了。)点击那个设置按钮打开,设置一下取模方式,输出改为十进制数,走向改为顺向。具体取模数据存储方式看右侧的取模说明就行。我们是逐列式。最后点击生成字模,保存字模。得到下面数据,每个数村的是8个像素的

2021-02-14 11:53:32 3395

原创 vcs学习 (dev波形)

今天把学长教的vcs的使用学习下,做个记录。先学一下简单的操作。文件目录:rtl存放自己设计的源代码(我的源代码文件名为led.v)sim存放仿真文件(仿真文件名为cnt_sim.v)使用操作在上面的目录下打开终端输入以下,就可以编辑了vcs rtl/led.v sim/cnt_sim.v -debug之后生产的文件存放在了当前路径下了。可以看出其中生成的simv文件为可执行文件,在终端可以通过它来打开图形界面./simv -gui标记相应的信号,然后按ctrl+4可以直接将

2021-02-02 22:42:28 3715

原创 使用matlab提取YUV文件各分量并存入txt文件

工具:MATLAB思路:1.YUV文件为视频序列文件,可以理解为很多帧图像,每一幅图像按照YUV分量进行存储像素,因此需要分别将每一帧的Y分量U分量V分量提取出来,将其存成十进制的txt格式。2.使用MATLAB首先提取出YUV文件的每一帧的三个分量参考链接:链接: https://blog.csdn.net/sinat_33718563/article/details/79248012?utm_medium=distribute.pc_relevant.none-task-blog-title

2021-02-02 17:57:58 1277 1

原创 解决win10(联想电脑)自动删除一些破解文件

今天在使用quartus的破解器的时候,每当我打开破解器的时候,系统总是自动删除我的注册机。直接上方法:注:在这之前,如果文件在压缩文件中,一定不要用win10自带的解压软件,它在解压的时候就给你自动删除了,这样后面的操作是实现不了的,我是用的360解压的,至少不会给我解压的时候直接删了,但是这样只能解压完放电脑上,一旦运行就会自动被删除。1.先在M开头的地方找到迈克菲,也就是联想的杀毒软件,把它打开。2.打开之后是这样的页面,我们点击右上角的设置按钮,然后在PC安全这项里有个实时扫描,打开。

2021-01-27 21:42:31 5419 3

vcs安装步骤.docx

vcs的安装步骤总结

2021-08-31

modelsim脚本仿真带IP的工程示例

可以看我写的博客了解细节https://blog.csdn.net/weixin_43649647/article/details/109508175

2020-11-05

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除