自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 资源 (2)
  • 收藏
  • 关注

原创 基于FPGA的SPI主机数据接收发送控制器

引言:SPI是常用的板级通信协议,在FPGA板级通信中,许多重要的从器件都对SPI协议有所支持。因此,掌握SPI通信的FPGA片上实现对于FPGA工程开发具有重要的意义。本文设计了一个基于SPI模式0的主机通信控制器,系统性阐明了SPI设计的全流程。希望本文的设计能够对更多的人有所帮助。一、SPI通信协议简介1.物理层引线SPI通信的最小结构为一主一从结构,主机向从机提供信号发送接收时...

2019-05-28 22:11:40 7189 12

原创 XDC中I/O引脚配置Tcl语句(不含时序约束)

在Vivado的XDC约束文件中,想要配置一个引脚,就须使用XDC专用的Tcl语句进行配置。XDC语句享有最高的配置优先度。基本配置格式如下:set_property 属性名 属性值 [get_ports 顶层设计端口名]在I/O配置中,最简单的配置就是仅仅指定端口所对应的引脚,示例如下:set_property PACK_PIN L12 [get_ports {led[0]}...

2019-05-25 23:06:12 1974

原创 Tcl脚本语言基础

一、简介Tcl是一种被EDA工具广泛支持的脚本语言,通常作为EDA工具的shell实用。Tcl极其XDC扩展使用户可以利用Tcl语言在VIvado上完成一些系列开发操作,从而完成路径、时钟、端口的多重约束,从而快速实现FPGA设计工程测试与修正。这里简单介绍一下这些语句,具体的XDC专用语句在其余文章内说明解释。二、Tcl变量在Tcl中,所有的变量都是由ASCII字符串表达。变量使用s...

2019-05-25 19:50:48 13904 2

原创 FPGA设计中inout端口信号的仿真测试

inout端口作为输入输出口,其在综合中以三态门的硬件形式而存在。但在波形仿真中,其具有输入输出性质就需要特别的操作手法才可以观察到正确的仿真波形。在inout端口信号的仿真中,测试激励文件中Inout口必须定义为wire类型; 建议inout口的输入仿真和输出仿真分开来做,尤其是在IIC等互有交互变换时,因为这样会增加仿真激励文件的书写难度; 在进行inout口输入仿真时,把该端口在测试...

2019-05-19 21:36:12 7919 1

原创 基于FPGA的IIC主机数据接收发送控制器

绪论:IIC总线是一种常用的片级总线,它集成于很多器件当中。在构造一个FPGA系统框架中,往往会使用IIC总线对存储器等一些重要的外围器件进行读写。而在这种应用场景之下,IIC主机数据接收发送控制器就成为FPGA工程师所必须掌握的模块。本文设计了一种可进行读写双向操作的IIC主机控制器,但由于未根据传输数据量大小设立足够的缓冲区,因此通过了指示信号来进行信号传输沟通。当实际应用时,使用者可根据...

2019-05-19 21:02:57 3943 1

原创 基于FPGA的UART全双工数据控制器

引言:UART串行通讯协议是一种经典通讯协议,尽管在当前,它的通讯传输速度已经不能满足高数据量传输场景,但在传统的工业应用中还十分普遍广泛。在网上,一般所见到的可应用于FPGA设计的UART接口都遗留有编程语言的设计痕迹,无法实现FPGA上的多数据时序控制传输,因此本文提出了一种带有多标志位的UART控制器,可以满足数据流的双向全双工传递。但由于本人在设计上经验的缺失,本文采用的接收状态机与发...

2019-05-12 22:06:56 1499

原创 基于Verilog的贪吃蛇小游戏设计(附代码)

本文介绍基于verilog语言开发的贪吃蛇小游戏,FPGA板卡至少需要900个LC(文中程序需求1700个LC,可通过删减部分代码得到)、4个独立按键以及1个VGA接口。本文使用的板卡配有50MHz晶振,所配备的程序生成800*600*60Hz驱动信号,采用其它晶振频率的板卡需要对VGA驱动渲染模块(本文中为render)进行相应修改,使得刷新脉冲符合显示屏输入信号要求。 注意:...

2019-03-03 22:38:50 19935 74

翻译 Python基础学习:linecache模块

                            linecache——对文本行的随机访问资源代码:Lib/linecache.py    linecache模块允许它获取Python资源文件的任一行。当系统试图进行内部优化时,就会使用一个高速缓存。在通常情况下,从单一文件中读取多行是普遍存在的。这被traceback模块用于检索格式化回溯的资源行。    tokenize.op...

2018-10-12 10:12:54 6479

翻译 Python基础学习:fnmatch模块

                              fnmatch——Unix风格文件名匹配资源代码:Lib/fnmatch.py    该模块提供了对Unix shell风格的通配符的支持,这不同于日常的同名表达(这是针对re模块的文档中说明的)。shell风格通配符中的特殊字符如下: 模式 含义 * 匹配...

2018-10-09 20:38:21 3516

翻译 Python基础学习:glob模块

资源代码:Lib/glob.py    glob模块找出所有的匹配Unix shell的特殊模式的路径名,但是结果返回的顺序不定。没有波浪号扩展被使用,但是*、?和用[]包裹范围内的字符会被正确的匹配。这个用法通过os.scandir()和fnmatch.fnmatch()函数的协调使用,并且也不是通过实际调用子shell实现。注意:不同于fnmatch.fnmatch(),glob对待文件名...

2018-09-19 21:09:42 337

翻译 Python基础学习:tempfile模块

资源代码:Lib/tempfile.py    该模块用于创建临时文件和目录。它在所有支撑平台上都可以工作。TemporaryFile、NamedTemporaryFile、TemporaryDirectory和SpooledTemporaryFile是提供自动化清理的高级接口,也可用作上下文管理器。mkstemp()和mkdtemp()是低级函数,并且需要手动清理。    所有的用户可调...

2018-09-19 21:08:41 12467 1

翻译 Python基础学习:filecmp模块

资源代码:Lib/filecmp.py     filecmp模块定义了用于文件和目录比较的函数,不同函数拥有不同的执行时间和判定策略。对于文件的比较,也可以参见difflib模块。    filecmp模块定义了以下函数:filecmp. cmp(f1, f2, shallow=True)    比较文件f1和f2,如果他们等价,返回True。    如果shallow为...

2018-09-05 11:25:32 3019

翻译 Python基础学习:stat模块

stat—解释stat()结果资源代码:Lib/stat.py    stat模块定义了常数和函数,并用这些来解释os.stat()、os.fstat()、和os.lstat()的结果(如果这些函数在该平台上存在的话)。如果需要关于stat()、fstat()/和lstat()的完整细节,请查询自己电脑的系统文档。    stat模块定义了以下函数用于测试特定的文件类型:stat....

2018-09-02 17:11:23 7159

翻译 Python基础学习:fileinput模块

                                   fileinput — 遍历多个输出流的行代码资源: Lib/fileinput.py    该模块包含一个帮助类,以及可用于在标准输入、列表及文件中快速循环写入的函数。如果你仅仅只是想要读取或写入一个文件,请参照open()函数。    典型的使用如下:import fileinputfor line in...

2018-08-05 22:08:10 2036

原创 Python刷题:哈希表(三)

11.Find All Anagrams in a String    Given a string s and a non-empty string p, find all the start indices of p’s anagrams in s. Strings consists of lowercase English letters only and the length of b...

2018-08-01 22:41:00 1733

原创 Python刷题:哈希表(二)

6.Word Pattern    Given a pattern and a string str, find if str follows the same pattern.    Here follow means a full match, such that there is a bijection between a letter in pattern and a non-em...

2018-08-01 22:37:17 363

原创 Python刷题:哈希表(一)

1.Single Number    Given an array of integers, every element appears twice except for one. Find that single one. You algorithm should have a liner runtime complexity. Could you implement it without ...

2018-08-01 22:33:37 914

原创 Python刷题:简单数组(五)

21.Max Consecutive Ones    Given a binary array, find the maximum number of consecutive 1s in this array.    给定一个二进制数组,找出由该数组中连续出现的数字一的最大个数。示例:nums=[1,1,0,1,1,1],输出3程序:def fm(nums): curren...

2018-07-19 09:37:13 1822

原创 Python刷题:简单数组(四)

16.Contains DuplicateⅡ    Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array such that nums[i] = nums[j] and the absolute difference be...

2018-07-19 09:32:20 767

原创 Python刷题:简单数组(三)

11.Best Time to Buy and sellStockⅡ    Say you have an array for which the ithelement is the price of a given stock on day i.    Design an algorithm to find the maximum profit.You may complete as many ...

2018-07-16 10:37:28 825

原创 Python刷题:简单数组(二)

6. Plus One    Given a non-negative integer represented asa non-empty array of digits, plus one to the integer. You may assume theinteger do not contain any leading zero, except the number 0 itself. T...

2018-07-03 21:50:26 583

原创 Python刷题:简单数组(一)

这是一个简单的说明性帖子,题目是它挑选的。1.Two Sum    Given an array of integers, return indicesof the two numbers such that they add up to a specific target. You may assumethat each input would have exactly one solution...

2018-06-30 15:54:35 1349 1

翻译 Python基础学习:os. path模块

os.path——公共路径名操作资源代码:Lib/posixpath.py(针对POSIX系统)、Lib/ntpath.py(针对Windiws NT系统)、Lib/macpath.py(针对Macintosh系统)。    该模块实现了许多针对路径名操作的函数。读写文件请参考参数open(),使用文件系统请参考os模块。路径参数可以是字符串数据,也可以是字节数据。我们鼓励使用Unicode编码下...

2018-06-20 23:01:44 899

原创 FPGA:vivado2018.1编程界面字体大小与颜色修改

此篇文章针对vivado2018.1使用:    先在菜单栏选项找到Tools选项,点击开,选择最下方的settings,点击打开后,可以看到:     打开Text Editor选项卡,其中的Fonts and Colors为字体大小与颜色的修改项,点击进入。    名称(N)后为字体类型选项,可以不用修改。大小(S)为字体大小选项,初始值比较小,建议修改到18。修改的结果可以在Preview中...

2018-06-10 22:36:36 15867 1

翻译 Python基础学习:pathlib模块

pathlib——面向对象的文件系统路径代码资源:Lib/pathlib.py该模块提供了一些使用语义表达来表示文件系统路径的类,这些类适合多种操作系统。路径类被划分为纯路径(该路径提供了不带I/O的纯粹计算操作),以及具体路径(从纯路径中继承而来,但提供了I/O操作)。如果你之前从未使用过该模块或者不能确认该模块中那个类是你的任务所需要,请使用Path函数进行判别。它实例化了一个平台代码运行的具...

2018-06-08 15:22:26 25119 3

翻译 Python基础学习:operator模块

operator——函数的标准操作代码资源:Lib/operator.pyoperator模块输出一系列对应Python内部操作符的函数。例如:operator.add(x, y)等价于表达式x+y。许多函数的名称都被一些特定的方法使用,没有下划线加持。为了向下兼容,它们中的许多都保留着由双下划线的变体。那些不具备双下划线的变体是为了使表达更清晰。这些函数在各种函数目录里扮演者对相比较、逻辑操作、...

2018-05-30 14:58:40 39135 5

翻译 Python基础学习:functools模块

functools——高阶函数及其在可调用对象上的操作资源代码:Lib/functools.pyfunctools模块是为了高阶函数(该高阶函数的定义为作用于或返回其它函数的函数)而设置的。一般来说,任何可调用的对象在该模块中都可被当做函数而处理。functools模块定义了以下函数:functools. cmp_to_key(func)把老式的比较函数转换为关键字函数。它作为工具被使用,接受关键...

2018-05-22 11:16:10 11981

翻译 Python基础学习:itertools模块

itertools——创建迭代器的函数模块(提升了重复创建的效率)    该模块内嵌了一系列可用于迭代器构造的功能模块,它的灵感来自于APL、Hsakell与SML。所有的灵感都被重构为适合于Python的版本。    该模块标准化实现了一个可快速运行、高效存储数据的工具核心,它不止可以被模块自身使用,也可以与其余模块进行协作。并且,它通过“迭代器代数”使得模块间的协作可以构造出一个专业、简洁而高...

2018-05-17 19:33:51 1049

原创 Python刷题提升解析:第一季

本文所述的题目来自于题目出处,作者为:Python程序员本文只针对题目进行答案解析,题目的著作权由原作者享有。第一题:从键盘中输入两个数a,b,求他们的四则运算结果,要求保留两位小数。题目分析:该题目要求我们需要掌握input函数的用法,以及四则运算的判定实施,并且掌握对浮点数的打印显式规则。由于该题目在描述上还是比较模糊,因此我选择了由用户直接键入四则运算表达式,然后程序处理后给出结果,这样不仅...

2018-05-09 15:24:02 2537 1

翻译 Python基础学习:statistics模块

statistics——数学统计函数资源代码位置:Lib/statistixs.py       该模块为数学(限定为实数)数据提供了计算数学统计量的函数。1. 平均值与中位值测算       以下的函数可以用于计算总体或样本的平均值或典型值。mean()数据的算数平均值harmonix_mean()数据的调和平均值

2018-04-19 15:18:56 5472

翻译 Python基础学习:random模块

random——伪随机数生成模块       该模块包含构造伪随机数生成器的多个方法。对于整数,伪随机数有统一的选择范围;对于序列,选择的随机元素有统一标准,一个是在当前列表中进行随机排序,另一个是从种子样本中随机生成一个序列。       实际应用中,该模块有专用函数生成符合均匀分布、正态分布、对数分布、负指数分布、伽马分布、贝塔分布的函数。对于生成角,只支持冯·米塞斯分布。几乎所有的模块函数都...

2018-04-17 17:43:33 824

翻译 Python基础学习:cmath模块

cmath——复数域数学函数模块       该模块属于内置模块,随时可以调用。它提供了数学函数在复数域上扩展的运算函数,math模块内的函数属于其子集,该模块是为了某些需要在复数域上进行的操作站门设计的。该模块的函数允许复数、整数、浮点数等数据类型的输入。如无特殊说明,所有函数的返回值都应当为实部、虚部皆为浮点数的复数。1 极坐标与直角坐标的相互转换函数       在Python中,复数使用矩...

2018-04-12 17:15:52 6061 2

翻译 Python基础学习:math模块

       math模块中定义了一些数学函数。由于这个模块属于编译系统自带,因此它可以被无条件调用。该模块还提供了与用标准C定义的数学函数的接口。       要注意的是,这些函数无法应用于复数,但是在cmath模块中定义的同名函数可以支持复数运算,当然也会为此付出一定的性能代价。为什么会设置同名的函数却会有是否支持复数的区别,这是因为大多数用户完全不需要复数方面的操作,因此对于他们来讲,理...

2018-04-08 19:54:03 8578 3

翻译 Python基础学习:numbers模块

numbers——数字抽象基类,其源代码存储在:Lib/numbers.pynumbers模块定义了数字抽象基类的层次结构,逐渐定义更多的操作。该模块中定义的任何类型都不能实例化。 1.数字塔class numbers.Complex       数字的一个子类,用来描述复数以及可应用于内置复数类型的操作中。它们是:complex(复数)转化、bool(布尔)、real(复数实部)、image(复...

2018-04-03 20:16:31 7786

原创 Python基础学习:内置类型(4)

8.二进制序列类型——bytes,bytearray,memoryview    bytes和bytearray是核心内置类型中用于操作二进制数据的存在。而memoryview是用来支持它们的存在,该类型使用缓冲器协议访问其他二进制对象的内存,从而跳过复制操作,获取数据。附带提及一下,array模块支持基本数据类型(比如32位整型和IEEE754定义的双精度浮点数)的高效存储。8.1字节(byte...

2018-04-03 08:58:13 270

原创 Python基础学习:内置类型(3)

7.文本序列类型——str       文本数据在Python中以字符对象或字符串的形式存在。字符串是一个以Unicode编码形式存在的不可变序列,字符串文字可以由以下几种方式被写入:(1)单引号,如:’ allowsembedded “double” quotes’(2)双引号,如:” allowsembedded ‘single’ qutoes”(3)三倍引号,如:’’’Threesingle...

2018-03-28 22:28:12 224

原创 Python基础学:内置类型(2)

5.迭代器类型       Python支持对容器进行迭代的概念。他有两种不同的实现方法,但都可以归于使用用户自定义的类实现迭代。接下来,将详细解释说明:       第一种方法需要定义容器对象以提供迭代基础:container. __iter__()该方法返回一个迭代器对象,且该对象满足一系列迭代器控制协议。如果该容器支持不同类型的迭代对象,那么就可以提供额外的方法为这些迭代对象请求专用迭代器。...

2018-03-25 18:09:05 305 1

原创 Python基础学习:内置类型(1)

Python中基本内置类型由数字、序列、映射、类、实例和例外。一些集合类是可变的,因此那些可以增添、删除或排列这些类的方法不会奏效,只会返回None,用来示意函数调用者逻辑上的错误。但同时,几乎所有操作都支持几种典型的函数操作,比如说:比较、真值测试以及用str()或repr()函数转化为字符串。总而言之,了解Python内置的类型有助于编程者使用这门语言进行各类开发测试工作。1.真值测试    ...

2018-03-24 17:08:29 825

原创 Python基础学习:内置常量

Python中存在有下述几个常量,它们一直存在于内置的命名空间内,不可以被重定义。1.False       布尔值,假2.True       布尔值,真3.None       该常量自身就是一种类型,代表什么都没有。4. NotImplemented       该常量由专门针对二进制数据处理的函数返回,表示这个函数对除二进制数据外其它数据的排斥性。5. Ellipsis       省略的...

2018-03-21 19:39:17 274

原创 Python基础学习:内置函数(7)

61. classstr(object='')   class str(object=b'', encoding='utf-8',errors='strict')       将object内的数据转化为字符串格式,并反馈出去。 62.sum(iterable[, start])       将iterable参数内的项目从左到右的一个一个相加起来,再加上start参数对应的数字,然后返回它们的总...

2018-03-21 18:58:27 276

基于FPGA的IIC主机数据接收发送控制器

IIC总线是一种常用的片级总线,它集成于很多器件当中。在构造一个FPGA系统框架中,往往会使用IIC总线对存储器等一些重要的外围器件进行读写。而在这种应用场景之下,IIC主机数据接收发送控制器就成为FPGA工程师所必须掌握的模块。本文设计了一种可进行读写双向操作的IIC主机控制器,但由于未根据传输数据量大小设立足够的缓冲区,因此通过了指示信号来进行信号传输沟通。当实际应用时,使用者可根据实际数据大小标定缓冲区,从而减少控制信号标定带来的复杂性。另外,IIC总线控制器实际上是一个低速设备,由于当中必须使用到计数器,因此会造成关键路径上的大延时。如果需要使整个系统运行在更高的时钟频率下,请使用者使用锁相环为该模块分频出一个小频率时钟,并通过FIFO连接到FPGA内的其它模块。

2019-05-19

基于FPGA的UART全双工数据控制器

UART串行通讯协议是一种经典通讯协议,尽管在当前,它的通讯传输速度已经不能满足高数据量传输场景,但在传统的工业应用中还十分普遍广泛。在网上,一般所见到的可应用于FPGA设计的UART接口都遗留有编程语言的设计痕迹,无法实现FPGA上的多数据时序控制传输,因此本文提出了一种带有多标志位的UART控制器,可以满足数据流的双向全双工传递。但由于本人在设计上经验的缺失,本文采用的接收状态机与发送状态机的设置与控制存在有严重不足,希望本文的设计能够引起大家的思考。

2019-05-13

空空如也

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

TA关注的人

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