自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c shell 脚本学习使用

bin/csh -f (使用 c shell 脚本解释,-f 表示快速启动,不会读取 .cshrc(全局文件) )第一步:创建一个compile.sh 脚本 (当然filename不一定需要都设置成这样)touch synopsys_sim.setup (创建该文件)synopsys_sim.setup(逻辑库和物理路径有映射关系)if(-f )then -f:查找文件(脚本目录下查找)synopsys_sim.setup(必须用这个名字)4、ls 查看该路径下的文件。2、f5 继续run。

2024-08-13 19:42:49 398

原创 FPGA笔试

1、半加器不考虑输入的进位,称之为半加。2、全加器反之,考虑进位。

2024-07-13 19:54:11 346

原创 verilog 笔试部分

而对同一个赋值对象不能既使用阻塞式赋值,又使用非阻塞式赋值。(8)所有的内部寄存器都应该能够被复位,在使用FPGA实现设计时,应尽量使用器件的全局复位端作为系统总的复位。(11)如果不打算把变量推导成锁存器,那么必须在if语句或case语句的所有条件分支中都对变量明确地赋值。(6)除非是关键路径的设计,一般不采用调用门级元件来描述设计的方法,建议采用行为语句来完成设计。(13)同一个变量的赋值不能受多个时钟控制,也不能受两种不同的时钟条件(或者不同的时钟沿)控制。(4)不使用用户自定义原语(UDP元件)。

2024-07-13 10:02:01 232

原创 AMD优化策略

如果代码中的复位是低有效就会消耗额外的查找表(用于逻辑取反),而 UltraScale/UltraScale+ FPGA 中的触发器则既支持高有效又支持低有效;7系列 FPGA 中的 DSP48 不支持异步复位,因此,如果代码中描述的乘法器使用了异步复位,那么相应的触发器是无法被吸收到 DSP48 内部的。如果流水级数较高的话,将任务进行划为小任务,同一个时钟周期的延时较小,此时支持的fmax可以设置较高,如果一个周期做多个操作,延时就比较大,这时fmax如果较高,容易造成时序违例。

2024-05-08 09:02:16 863

原创 VDMA+VTC

Line Buffer Depth :选项可以选择 MM2S 通道的行缓冲深度(行缓冲区宽度为 stream data 的大小),此处设置为 2048 即可。(1)ctrl:Video Timing Controller 配置接口,PS 通过这个接口配置 VTC(视频时序控制器)的寄存器;Read Burst Size :用于指定突发读的大小,此处选择 64,读突发的范围为 2~256 字节。(4)vtiming_out:Video Timing Generator 时序输出接口;VTC 时钟使能信号。

2024-04-05 15:27:00 285

原创 卷积神经网络基本知识

注:其中输入层两个节点与隐藏层三个节点均有连接,隐藏层三个节点也都与输出层每个节点连接,像这样每一层的每一个节点都和下一层的全部节点有连接的神经网络,就称作全连接网络(简称全连接)。2) 隐藏层:所有在输入层之后并且在输出层之间的层都是隐藏层,用于处理中间步骤,这些步骤通常不对用户展示,因此成为隐藏层。),是一种模仿生物神经网络的结构和功能的数学模型或计算模型,由大量的节点(或称“神经元”)相互联接构成。w1、w2,w3:称为权重,表示对应输入信号的重要性,权重值越大,表示对应的信号越重要。

2024-03-25 14:18:56 318

原创 aurora仿真使用等

ufc在没帧之后有一个周期的发送,(设置为一周期4byte,发送32bit)在仿真的时候大概需要700us才会有效,不然数据一直处于复位状态。

2024-03-24 15:54:51 196

原创 pcie_ip set 对riffa

Riffa 框架:

2024-03-20 23:34:15 233

原创 VGA_control

【代码】VGA。

2024-03-20 23:29:52 141

原创 matlab-图像处理

2024-03-20 23:27:20 328

原创 xilinx 的高速接口构成原理和连接结构

SouthCLK 是由相邻的上游 QUAD 提供的时钟或者给相邻下游 QUAD 提供时钟,上图是一个独立的 QUAD。NorthCLK 是由下游的 QUAD 提供时钟,或者给相邻上游的 QUAD 提供时钟。PCS parallel clock TXUSRCLK 是物理编码层使用的时钟,这里如果物理编码层和用户层位宽一样,这样 TXUSRCLK 会和 TXUSRCLK2 时钟频率。Xilinx 的高速接口是 QUAD 为单位的意思是 4 对收发器组成一个 QUAD 这是收发器的最小单元。

2024-03-18 21:04:49 640

原创 axi_lite时序

编辑axi_lite example。

2024-03-10 09:48:19 341

原创 手写数字识别COE生成

【代码】手写数字识别COE生成。

2024-03-02 18:37:11 360

原创 将数据写以BMP格式写入SD卡中

一下代码的作用是:原本数据是{FF,R,G,B},最高位的ff是不需要的,BMP格式不需要最高位的ff,通过这个函数将高8位的ff舍弃掉。以source指向的地址为起点,将连续的n个字节数据,复制到以destin指向的地址为起点的内存中。函数有三个参数,第一个是目标地址,第二个是源地址,第三个是数据长度。以下代码是将结构体赋值,主要是为了BMP数据head。

2024-01-22 20:25:01 401

原创 BMP图像文件头

文件头总字节为54 byte。3600:偏移54byte。

2024-01-21 20:41:23 531

原创 非常基础的白平衡算法分享

以上的这个效果图的问题是,越靠上的区域比较黑,这是因为当时是采用每一行的数据除以总的像素,得到该行对于总的子像素1920x1080x3的比例,因为是采用累加的过程,但是刚开始累加的和肯定比较小,除以一个固定的值会导致结果趋于0,对于数字电路来说,没有小数的情况下那就是0,因此在经过不断累加以后,越下方那么数值越趋于正常,因此下方的图像就越清晰。但是这个存在一个问题,那就是实际上当前帧的比例关系是上一帧和总的子像素1920x1080x3之间的关系,在采集足够快的时候,这个应该是没啥问题的。

2024-01-21 19:59:05 562

原创 ZYNQ 调用AXI WR RD ip及其代码

值得注意的是:zynq支持axi4.0 ,但是创建的ip是属于axi3.0,其区别主要是在数据位宽以及突发长度的区别。

2024-01-20 15:43:19 451

原创 ila波形导入modelsim

使用modelsim命令行去将该文件转换为.wlf文件,在modelsim中打开。

2024-01-10 22:35:06 421

原创 PCIE基础知识

主要是Root point(根端口)和endpoint(端点设备),Root point作为主机,与CPU和内存交互。pcie1.0 2.0使用8b/10b 2.5gt 5.0gt(单个lane的传输速率)pcie3.0 4.0使用128b/130b 8gt 16gt。3、通道数有X1/X2/X4/X8/X12/X16/X32。5、基于数据包的传输协议。1、点到点之间的传输。

2024-01-10 17:00:29 435

原创 verilog高级数字系统设计技术与实例(第八章)

如果存储容量小于1K位,使用触发器作为储存单元是合适的;如果大于1K位,使用SRAM作为储存器单元更为合适。fifo内部使用的是二维储存器阵列,存储器可以采用SRAM(静态RAM)或者由触发器组成。3、输入数据路径和输出数据路径之间的数据位宽不匹配时,可用于数据位宽调整电路。1、当输入数据速率和输出速率的匹配时,作为临时存储单元。基于触发器或者SRAM的FIFO。2、用于不同时钟域之间的同步。

2024-01-09 19:44:56 403

原创 verilog高级数字系统设计技术和实例分析(第七章)

时钟抖动是实际时钟边沿偏离理想时钟边沿的大小,不存在完美的上升和下降沿。提供给所有的触发器,时钟树的设计目的是确保之中分配网络的延时保持相同,从而向所有的触发器提供频率和相位相同的工作时钟。是同步时钟(相同频率、相同相位)类似,但是系统时钟应用于多个芯片。干扰会被逐级传递下去,在同步电路中,由于时钟的存在逻辑电路产生的干扰和毛刺会备用欧晓滤除。应用于芯片间的通信,采用源同步通信时,两个芯片在传递数据的同时还传递该数据同步的时钟。同步时钟:对于所有的触发器,时钟频率和相位都是相同的,用于单一芯片内部。

2024-01-09 18:23:49 518

原创 Zynq中spi、iic等协议配置器件

首先打开EMIO,比如iic需要2个接口,那就打开两个emio-gpio口,在这配置zynq时记得打开spi、iic接口,在arm上初始化iic、spi等接口,记得绑定。zynq上的EMIO接口选择上会有三种类型:输出、输入、高阻状态,使用啥就make external ,绑定引脚。下面是初始化gpio流程。

2023-12-31 19:12:33 635

原创 zynq-uart中断学习记录+关闭cache

关闭cache:Xil_SetTlbAttributes(0xFFFF0000,0x14de2);uart中断初始化流程。

2023-12-29 19:36:27 503

原创 zynq:pl-ps硬中断设置

对于硬中而言,需要设置将中断映射到哪个cpu上,其函数为。

2023-12-28 20:29:05 660

原创 zyqn-arm软中断设置

所有SGI都是边缘触发的,sgi的灵敏度类型是固定的,不能改变。4、连接软中断信号与注册软中断回调函数。3、注册异常处理回调函数到CPU。5、使能中断控制器中的软中断中断。2、初始化中断控制器。

2023-12-27 20:14:53 594

原创 AMP处理器架构+共享地址中断+SD卡启动(2018.2 vivado)

我们既可以给固定地址中赋值,也可以从固定地址中取值。例如:(volatile unsigned long *)i ,语句中 i 即为 (volatile unsigned long *)的一个指针,而 *i 即代表 i 中存储的值,我们既可以对其赋值,又可以从其中取值(浮点数在内存里是按2进制存储的)。3)(volatile unsigned long *) 0xE0200280,此处把变量换成了固定地址,意思是(volatile unsigned long *)指针指向固定的地址0xE0200280;

2023-12-26 21:40:29 1079 1

原创 zynq arm中断系统初始化流程(2018.2 vivado)

分别是Bank2、Bank3,所以在中断处理函数中应当过滤掉不是目的管教的中断。对于emio的中断而言,64个管教共用一个中断id,每次有中断都会有。xgpiops_intrgetstatus()函数。4、连接GPIO中断信号并注册gpio回调函数。8、使能中断控制器中的gpio中断。3、注册异常处理回调函数到CPU。来确定是不是目的管教的中断。6、设置GPIO的回调函数。5、设置gpio中断类型。7、使能对应pin的中断。两次进入中断处理函数。2、初始化中断控制器。

2023-12-24 15:33:03 496

原创 zynq中断学习记录

触 发可屏蔽中断的事件源不是每次都是重要的。除了irq# 61到#68和#84到#91之外,所有的中断灵敏度类型都是由请求源固定的,不能更改。2、私有中断(private peripheral interrupt ,PPI)(CPU0、CPU1各有5个),包括全局定时器、专用看门狗定时器(AWDT)、专用(私有)定时器和来自 PL 的 FIQ/IRQ。对于软中断来说:所有的 SGI 都是边缘触发的,且其敏感性类型是固定的,不能修改。对于共享中断来说:对于电平触发的中断而言,接收中断以后需要清除。

2023-12-24 15:05:49 390

原创 呼吸灯代码

**/int main()int status;int i,j;int flag=0;if(status!XGpioPs_XGpioPs_while(1){for(i=0;i

2023-12-22 20:06:52 334

原创 指针使用记录

赋值(&取址符,将a的地址赋给ptr,也就是说ptr指向a)reglist结构体中个num赋值为0x01;定义一个reglist结构体指针 ptr;ptr指向地址的数据为0x01(赋值);ptr指向地址0x1000000;

2023-12-21 15:43:14 365

原创 verilog函数

readmenh("txt文件",定义的数组reg [7:0]num[127:0])(定义256个位宽为128的寄存器)仿真遇到$stop,仿真器停止仿真但是不退出,同时提出一个命令提示符,在命令提示符后输入“.”,,则仿真过程继续。仿真遇到$finish后,仿真器完成仿真并退出。调用函数时,返回一个32位带符号的随机整数。将仿真器当前的仿真状态信息保存到指定文件中。返回仿真器的当前仿真时间(四舍五入)

2023-12-19 20:38:16 612 1

原创 异步fifo的输入输出

之前我一直在想,加入16bit输入到fifo,8bit读出的话是高8bit先出还是低8bit先出,同样,如果是8bit输入的话,先输入的8bit在高8位还是低8位,带着这个问题,我写了一个demo,来看看这个问题的答案。对于16bit转两个8bit的fifo来说,16bit的高8位先输出,低8位后输出。进入fifo的16bit在读出的32bit中居于高16位。这是什么定则我也忘记了,希望有人能告诉我,有错误欢迎指正。同样输入16bit,输出32bit来说呢?我想从这个截图上可以得到答案,那就是。

2023-12-05 11:06:17 433

原创 常见时钟约束(源同步)

FPGA与外部芯片之间的通信时钟都是由源寄存器所在一侧(输出端产生),称为源同步接口。(从FPGA给到外部芯片、外部芯片给到FPGA)就是输入到FPGA的数据引脚,有对应的同步时钟信号也连接到FPGA引脚,并且在FPGA器件的内部也使用这个同步时钟信号去锁存该输入的数据信号。注:一般专用芯片这个数据之间的skew很小,几乎是数据周期的 1/40 左右,比如 8ns 周期,data skew=8/40=0.2ns。FPGA与外部芯片之间的通信时钟都由外部同一时钟源(系统时钟)产生时,称为系统同步接口。

2023-12-02 16:29:27 1486

原创 万兆(多模单模、单芯双芯)模块基础知识

万兆多模指的是采用多模光纤进行传输的万兆以太网技术,而单模则指采用单模光纤进行传输的技术。光源:单模光纤需要使用激光器作为光源,价格较高,而多模光纤可使用LED作为光源,价格较低。1、单模单芯光纤收发器:单模单芯光纤收发器传输信息是用一根芯线按收发顺序传输。1、单模单芯光纤收发器:单模单芯光纤收发器传输信息速度较慢,抗干扰性差。2、单模双芯光纤收发器:单模双芯光纤收发器传输信息速度较快,抗干扰性好。2、单模双芯光纤收发器:单模双芯光纤收发器传输信息是同时收发,缺点:光纤价格较高,对于中小型企业较为不适用。

2023-11-25 19:16:25 3302

原创 时序分析基础知识(1)

FPGA与外部芯片之间的通信时钟都是由源寄存器所在一侧(输出端产生),称为源同步接口。(从FPGA给到外部芯片、外部芯片给到FPGA)就是输入到FPGA的数据引脚,有对应的同步时钟信号也连接到FPGA引脚,并且在FPGA器件的内部也使用这个同步时钟信号去锁存该输入的数据信号。FPGA与外部芯片之间的通信时钟都由外部同一时钟源(系统时钟)产生时,称为系统同步接口。时钟路径:时钟从源端到达源端寄存器和目的寄存器的路径。是走的网络节点,时钟到达每个寄存器的偏斜(skew)比较小,而。越小,影响的是保持时间。

2023-11-25 19:09:29 371

原创 基于zynq7020的温湿度检测项目

【代码】基于zynq7020的温湿度检测项目

2023-03-22 16:05:16 414 3

原创 uart简略时序图及代码

本文是本人经过学习uart后再自己独立不参考任何资料,自己独自写的代码,其主要目的就是想让自己习惯这种自己来设计代码过程,刚开始是比较慢的,但是我相信不断地重复这些,慢慢都会熟悉的。一下是我当时的一些时序图和代码的部分,有问题的读者可以私聊我交流讨论。

2023-03-13 16:53:04 165

原创 VGA的白块移动

在屏幕左上角产生一个200x200的白块(屏幕是640x200),进行移动,碰到边界就立马返回。通过VGA输出在屏幕显示三种颜色,红绿蓝;

2023-02-14 19:23:34 136

原创 基于FPGA的时钟(简易版)

2.通过串口可以改变时钟,同时以修改后的数值为基础继续计时;1.上电后从00-00-00开始计时;

2023-02-12 16:30:39 513

原创 python 第二章 数据类型及其转换

自学记录、python第二章

2023-02-06 20:24:13 99

空空如也

空空如也

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

TA关注的人

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