跳转到主要内容

技术

Python的22个编程技巧,Pick一下?

1. 原地交换两个数字

Python 提供了一个直观的在一行代码中赋值与交换(变量值)的方法,请参见下面的示例:
x,y= 10,20print(x,y)x,y= y,xprint(x,y)#1 (10, 20)#2 (20, 10)

赋值的右侧形成了一个新的元组,左侧立即解析(unpack)那个(未被引用的)元组到变量 和 。

一旦赋值完成,新的元组变成了未被引用状态并且被标记为可被垃圾回收,最终也完成了变量的交换。

2. 链状比较操作符

比较操作符的聚合是另一个有时很方便的技巧:
n= 10result= 1< n< 20print(result)# Trueresult= 1> n<= 9print(result)# False

FPGA驱动VGA显示静态图片

一 、前言

  本文设计思想采用明德扬至简设计法。VGA是最常见的视频显示接口,时序也较为简单。本文从利用显示屏通过VGA方式显示测试图案及静态图片着手带大家接触图像显示应用,算是为后续VGA显示摄像头采集图像以及HDMI高清数字显示方式打个基础。

二、VGA显示原理

数字设计FPGA应用学习笔记

<strong>第一章 FPGA基础及电路设计</strong>

使用 MATLAB 和 Simulink 实现你的机器人创意

机器人技术研究人员和工程师可以使用 MATLAB 和 Simulink 设计和优化算法,为真实系统建立模型,并自动生成代码——所有过程均在一个软件环境下完成。

从Xilinx Kintex-7认识FPGA

<font color="#FF8000">作者:lee神,FPGA开源工作室</font>

<strong>1. xilinx FPGA简介</strong>

学会System Generator(14)——不同溢出与量化方式的对比

本文是该系列的第14篇。第5篇中在介绍Gateway In block时谈到了System Generator中的数据类型,及不同的量化和溢出方式。本文将以两个简单的设计实例,更直观地说明不同的量化和溢出方式有什么区别。

利用 SoM 实现嵌入式微处理器/FPGA 组合设计和项目的快速运行

<font color="#FF8000">作者:Steve Leibson</font>

很多嵌入式设计使用基于微处理器和微控制器的单板计算机 (SBC) 和系统级模块 (SoM)(例如,请参阅“使用 Raspberry Pi 3 构建低成本工业控制器”)。但是,更多嵌入式应用无法忍受与软件相关的响应时间所带来的延迟。

这些应用需要只有定制硬件方可实现的额外性能,而开发定制硬件的最快捷方法就是使用 FPGA。

本文将讨论使用 SoM 来开发嵌入式系统的优势,这些系统需要借由 FPGA 提供更高的处理能力。本文还将介绍各种不同的 FPGA SoM,并讨论它们在嵌入式设计开发中的使用。

Vivado,SDK怎么设置字体大小

vivado:

1,打开vivado,选择菜单栏里的Tools->options
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/blog/201808/13334-39109-…; alt="" width="670"></center>

PCIe学习(二)——PCIe DMA关键模块分析之一

<strong>简介</strong>
经过一段时间的学习,这里将PCIe DMA模式的学习结果做一个总结,由于手里没有包含PCIe的板子,因此和学习PIO一样对DMA模式中的关键模块的代码进行逐条分析,希望对和我一样的初学者有所帮助。

软件:VIVADO2017.4。

Python字符串拼接六种方法介绍

1.加号
第一种,有编程经验的人,估计都知道很多语言里面是用加号连接两个字符串,Python里面也是如此直接用“+”来连接两个字符串;
print 'Python' + 'Tab'
结果:
PythonTab

2.逗号
第二种比较特殊,使用逗号连接两个字符串,如果两个字符串用“逗号”隔开,那么这两个字符串将被连接,但是,字符串之间会多出一个空格;
print 'Python','Tab'
结果:
Python Tab

Vivado使用技巧(14)——IO规划方法详解

本系列第13篇简单介绍了使用RTL工程IO布局工程两种方法定义IO Ports。在I/O Planning View Layout中(IO布局工程中是Default Layout),显示了FPGA器件资源、封装管脚、I/O Ports等详细信息。设计者借助这些信息来完成I/O规划。

PCIe学习(一):PCIe基础及生成PIO例程分析

<strong>简介</strong>
学习PCIe有一段时间了,这里将这段时间的学习做一个总结。由于手里没有包含PCIe的板子,因此所做的也就是尽力将XILINX提供的实例工程中的关键模块进行分析,包括 PIO_RX_ENGINE.v,PIO_TX_ENGINE.v,PIO_EP_MEM_ACCESS.v ,希望对和我一样的初学者有所帮助。

软件:VIVADO2017.4

<strong>第一步:PCIe基础知识 </strong>
PCIe协议比较复杂,XILINX官方提供了相关文档(pg054),此外也有不少好的中文学习资料(PCIe入门,PCIe体系结构导读)。文章结尾会上传部分学习资料,有需要的同学可以下载。

如何使用 HSI 为定制 IP 创建驱动程序?

本文主要介绍如何使用 HSI 工具来创建一个定制驱动程序,使 xparameters.h 文件驻留在 SDK 中。

<strong>第 1 步:在 IP 打包器中创建 IP</strong>

Zynq-7000 PS到PL端emio的使用

<font color="#FF8000">作者:OpensLee,FPGA开源工作室</font>

解开电源模块降额曲线的奥秘

<font color="#FF8000">作者:作者:德州仪器 Chris Glaser</font>

随着电子设备的尺寸越来越小,电源设计人员在设计电源时必须考虑热限值的问题。如果一个较小的电源无法在特定的应用环境(包括环境温度)下以高负载运行,那么它就等同于没有用处。

学会System Generator(13)——Vivado HLS调用C/C++代码

本文是该系列的第13篇。Vivado HLS是Xilinx FPGA开发套件中的一款软件,可以使用C/C++语言进行设计,并转换为RTL级模型。System Generator中的Vivado HLS block可以将HLS开发软件设计的C/C++代码整合到Simulink环境中,利用Simulink强大的仿真特性对设计进行仿真测试。

ug948中提供的官方例程为图像的中值滤波,该设计将一副256*256大小的RGB图像,添加噪声后提取出其中的Y通道,使用C++语言完成中值滤波。该设计将在Simulink环境下进行仿真。本文将完成改该设计,借此介绍上述功能。

调幅、调频、调相 与 I/Q 调制有什么区别?

无线通信是现在应用最为广泛的通信技术之一,其核心是把要传输的数据调制在载波上发射出去,载波状态的变化承载了不同的信息。

满足自驾车应用 嵌入式视觉诉求三低要素

<font color="#FF8000">作者:卢佳柔,新通讯 2018 年 9 月号 211 期《 行家出手 》</font>

自驾车商机诱人,驱动传统车厂与物联网厂商跨界抢进,更加速人工智能(AI)、先进驾驶辅助系统(ADAS)发展愈趋白热化。而嵌入式视觉也搭上AI与ADAS发展的顺风车,成为实现自驾车发展不可或缺的关键技术,为了要满足嵌入式视觉技术的灵活度,低延迟、低功耗与低成本的要素缺一不可。

深入理解阻塞和非阻塞赋值的区别

阻塞与非阻塞赋值的语言结构是Verilog语言中最难理解的概念之一。

有这样的两个要点:
(1)在描述组合逻辑的always块中用阻塞赋值,则综合成组合逻辑的电路结构;
**(2)在描述时序逻辑的always块中用非阻塞赋值,则综合成时序逻辑的电路结构。

这样做的原因是:**

这是因为要使综合前仿真和综合后仿真一致的缘故。

为了更好地理解上述要点,我们需要对Verilog语言中的阻塞赋值和非阻塞赋值的功能和执行时间上的差别有深入的理解。我们定义下面的两个关键字:
RHS——方程式右手方向的表达式或变量可分别缩写成 RHS表达式或RHS变量;
LHS ——方程式左手方向的表达式或变量可分别缩写成LHS 表达式或LHS变量。

Zynq-7000 ARM端MIO的使用

<font color="#FF8000">作者:OpenSLee</font>

<strong>1. 背景知识</strong>