技术

Python 浮点数的冷知识

上周的PyCoder's Weekly上分享了一篇小文章,它里面提到的冷知识很有意思,作者稍作补充,分享给大家。它提到的部分问题,读者们可以先思考下:若两个元组相等,即 a==b 且 a is b,那么相同索引的元素(如a[0] 、b[0])是否必然相等?若两个对象的 hash 结果相等,即 hash(a) == hash(b),那么它们是否必然相等呢?

ZYNQ进阶之路3--PL端UART 发送设计

在ZYNQ进阶之路2中我们讲解了PL端PWM呼吸灯的设计,本节我们讲解PL端实现串口UART的发送设计。

vivado约束之时钟路径分析

时序不满足约束,会导致以下问题:编译时间长的令人绝望;运行结果靠运气——时对时错。

关于Verilog中的几种赋值语句

连续赋值语句是Verilog数据流建模的基本语句,用于对线网进行赋值,等价于门级描述,是从更高的抽象角度来对电路进行描述。连续赋值语句必须以关键词assign开始。

Xilinx Srio详解&IP核使用

RapidIO是由Motorola和Mercury等公司率先倡导的一种高性能、 低引脚数、 基于数据包交换的互连体系结构,是为满足和未来高性能嵌入式系统需求而设计的一种开放式互连技术标准。RapidIO主要应用于嵌入式系统内部互连,支持芯片到芯片、板到板间的通讯,可作为嵌入式设备的背板(Backplane)连接。

位宽不足时数据溢出导致系统“假性卡死”问题分析

一次常规调试中发现上电后交换机多个口同时打流会导致卡死的现象,最后一步步分析问题出现的原因是位宽不够导致的溢出。

FPGA设计的几种常用基本时序路径

在高速的同步电路设计中,时序决定了一切,要求所有时序路径都必须在约束限制的时钟周期内,这成为设计人员最大的难题,因此,首先确定和分析基本时序路径有助于设计者快速,准确地计算时序裕量,使系统稳定工作,XILINX公司提倡的几种常用基本路径。

ZYNQ进阶之路2-PL端PWM输出呼吸灯设计

在 ZYNQ进阶之路1 中我们讲解了PL端LED流水灯的工程的建立,编码,综合和下载!本节主题,PL端PWM输出设计,讲解怎么用ZYNQ PL端简单实现2通道PWM波输出,其中工程创建过程以及综合生成bit文件过程不再累述!

详解Python拼接字符串的七种方式

忘了在哪看到一位编程大牛调侃,他说程序员每天就做两件事,其中之一就是处理字符串。相信不少同学会有同感。几乎任何一种编程语言,都把字符串列为最基础和不可或缺的数据类型。而拼接字符串是必备的一种技能。今天,我跟大家一起来学习Python拼接字符串的七种方式。

Verilog语言设计增加延时的正确方法

在设计仿真激励文件时,为了满足和外部芯片接口的时序要求,经常会用到延时赋值语句,由于不同的延时赋值语句在仿真过程中行为不同,会产生不同的激励输出,如果不认真区分不同表达式引起的差异,就可能产生错误的激励,无法保证仿真结果的正确,本文就是区分各种延时赋值语句的差异,并给出比较结果。

AXI总线协议时序

由于ZYNQ架构和常用接口IP核经常出现 AXI协议,赛灵思的协议手册讲解时序比较分散。所以笔者收藏AXI协议的几种时序,方便编程。

ZYNQ进阶之路1--PL流水灯设计

xilinx ZYNQ-7000系列芯片将处理器的软件可编程能力与FPGA的硬件可编程能力实现了完美结合,有低功耗和低成本等系统优势,可以实现无与伦比的系统性能、灵活性和可扩展性,同时可以加速产品的上市进程。与传统的SoC处理解决方案不同,ZYNQ-7000器件的灵活可编程逻辑能实现优化与差异化功能,使设计人员可以根据大部分应用的要求添加外设和加速器。

一文读懂视频编解码原理

谈到视频的编解码,我们会自然地想到H.264、HEVC/H.265这些权威的视频编解码标准;谈到标准,有人觉得这个是有专门机构去研究的,我们关心应用就好;即使有兴趣读了标准和相关技术,面对更多的是各种数学公式和术语,如协方差、傅立叶变换、高频、滤波等等,需要花更多时间去理解。

聊聊 Python 的内置电池

最近,我突然想到一个问题:相比其它语言,有哪些概念或习惯叫法是 Python 特有的?在朋友圈提出这个问题后,我得到最多的回复是——Pythonic 。这个回复一点都不意外,名字中自带 Python 的,当然是特有的啦,与它相似的,还有 Pythonista 。

Xilinx zynqMP开发基本步骤

使用Vivado 工具生成 .hdf文件,比如ZU9_cpu.hdf;使用SDK工具生成FSBL。FSBL的作用主要是初始化PLL,DDR,MIO管脚分配,烧写FPGA,运行uboot等。核心代码代码位于psu_init.c中。

ZYNQ-双核通信

今天,我们聊聊双核通信。双核通信的基础是已经建立好了双核工程,且配置完成。两个CPU之间传递数据,采用了共享内存,共享内存设置在OCM(On Chip Memory)内。

【vivado学习五】时序分析

典型的时序模型由发起寄存器、组合逻辑和捕获寄存器3部分组成,如图1所示形成了三条时钟路径:原时钟路径(Source Clock path)、数据时钟路径(Data path)、目的时钟路径(Destination Clock path)。

Xilinx MIG IP核配置及仿真

DDR对于做项目来说,是必不可少的。一般用于数据缓存和平滑带宽。今天介绍下Xilinx DDR控制器MIG IP核的例化及仿真。

zynq裸核FSBL

话不多说,进入今天的主题:生成zynq裸核启动文件。1、首先在vivado SDK中分别建立两个工程;2、配置Core1即从核中的BSP文件;3.配置Core0和Core1的DDR空间分配;4.建立FSBL文件,并配置main()文件;5.生成mcs文件和烧写mcs文件到QSPI Flash;6.完成操作将.MCS文件烧写进板子里

Python 内存分配时的小秘密

Python 中的sys模块极为基础而重要,它主要提供了一些给解释器使用(或由它维护)的变量,以及一些与解释器强交互的函数。本文将会频繁地使用该模块的getsizeof()方法。