自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 zcu106 lwip搭建以太网配置寄存器

2022-12-01 17:23:35 1138 1

原创 驱动入门笔记

2022-11-21 22:57:38 431

原创 I.MX6UL的uboot移植

uboot移植笔记

2022-11-15 22:11:17 909

原创 uboot笔记

uboot指令

2022-11-10 00:12:22 678

原创 FPGA杂记

我们取pos_cnt==2’d1的时候div3_o_r0输出高电平,neg_cnt==2’d1的时候div3_o_r1输出高电。由于div3_o_r0和div3_o_r1输出1个时钟的高电平,但是相位相差180°,因此只要执行div3_o=div3_o_r0|计数周期是0-1-2,共。在线逻辑分析仪的采样深度,使用的是FPGA的BRAM,以及设置Captrue control,对于这种超慢信号,div3_o_r1运算,就能实现1.5倍周期的输出高电平,那么剩余的1.5倍源时钟周期就是输出低电平了。

2022-11-08 22:01:09 2297

原创 I.MX6U ALPHA裸机开发

I.MX6U逻辑开发笔记

2022-11-08 21:51:38 861

原创 ZYNQ7010的PS编程笔记

【代码】ZYNQ7010的PS编程笔记。

2022-09-10 00:40:42 936

原创 时序分析 建立时间和保持时间

建立时间和保持时间

2022-07-05 21:33:20 2349

原创 warning: TCG doesn‘t support requested feature: CPUID.01H:ECX.vmx [bit 5]Could not initialize SDL

今天在用qemu-system-x86_64时,我在xshell中使用指令时候报错:warning: TCG doesn't support requested feature: CPUID.01H:ECX.vmx [bit 5]Could not initialize SDL(No available video device) - exiting原因是当前环境xshell中没有图形界面,需要在ubuntu下去操作指令。也可以加-nographic -app...

2022-04-15 02:51:02 4106

原创 petalinux笔记

记录一下这两天用正点原子开发板学petalinux的过程,众所周知,ZYNQ可以跑逻辑的FPGA,也可以跑裸机的SDK代码,还能跑个linux系统。在SDK开发中,只是在塔好的FPGA上跑一些简单的c代码,还没有安装上一个系统。1.首先是petalinux2018.3版本的安装建议参考正点原子的安装方法,注意事项就是使用ubuntu16.04版本而不是ubuntu18。要么就用ubuntu16.04配上petalin2018.3版本,要么就是ubuntu18配上pet...

2022-03-25 20:05:54 1956

原创 C++函数模板

参考 C++模板第二版1.模板的检查模板检查两次。第一次是在模板定义阶段会去语法检查,但是并不包含参数的检查。第二次是在模板实例化的过程中,为确保模板正确,模板会再次检查。2.函数模板的写法(1)typename 标识了一个类型参数(2)typename也可以采用class,二者等价的,但是typename除了class,还可以接受其他类。#include<iostream>#include<string>// using namespac..

2022-03-18 19:34:34 1054

原创 关于modesim以及questasim的问题

在电脑安装了modesim之后再安装questasim,会出现vsim只能指定为modesim的位置,怎么去解决这个问题呢???解决方法是直接卸载了modesim,这样就恢复正常了。不知道有没有更好的解决方法呢

2022-01-12 22:55:05 975 1

原创 UVM实战windows下运行

本来准备用VCS搭一个,但是电脑一开虚拟机就有点卡,就先用windows跑跑看,我参考UVM-01 win10环境下利用questasim仿真《UVM实战》代码这篇文章,写的很详细。首先电脑上安装破解questasim,然后下载UVM实战书的代码。(1)复制ch2->section2.2->2.2.3的代码以及ch2->dut的dut.sv到一个文件夹下面。也就是图上的三个sv文件。(2)编写一个do文件set UVM_HOME D:/Sof...

2022-01-12 14:31:56 1737

原创 UVM笔记1

主要是我在看《UVM实战 卷一》的一些笔记。1.什么是 `uvm_component_utils这是一个宏,而且是无参数的宏。作用是注册新类,目的是为了兼容各种仿真工具。类似的宏,还有`uvm_object_utils。class A extends uvm_component;`uvm_component_utils(A);...endclass2.什么是A::type_id::create首先A是自定义的一个类,这里相当于创建一个A类的对象。A_...

2022-01-12 14:18:36 331

原创 四、Testbench

文章目录一、initial二、$finish $stop三、$display $monitor四、$time $realtime五、$random $random(seed)六、$readmemb $readmemh七、$fopen $fclose八、task九、存储器十、while for repeat十一、force release十二、fork/join总结基本都是不可综合语句一、initialinitial语句用来对变量进行初始化,仿真器在仿真时刻0就可以得到初始值,如果不.

2021-12-05 22:09:22 1434

原创 ZCU106以太网

目录一.ps_mio_eth_1g二.pl_eth_1g一.ps_mio_eth_1g使用FPGA板载的RJ45接口,使用zynq Ultrascale+ Mpsoc的GEM3,然后直接用vitis或者SDK跑Iwip来构建以太网。二.pl_eth_1g参考官方的zcu102例子搭建,使用SFP构建1000Base-x的转接口。需要找到GTH(GTH是一种高速的收发器,支持500Mb/s到16.375Gb/s的传输速度)的位置,如图所示,USER_MGT_Si570_C...

2021-12-01 16:16:29 1313

原创 CPU设计实战(一)

第二章、第三章 任务与实践文章目录第二章、第三章 任务与实践第二章 硬件实验平台及FPGA设计流程1.跑马灯第三章 数字逻辑电路设计基础1.寄存器堆仿真2.板载RAM以及分布式RAM的仿真3.数字逻辑电路的设计与调试第二章 硬件实验平台及FPGA设计流程我的手上只有ZCU106板卡,并没有对应的龙芯平台的板子。1.跑马灯组合逻辑的点灯,对于每一个灯,由Switch开关来控制。led.vmodule led( input [7:0] switch, output [7:0]

2021-11-25 13:28:50 2429 1

原创 Balser相机的硬件触发(一)

一、下载Balser相机所需要的软件 pylon viewer 型号为acA2440-20gm有三种触发方式 硬件触发 软件触发 自由运行二、连接网线,主要关注触发信号这块。引脚 分别对应六种颜色为 红色 绿色 白色 蓝色 棕色 黑色Trigger Mode是触发模式选择,可见,需要先选择对应的触发模式,再将Trigger Mode更改为ON。(1)对于选择software的软件触发,Trigger Mode 为on便可以实现软件触发。(2)对于选择的Line1 Line3

2021-11-23 19:41:02 7862 4

原创 KV260(一)跑通相机例程

文章目录前言一、镜像文件二、连线1.连接好网线接口到路由器,USB-micro-USB线到电脑,HDMI线到一台显示屏。2.启动3.跑相机例程4.结果三、jupyter前言KV260板卡支持vitis-ai,板卡本身有很多丰富的例程。一、镜像文件https://www.xilinx.com/member/forms/download/xef.html?filename=petalinux-sdimage-2021.1-update1.wic.xz首先在网站上下载镜像,根据官方的流程来,先用B

2021-11-23 15:51:24 2352 5

原创 FPGA的Project工作模式(基于tcl脚本)

vivado的两种工作模式,project模式以及Non-project模式。 其中project模式可以以GUI界面也可以用tcl语言来操作,下面是以wavegen的实际操作例子。(1)新建一个wavegen工程。 打开工程后,需要修改一下ip为xcix格式。(xcix是将xci生成文件压缩的二进制文件格式),点击ip右边对应的Enable Core Container就可以更改xci为xcix格式。(2)将对应需要资源整理到一个新文...

2021-11-16 20:49:07 1379

原创 Tcl语言入门(一)基本知识

之前看过一个华为tcl的手册,看过数字集成电路静态时序分析这门课,加上在时序分析中用过一些,趁着双十一买了高亚军老师新出的《vivado/Tcl零基础入门与案例实战》。Tcl是一门脚本语言,同时也是跟python类似的解释性语言,所谓的解释性语言就是执行时候顺序解释执行,而不需要编译,当然它也比较慢。同时,tcl语言数据类型与其他语言不同,它默认数据类型为string类。 安装好vivado后会默认带一个vivado tcl shell,可以直接用...

2021-11-14 15:46:45 14219

原创 基于FPGA的时序分析

本文主要参考猫叔的时序分析,在看了大佬的博客后,我总结了下面的PPT。

2021-11-11 22:11:56 663

原创 DC工具的基本使用(一)

本文主要参考DC WorkShop Lab2_w1152715961的博客-CSDN博客一直以来,我都是把代码直接扔到vivado里面,从来没有考虑过它的实际综合的过程是怎么实现,这周有时间来研究一下design compiler工具的使用。(一)原理 逻辑综合工具实际上就是将RTL代码映射到具体的工艺库上(一般由制造厂家提供),再通过添加约束信息(时序约束,线载模型,面积,功耗等,主要以tcl语言形式),对RTL代码进行逻辑综合,形成门级网表(netlists)...

2021-11-07 12:38:28 6671 3

原创 AXI4总线(axi_lite_slave)

本文参考 米联客2020 版AXI4 总线专题xilinx的AXI总线包括了AXI4 、AXI4-Lite以及AXI4-Stream三种。AXI4:(For high-performance memory-mapped requirements.)主要面向高性能地址映射通信的需求,是面向地址映射的接口,允许最大256 轮的数据突发传输;AXI4-Lite:(For simple, low-throughput memory-mapped communication )是一个轻量级的地址映射单次传输接

2021-11-03 15:15:51 3421 2

原创 二、verilog除法器

1.目标:使用verilog实现一个32位的除法器,实现27/5 = 5……22.方法:首先将被除数前面补上16个0,在除数后面补上16个0A被除数27: 0000_0000_0000_0000 0000_0000_0001_1011B除数5: 0000_0000_0000_0101 0000_0000_0000_0000循环用A减去B,如果前者小于后者,就将A向左移动一位,否则就是下面的情况:A被除数27: 0000_000...

2021-11-03 00:31:14 7443 1

原创 三、AMBA问题

(1)什么是AHB总线协议,包括有哪些信号,并描述对应信号的具体作用?AHB是AMBA总线的一种,它是一种高性能的pipe系统总线,分为三组总线:写数据总线(HWDATA) 读数据总线(HRDATA) 地址控制总线(HADDR) 这三组总线相互不影响,对于每一组总线,只能由一个master或者一个slave来进行操作,需要仲裁器来决定总线的控制权交给哪个设备,并控制多路选择器来选择获得控制权的设备进行传输数据以及地址信息,译码器根据地址来选择让哪个slave的数据通过选择器。...

2021-11-02 23:46:28 191

原创 一、verilog编写三分频电路

1.目标:使用verilog编写三分频电路,要求占空比大小为50%。2.方法:分别使用上升沿和下降沿计数cnt_p以及cnt_n,并且计数从0到N-1(N为分频的次数,此时为3);分别对clk_p以及clk_n做复位初始化为0,这样当它们计数到0或者(N-1)/2的时候分别进行信号的翻转;如果clk_p以及clk_n初始化为0,结果是clk_p | clk_n,如果初始化为1则是clk_p &clk_n。3.three_div_Freq.v`timescale 1ns / 1ps...

2021-11-02 23:35:55 10705

原创 vivado的ip使用

(1)在vivado中,使用ip时候会有两个选项可以选:global 将ip与vivado一起作为一个整体来进行综合out of context per ip(OOC) 将ip单独进行综合的过程,会生成ip对应的网报文件,这是一种自底向上的综合方式。 这种方式更快,节约时间。并且这种方式产生的ip可以在reports查看资源利用率。如果这里选择skip不会立即例化,可以在生成多个ip后进行统一的例化过程。(2)在用ip 或者 manage ip下的情况都会生成.xcic文件,这是一个压缩的二进制文

2021-11-01 21:12:23 1972

原创 VCS工具的基本使用(一)

VCS是在linux下面用来进行仿真看波形的工具,类似于windows下面的modelsim以及questasim等工具,以及quartus、vivado仿真的操作。1.vcs的基本指令vcs的常见指令后缀指令含义-l readme.log用于将编译产生的信息放在log文件内+v2k是使VCS兼容verilog 2001以前的标准-debug_all用于产生debug所需的文件-f verilog_file.f可将.f文件里的源码全部编译-R编译后

2021-10-31 23:07:49 19657 2

原创 linux常用指令

(1)创建文件 touch(2)文件删除 rm -rf r 强制删除文件以及以下的内容 f 删除无需确认(3)移动文件命令 mv(4)文件内容统计命令 wc(5)查找文件 findfind -name “*.v” > netlist -print//将所有v文件放到一个netlist文件夹中,并打印出来(6)排序 sort 倒序排序 sort -r(7) 比较文件的参数 diff(8)man tar man可以检查所有命令本身对应的手册,这里检查tar

2021-10-24 00:56:17 2188

原创 Systemverilog笔记 过程语句和子程序

第三章 过程语句和子程序1.过程语句sv吸收了C++的一些特性,包括了break以及continue语句等。//for循环语句以及do……while语句initial begin:example //可以给这个initial起一个编号名,这里叫example integer a[10],sum,j; for(int i=0;i<10;i++) //为每一个数组元素赋值 a[i]=i; sum=0;

2021-08-22 15:54:47 714

原创 Systemverilog笔记 数据类型

第二章 数据类型1.内建数据类型1.1 logic类型​ 原本的verilog代码中,需要分辨reg以及wire两种类型。在sv中,新加入了logic类型(逻辑类型)。​ logic类型既可以代替reg,也可以代替wire。但是logic不能有多个结构性的驱动,所以在对双向总线建模时,不能使用logic,而是应该使用wire类型​ 在代码中一律使用logic,这样当一个信号被多次驱动就会编译报错。如果你知道该信号确实需要被多次驱动,可以直接使用wire。1.2 双状态数据类型双状态(0

2021-08-20 17:19:10 1394

原创 Systemverilog笔记

这本绿皮书一共有12章第一章 验证导论(2021.8.7)本章内容主要讲了功能覆盖率的定义、测试平台的基本概念,个人感觉没有啥实际知识内容。第二章 数据类型(2021.8.7)第三章 过程语句和子程序第四章 连接设计和测试平台第五章 面向对象编程基础第六章 随机化第七章 线程以及线程之间的通信第八章 面向对象编程的高级技巧指南第九章 功能覆盖率第十章 高级接口第十一章 完整的Systemverilog测试平台第十二章 Systemverilog与C语言的接口...

2021-08-07 09:36:27 354

原创 Ultra96V2开发板配置pynq以及dpu-pynq

1.准备物品Ultra96V2开发板x1一根usb3.0A公对microB移动硬盘数据线x132GB SD卡以及读卡器 x1WiFi2.烧写镜像点击PYNQ网站并下载对应的镜像文件,这里我下载的版本是V2.6。烧写镜像需要使用工具,这里我使用的是Win32 Disk Imager在将读卡器插入电脑后,可以先对SD卡进行一次格式化,然后打开上面的软件,依次选择对应的磁盘,对应的镜像,然后点击写入,烧录时间大概5到10分钟左右,烧录结束后取下读卡器,将SD卡插入到开发板中。3.运行ju

2021-08-06 12:04:21 2636 8

原创 Unbuntu18.04如何安装Verilatorv4.204

因为“一生一芯”提供的安装包verilator_installer.tar.gz只能在Unbuntu20.04系统使用,但是我用的虚拟机版本是18.04,为了节约我可怜的硬盘空间,所以采用了提供的第二种方法。https://verilator.org/guide/latest/install.html# Prerequisites:sudo apt-get install git perl python3 make autoconf g++ flexbiso...

2021-07-12 10:50:28 1190

原创 zcu106--PL端读写RAM--2021.10.14

本文参考 ZYNQ MPSoC 开发平台 FPGA 教程1.创建工程 ram_test选择器件zcu106,并创建好ram_test.v文件。需要使用左边的IP catalog加入3个IP,分别是:(1)clk_wiz_0 用于使用差分信号125MHZ获得时钟clk(2)ila_0用于查看信号(3)ram_ip用于配置ram,ram使用Simple Dual Port RAM,并配置A B 端口的深度为512,数据为16位,B的使能管脚Enable Port Type 改为 A...

2021-06-26 00:04:11 605

原创 tcl指令记录

查看主时钟report_clock_networks -name mainclockcheck_timing -override_defaults no_clock

2021-04-21 21:36:48 163

原创 zynq之GPIO功能

本文参考正点原子嵌入式视频与其说是笔记,不如说是赛灵思文档翻译1.GPIO本文参考UG585 chapter 14GPIO定义指的是general purpose I/O ,它是zynq7000系列中MIO的一部分,它是一个外设(peripheral),是用来对器件的引脚作观测(input)以及控制(output)。GPIO的起始地址在0XE000_A000。MIO定义是指multiuse I/O,即多路复用,将来自PS外设以及静态存储器接口进行多路复用到ps的引脚上去。EMIO定义是用来

2021-03-29 21:03:35 1072

原创 ZCU106--PL+PS点灯

本文参考ZCU106开发之PL侧闪灯(1)首先打开vivado建立一个project:PL_LED(2)在project中创建一个设计文件:PL_LED.v具体代码如下,我使用的是vivado的2019.1版本://1.PL端led闪灯实验//zcu06//2021年3月15日module PL_LED( input clk_125_p_i, input clk_125_n_i, output reg led_0 ); pa

2021-03-15 19:44:59 3005

原创 ZYNQ之FPGA实验记录

1.led控制:控制底板的两个led灯,在1s内两个灯交叉闪烁,各0.5smodule led_twinkle( input clk,//50MHZ,等同于1ns,故有26位来计数,20ns input rst_n,//复位信号 output [1:0] led ); reg [25:0] cnt;//计数器 assign led=cnt<26'd2500_0000 ? 2'b10:2'b01; always@ ( posedge clk or negedge st_n)

2021-03-11 21:08:47 697

空空如也

空空如也

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

TA关注的人

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