- 博客(50)
- 资源 (6)
- 收藏
- 关注
原创 ZYNQ-Utlscale-RFSOC看门狗
ZYNQ-Utlscale-RFSOC 看门狗的程序网上里程很少,开源资料也是几乎没有,最近需要用到这个功能,来来回回搞了一周才搞定。刚开始参考ZYNQ7000的资源,发现MPSOC不适用。很感谢下面的几篇文章,给我很大的 帮助,我也是整合他们的代码,完成了该功能。
2024-09-01 13:59:39 929
原创 AURORA仿真
GT Refclk:该时钟是收发器的参考时钟,由外部一对差分输入时钟输入进来,取125MHZ。 INT Clk:初始化时钟,作为复位信号的一个时钟,可以由锁相环直接得到,取50MHZ。接下来例化了两次AURORA,一个是接收,另一个是发送。上面的tb代码,仿真了两个AURORA传输数据的功能。上面只是例化了这个IP核,把有用的信号引出来。首先,产生一个125MHZ的时钟。这里主要注意时钟的设计和线程的安排。使用锁相环产生50MHZ时钟。
2024-07-09 13:23:05 777
原创 用PS控制PL_DDR读写测试
项目功能:用PS端通过AXI4总线来控制PL端DDR的读写测试,并且改变测试频率,检测芯片性能。目的:用PS端方便改写程序,烧录可以节省很多时间。
2024-02-28 16:07:50 2019
原创 FPGA串口接收解帧、并逐帧发送有效数据——1
FPGA串口接收到串口调试助手发来的数据,将其数据解帧。判断到正确的帧头和帧尾之后,将有效数据存入rx_data中;另一方面发送端将有效数据逐帧发送出去。
2023-12-01 12:51:47 2522 3
原创 TCP解帧解码、并发送有效数据到FPGA
使用TCP协议接收到网络调试助手发来的指令,将指令进行解帧,提取出帧头、有限数据、帧尾;再将有效数据发送到FPGA端的BRAM上,实现信息传递。
2023-11-30 21:52:49 1825 1
原创 Verilog语法学习——LV10_使用函数实现数据大小端转换
数据的大小端(Endianness)指的是在存储多字节的数据类型(如整数)时,字节的顺序以及如何解释这些字节的顺序。具体来说,大小端涉及字节的排列顺序,以及如何将字节序列解释为一个完整的数据类型。在数字芯片设计中,经常把实现特定功能的模块编写成函数,在需要的时候再在主模块中调用,以提高代码的复用性和提高设计的层次,分别后续的修改。大端字节序是指将高位字节存储在低地址处,而将低位字节存储在高地址处。小端字节序是指将低位字节存储在低地址处,而将高位字节存储在高地址处。的函数,它接受两个4位的输入参数。
2023-07-28 10:07:20 1055
原创 Verilog语法学习——LV9_使用子模块实现三输入数的大小比较
请编写一个子模块,将输入两个8bit位宽的变量data_a,data_b,并输出data_a,data_b之中较小的数。并在主模块中例化,实现输出三个8bit输入信号的最小值的功能。在数字芯片设计中,通常把完成特定功能且相对独立的代码编写成子模块,在需要的时候再在主模块中例化使用,以提高代码的可复用性和设计的层次性,方便后续的修改。通过将子模块实例化到另一个模块中,可以在主模块中使用子模块。例化一个模块,该模块比较两个输入的大小,并输出较小的数。d:8bit位宽的无符号数,表示a,b,c中的最小值。
2023-07-28 10:06:20 1460
原创 Verilog语法学习——LV8_使用generate…for语句简化代码
在某个module中包含了很多相似的连续赋值语句,请使用generata…for语句编写代码,替代该语句,要求不能改变原module的功能。循环结合使用,可以生成硬件设计中的重复结构,以简化代码编写和提高可维护性。下面是一种常见的使用。是一种特殊的Verilog数据类型,用于在生成块中声明循环变量。是一个参数,表示循环的迭代次数,可以根据实际需求进行调整。关键字定义一个生成块,用于包含需要生成的相关代码。循环的语法类似于常规的软件编程语言中的循环语句。循环语句定义需要重复的结构。在Verilog中,
2023-07-28 10:05:14 346
原创 Verilog语法学习——LV7_求两个数的差值
根据输入信号a,b的大小关系,求解两个数的差值:输入信号a,b为8bit位宽的无符号数。如果a>b,则输出a-b,如果a≤b,则输出b-a。rst_n:复位信号,低电平有效。a,b:8bit位宽的无符号数。c:8bit位宽的无符号数。
2023-07-28 10:04:13 734
原创 Verilog语法学习——LV6_多功能数据处理器
根据指示信号select的不同,对输入信号a,b实现不同的运算。输入信号a,b为8bit有符号数,当select信号为0,输出a;当select信号为1,输出b;当select信号为2,输出a+b;当select信号为3,输出a-b.select:2bit位宽的无符号数。rst_n:复位信号,低电平有效。a,b:8bit位宽的有符号数。c:9bit位宽的有符号数。
2023-07-28 10:03:00 1080
原创 Verilog语法学习——LV5_位拆分与运算
现在输入了一个压缩的16位数据,其实际上包含了四个数据,[3:0],[7:4],[11:8],[15:12]现在请按照sel选择输出四个数据的相加结果,并输出valid_out信号(在不输出时候拉低)在testbench中,clk为周期5ns的时钟,rst为低电平复位。输出信号 validout out。0: 不输出且只有此时的输入有效。3:输出[3:0]+[15:12]输入信号 d, clk, rst。2:输出[3:0]+[11:8]1:输出[3:0]+[7:4]
2023-07-28 10:01:20 610
原创 Verilog语法学习——LV4_移位运算与乘法
已知d为一个8位数,请在每个时钟周期分别输出该数乘1/3/7/8,并输出一个信号通知此时刻输入的d有效(d给出的信号的上升沿表示写入有效)在每个case中,根据当前的状态值执行相应的操作。每个case对应一个状态,并描述在该状态下的行为。在testbench中,clk为周期5ns的时钟,rst为低电平复位。,用于存储当前状态的值。状态寄存器通常是一个有限状态机中的关键变量。语句根据当前的状态值执行相应的操作。在时钟的上升沿触发该。在Verilog中,可以使用。首先,声明一个状态寄存器。
2023-07-28 09:58:41 1072
原创 Verilog语法学习——LV3_奇偶校验
现在需要对输入的32位数据进行奇偶校验,根据sel输出校验结果(1输出奇校验,0输出偶校验)输入信号 bus sel。输出信号 check。
2023-07-28 09:56:45 260
原创 Verilog语法学习——LV2_异步复位的串联T触发器
在testbench中,clk为周期5ns的时钟,rst为低电平复位。输入信号 data, clk, rst。
2023-07-28 09:55:43 1036
原创 Verilog语法学习——LV1_四选一多路器
制作一个四选一的多路选择器,要求输出定义上为线网类型。输入信号 d1,d2,d3,d4 sel。输出信号 mux_out。
2023-07-28 09:54:13 392
原创 ZYNQ学习笔记——15_AXI_DMA
AXI DMA简介 概述 AXI DMA:AXI Direct Memory Access 直接内存访问 AXI MDA 为内存和AXI4—Stream 外设之间提供了高带宽的直接内存访问 其可选的S/G功能可以将CPU从数据搬运任务中解放出来。 AXI DMA 通过AXI4—Lite接口对寄存器做一些配置和获取。 MM2S:MemoryMap to Stream ,存储器映射(AXI4—Full)到 AXI4—Stream。
2023-07-22 15:22:32 1564
原创 ZYNQ学习笔记——14_AXI4_DDR实验
实验现象:在串口中输入“c”,程序会打印从 DDR3 中读出数据,串口打印出了 DDR3 存储空间中从地址 0x1000_0000 开始的 1024 个数据,每个数据 占 4 个字节;开发板上电后,在没对该地址空间进行写操作之前,DDR3 中的数据是随机的。按下按键,LED1点亮,再次输入“c”,DDR3 中指定的 4KB 存储空间中读出的数据依次为 1 到 1024, 与 AXI4_RW_TEST IP 核写入的数据一致。正点原子 启明星ZYNQ之嵌入式SDK开发指南_V2.0.pdf。
2023-07-21 17:51:27 612
原创 ZYNQ学习笔记——13_AXI接口简介
什么是AXI? AXI(高级可扩展接口),是ARM AMBA的一部分; AMBA:高级微控制器总线架构:是1996年首次引入的一组微控制器总线;开放的片内互联的总线标准,能在多主机设计中实现多个控制器和外围设备之间的连接和管理。AXI三种类型AXI4(AXI4—Full):用于高性能的存储器映射需求;(存储器映射:主机对从机进行读写操作时,指定一个目标地址,这个地址对应系统存储空间的地址,表示对该空间进行读写操作)AXI4—Lite:简化版的AXI4接口,用于低吞吐率存储器映射的通信。
2023-07-20 14:10:07 239
原创 ZYNQ学习笔记——10_xadc实验
与“hello world”实验相同,只配置UART0外设。串口打印的数据,有时会莫名出现乱码。但是如果出现的概率很小,可忽略。
2023-07-18 21:58:19 447
原创 ZYNQ学习笔记——5.AXI_GPIO实验
AXI(高级可扩展接口)是一种高性能、低功耗的总线协议,用于在不同的硬件模块之间进行通信。PS和PL之间的连接通常使用AXI接口,以实现数据传输和控制信号的交换。这种连接方式可以实现高速数据传输和灵活的系统集成,使得PS和PL之间可以进行有效的通信和协作。
2023-07-13 20:23:37 2426 1
原创 ZYNQ学习笔记——4.GPIO_MIO中断实验
INT_MASK:只读的,显示哪些位当前被屏蔽,哪些位未被屏蔽/启用。INT_EN:向该寄存器的任何位写入1,可以启用/解除中断信号的掩码。从该寄存器读取将返回一个不 可预测的值。INT_DIS:向该寄存器的任何位写入 1 都会屏蔽该中断信号。从该寄存器读取会返回不可预测的值。INT_STAT:该寄存器显示是否发生了中断事件。将 1 写入该寄存器中的某个位可清除该位的中断状态。将 0 写入该寄存器中的某个位将被忽略。INT_TYPE:控制中断是边沿敏感还是电平敏感。
2023-07-12 15:42:34 340 1
原创 ZYNQ学习笔记——3.GPIO_EMIO实验
PS和外部设备之间的通信主要是通过复用的I/O实现的(Multiplexed Input/Output,MIO)。此外,PS还可以通过扩展的MIO(Extended MIO,EMIO)来实现与外部设备的连接。ZYNQ GPIO 接口信号被分成四组,分别是从 BANK0 到 BANK3。其中 BANK0 和 BANK1 中共计 54 个信号通过 MIO 连接到 ZYNQ 器件的引脚上,这些引脚属于 PS 端;
2023-07-12 15:41:17 1442 1
原创 零基础学模拟电路--3.同相放大器、反相放大器、加法器、减法器、积分器、微分器
零基础学模拟电路–3.同相放大器、反相放大器、加法器、减法器、积分器、微分器基于上一节所讲的虚短和虚断,我们可以搭建出这些电路: 同相放大器,反相放大器,加法器,减法器,积分器,微分器,电压跟随器。接下来,我会运用虚断和虚断推导几个典型的电路。其余的电路,希望大家能自己推导一遍1.同相放大器2.加法器3.微分器关于微分器和积分器,这里还得补充一个知识点:电容两端的电压和经过电容的电流关系式:I=C∗dVIN/dtI=C*dV_{IN}/dtI=C∗dVIN/dt
2021-12-19 17:54:51 14802 4
AD9851-FPGA调试(并行模式)
2024-02-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人