自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(85)
  • 资源 (10)
  • 收藏
  • 关注

原创 Xilinx 原语的具体实现方式大揭秘

今天发现了一个秘密,不知称为秘密是否恰当。之前使用Xilinx的原语都是直接调用的,不知到其具体的实现方式,使用的时候就感觉莫名其妙的。今天突然发现只要是原语都可以在Vivado的安装目录下找到其对应的.v文件。如果你Vivado的安装在C盘,则这个路径就是C:\Xilinx\Vivado\2015.2\data\verilog\src\unisims赶紧去看看吧...

2020-03-12 14:17:02 1111

原创 always@(posedge clk)时序赋值延迟一个周期

前几天是问了我一个小问题,我总结关键点如下:情形一:always@(posedge clk) begin if(ce == 1'b1 && ready == 1'b1) w_en <= 1'b1; else w_en <= 1'b0;end 情形二:always@(posedge clk) begin if(ce == 1'b1 &&a...

2020-01-15 09:44:41 12842 11

原创 verdi如何显示波形的所有值而不忽略高位的零

2019-12-30 11:13:16 2602 2

原创 Linux 下远程使用ssh远程登陆另一台主机并执行命令

工具:expextexpect 是什么,怎么用?expect是一个免费的编程工具语言,用来实现自动或者交互式任务通信,无需人为的干预。它是一门脚本语言,所以也与要自己的解释器,所以也必须安装解释器。在Linux安装:sudo apt-get install expect我的任务需求:1、需要远程登录到服务器(我使用SSH协议登录)2、可以自动输入密码,无需手动输入3、远程登录后可...

2019-12-03 19:34:41 2344

原创 Linux基础(一):Vim编辑器的源代码安装方式

说明:本次使用的是源码安装方式,通过Vim的源码安装也可以学习在Linux下如何使用源码进行软件的安装。下载vim源码解压源码cd ~mkdir temp#把源码拷贝进tempcp xxxxx /home/xxxx/tempcd temptar -xjvf xxxxx #(源码名字)#会得到一个vim81的目录安装必要的依赖sudo apt-get i...

2019-12-03 13:49:00 577

转载 小白也能开始VCS+Verdi的旅程

转载自:小白也能开始VCS+Verdi的旅程 前言 随着工艺发展,芯片集成度越来越高,内部能达到几千万甚至上亿的逻辑单元以及功能模块。无论是FPGA RD还是IC RD,在做复杂RTL开发的时候,都不可能保证没有经过Simulation功能正常运行,都需要进行仿真,可能FPGA RD接触的比较多的Simulation tool是Modelsim。 鄙人经历过...

2019-12-02 16:49:11 2465

转载 从零开始VCS+Verdi 安装过程

转载:转载自:从零开始VCS+Verdi 安装过程主要参考:VCS+Verdi 安装及破解过程(CentOS7)-----FPGA开发想要一个纯净的系统,所以在虚拟机上直接重新安装了空白的Ubuntu 16.04。然后(⊙﹏⊙)别人写的好简略啊,我咋一遍也出不来啊,磨了我快一周时间。主要讲讲过程吧,图片截图了没放上去,咋搭配不好,直接放弃(~﹃~)~zZ1. 安装文件结构–vcs-mx_v...

2019-11-28 15:36:25 5137 3

原创 乘法器设计(二):基于ROM的乘法器设计

乘法器的另一种实现思想是采用ROM的方式,即将被乘数和乘数连接起来拼成地址,把两者所有可能的乘积按照地址号存放在ROM的地址空间中,两个数相乘时,根据两者构成的地址从ROM索取乘积结果。首先,我们来看看为啥这样是可行的。我们会有一个疑问,两者构成的地址能把所有的乘积结果都包含在内吗?我们来局个例子,比如两个两个1bit的数相乘,可能的相乘方式有0x1,0x0,1x1,1x0,一共四种相乘方式,...

2019-10-30 11:48:32 3798 1

原创 乘法器设计(一):基于移位相加的乘法器设计

在硬件电路中,常采用二进制乘法器,因此只讲二进制乘法器的原理。二进制乘法原理与十进制乘法原理类似,都是将乘数的每一位和被乘数相乘,除此之外,二进制乘法还有其自身的特点,这对于硬件设计极为关键。二进制乘法器可以分为有符号数乘法和无符号数乘法。无符号数乘法较为简单,不需要对乘数和被乘数扩展符号位,直接使用乘数和被乘数相乘相加即可。举例:比如两个无符号数3(011)和6(110)相乘,那结果应...

2019-10-29 21:54:26 12052 2

原创 Xilinx COE文件生成

一、COE文件格式举个例子:这是一个完整的COE文件。第一行:MEMORY_INITIALIZATION_RADIX=16;表示的是几进制数据。第二行:MEMORY_INITIALIZATION_VECTOR=表示你要初始化的内容,然后把初始化的数据从第三行开始写,注意每一个数据后面都要有一个逗号。最后一个数据是分号。然后保存重新命名为xxx.coe...

2019-06-03 11:47:56 6016 1

原创 异步双口BRAM仿真

根据上图可知B口读出数据会延迟两个周期,这是需要注意的地方。因此在给读使能的时候要多给一个周期,否则会少读出一个数据。如上图,enb_wire在地址为0 的时候给出,然后在地址为9的时候给了两个周期的使能。然后再看输出,第一个数据在给出地址以后的两个周期才出数据。如果说使能在地址为9的时候只给出一个周期的使能,那么就只能得到9个数据。...

2019-06-03 11:30:17 923 1

原创 vivado 中文乱码解决

这是我遇到的乱码问题,准确的说我这个不算是中文乱码,但是如果你遇到这种问题的话,可以用我这种方法解决。解决办法:将输入法改为微软雅黑:看看效果如何:...

2019-06-03 10:11:20 18780 5

转载 永久修改PATH环境变量的几种办法

转载:https://blog.csdn.net/weixin_42155195/article/details/80689814 永久修改PATH环境变量的几种办法 查看PATH:echo $PATH以添加mongodb server为列修改...

2019-05-27 23:37:59 2577

原创 虚拟机下的ubuntu全屏显示

1、在虚拟机菜单栏下的虚拟机——>安装VMTools,这会下载一个安装包2、将上面下载的安装包复制到桌面,使用命令解压tar -xzvf 安装包名字3、安装解压出来的一个文件./vmware-install.pl4、等待安装完成就可以了...

2019-05-27 21:48:41 1781

原创 i386 与amd64到底谁个什么玩意?

简单的来讲,这两个表示安装包是几位的。i386就是32位的,amd64就是64位的。他们既可以安装在intel的cpu上,也可以安装在AMD的CPU上。我就是因为没注意这个,就又重新安装了一遍Ubuntu....

2019-05-27 21:31:30 3216

原创 ZedBoard:自定义函数读写AXI外设

摘要:本文主要讲如何自定义函数读写外AXI外设,摆脱对SDK库函数的依赖。本文举AXI_GPIO这个IP来讲解如自定义函数实现对AXI_GPIO的控制。编写过STM32程序的人应该都知道控制一个GPIO端口需要控制连个寄存器。一个是输入输出方向控制寄存器,另一个是数据寄存器。通过方向控制寄存器设置GPIO的输入输出方向,然后通过读写数据寄存器可以实现对GPIO的读写。一、在Vivado中定制...

2019-05-25 18:00:07 745 1

原创 zynq中断:共享外设中断之AXI GPIO 中断

摘要:本能篇主要讲一下AXI GPIO 中断,AXI GPIO 中断也是共享外设中断的一种。本讲和上一讲说的中断很像,区别就是AXI GPIO 中断需要AXI GPIO核。本章也是使用PL逻辑产生一组方波信号来做中断信号,方波的周期也是2秒。如下图L:中断信号产生的中断信号捅进AXI_GPIO0,然后输入到ZYNQ中。同时将AXI_GPIO0的中断信号连接到ZYNQ的中断输入端口。ZYN...

2019-05-23 21:06:17 6602 1

原创 zynq中断:共享外设中断(SPI)

关于zynq的中断说明网上有很多的帖子,比如说一下的帖子就写的很不错。https://blog.csdn.net/shangguanyunlan/article/details/53147587关于中断的说明不想在多说,详细的可以看上面的博客。我这里主要将如何编程实现。关于中断的说明将会分两篇来说明,第一篇是直接在PL端通过逻辑来产生中断,第二篇是通过按键来产生中断。本篇通过逻辑来产生中断信号,并将其接入ZYNQ的中断输入。产生的中断信号是一个周期方波,周期为2秒。![在这里插入图片描述](ht

2019-05-23 18:15:48 3327 1

原创 IC基础(九):单bit跨时钟域同步

在IC基础(三):跨时钟域处理——电平同步器https://blog.csdn.net/MaoChuangAn/article/details/88814300中介绍了点评同步器,但是其在由快时钟域向慢时钟域传输的时候clk_b有可能采样不到clk_a传输过来的信号。自己看过不少的书,其中对跨时钟域的处理讲的不是很明白,因此抱着试一试的心态在eetop上搜索了跨时钟域。直到看到大神“杰克淡定”讲...

2019-05-07 11:40:27 3024 3

原创 IC基础(八):超前进位加法器

一、概述在前一章中讲述了串行进位加法器,连=了解到了串行进位加法器的进位项的最长延时是限制速度的挂件所在,因此,加法器的进位项可以修改表示成如下:上式中有俩项,每一项都可以使得输出为1。我们定义:(1)生成(Generate)项:(2)传输(Propagate)项:根据生成项和传输项可以直接计算出每一级的进位项,最后根据传播项和进位项来计算求和项。表达式如下:si = Pi^G...

2019-04-12 18:26:49 10035

原创 IC基础(七):串行进位加法器设计

一、半加器对于两个二进制数字的加法器通过下面的真值表来表示。A B S C 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 其中,A、B是两个输入的数值,S是所求得的求和项,C为进位项。可以得到其逻辑表达式:S = A^B;C = A&B;上述表...

2019-04-12 17:30:15 5857

原创 IC基础(六):3x3脉动阵列计算矩阵相乘

本文是在看了一个博客之后才知道怎么做的,就是这个博客FPGA脉动阵列的设计,可惜的是这个博客是转载的,原博客已经找不到了。但是其介绍的还是很详细的,在次基础上我完成了自己的的3*3脉动阵列的设计。本文后面会给出一个PPT文档,也是介绍脉动阵列的,FPGA脉动这列的设计这篇博客似乎也是这个PPT启发的。一、引言引言的大部分内容来自《VLSI数字性信号处理系统:设计与实现》一书。脉动结构(也称脉...

2019-04-03 12:06:49 10244 29

原创 IC基础(五):序列检测器

序列检测器经常出现在笔试题目当中,其实其中的主要思想还是状态机的设计,因此本文也借着序列检测器这一点,讲讲状态机的设计。一、序列检测器要是实现什么功能?序列检测器主要是实现输入的一串序列是否是特定的序列。比如设计一个序列检测器,检测序列“11001”,检测到就输出1,否则输出0。二、设计状态机来检测序列首先要设计状态机,最好是先把状态转换图先画出来,有了状态转换图一切设计就很好办了。根...

2019-04-01 18:04:23 4341 1

原创 IC基础(四):UART异步串口通信

一、什么是UART异步串口通信?首先来解释一下,什么是UART。UART是Universal Asynchronous Receiver/Transmitter的简称,翻译过来开就是通“用异步收发器”。从关键字可以看出来,这是一个异步的通信协议,因为接收和发送使用的不是同一个时钟。另外一个关键字就是串口,串口说白了就是串行。串行通信只是用一根信号线传输数据,每次传输一位,串行传输的特点是线路简...

2019-03-27 21:17:29 4201 3

原创 Python杂项:回文数判断

设 n 是任意一个自然数,如果n的各位数字反向所排列所得自然数与n相等,则称n为回文数。如:123454321就是一个回文数,123321也是一个回文数,单独的一个数字也是回文数。x = 1223221strin = str(x)#转换成字符判断k=len(strin)if(1): for i in range(1,k//2): if(strin[i-1]!= ...

2019-03-26 19:29:15 2931

原创 Python杂项:凯撒密码

凯撒密码是古罗马凯撒皇帝用来对军事情报进行加密的算法,它采用了替换方法将信息中的每一个英文字母循环替换为字母表序列中该字符的后面三个,对应关系如下:A B C D E F G H I J K L M N O P Q R S T U V W X Y ZD E F G H I J K L M N O P Q R S ...

2019-03-26 17:07:46 1129 2

原创 IC基础(三):跨时钟域处理——电平同步器

一、什么是跨时钟域?在讲怎么解决跨时钟域问题之前,起码的先介绍什么是跨时钟域吧!!!那么跨时钟域指的是什么意思呢?在IC基础(一):异步FIFO的介绍异步FIFO的介绍中其实就存在跨时钟域的问题。跨时钟域简单的说就是两个模块之间运行的时钟频率不一致,并且这里两个模块之间需要通信。举个例子就是现在有两个模块A和B,其运行的时钟分别是CLKA和CLKB。CLKA和CLKB的频率和相位不同的话,一定是...

2019-03-26 10:31:59 3897 1

原创 IC基础(二):同步FIFO

在IC基础(二)中我们已经介绍了异步FIFO,本章介绍的同步FIFO会比上一章简单许多。一、什么是同步FIFO?这部是很简单的问题吗?同步FIFO就是读写时钟域都是同一个时钟的FIFO。也就是说同步FIFO不用考虑跨时钟域的问题。同步FIFO和异步FIFO的根本区别就是读写时钟的不一样。二、同步FIFO的常见参数clk:读写时钟rst_n:同步复位信号w_en:写使能信号r_en:读...

2019-03-25 15:30:33 4733 2

原创 IC基础(一):异步FIFO

今天看别人的博客研究了一天的异步FIFO,中遇到了很多问题。很多人可能有过这样的经历,当你研究一个东西,可能你当时很清楚你是怎么想的,但是过后就忘记了当时的思路了。因此我写博客的主要目的就是为了回头查阅方便。IC基础可能会写很多篇,本篇异步FIFO就是此系列的第一篇。...

2019-03-24 22:02:35 15909 13

原创 modelsim 10.5下载

链接:https://pan.baidu.com/s/1ceVUDGZiqkK7YNTZvZuJ_Q提取码:tc4qhttps://pan.baidu.com/s/1ceVUDGZiqkK7YNTZvZuJ_Q

2019-03-10 20:35:31 53202 11

原创 Xilinx MIG 控制器使用详解(三)

想要自己学习MIG控制器已经很久了,刚开始学习的时候也是在网上到处搜索MIG控制器的资料,深知学习过程的不容易。因此本系列的教程一定会详细的写出关于MIG控制器的相关知识,方便大家一起学习。有问题的朋友可以在下方留言,一起学习和讨论。 关于DDR3的基本知识在这里我就不详细说了,只有在相关的地方会提上一嘴。本教程的目的只是教会大家如何使用MIG控制器,大家一定不要觉得MIG控制器有多难,其实很...

2018-12-26 23:16:16 9763 27

原创 Xilinx MIG 控制器使用详解(二)

想要自己学习MIG控制器已经很久了,刚开始学习的时候也是在网上到处搜索MIG控制器的资料,深知学习过程的不容易。因此本系列的教程一定会详细的写出关于MIG控制器的相关知识,方便大家一起学习。有问题的朋友可以在下方留言,一起学习和讨论。关于DDR3的基本知识在这里我就不详细说了,只有在相关的地方会提上一嘴。本教程的目的只是教会大家如何使用MIG控制器,大家一定不要觉得MIG控制器有多难,其实很简...

2018-12-26 22:41:19 10917 10

原创 Xilinx MIG 控制器使用详解(一)

想要自己学习MIG控制器已经很久了,刚开始学习的时候也是在网上到处搜索MIG控制器的资料,深知学习过程的不容易。因此本系列的教程一定会详细的写出关于MIG控制器的相关知识,方便大家一起学习。有问题的朋友可以在下方留言,一起学习和讨论。关于DDR3的基本知识在这里我就不详细说了,只有在相关的地方会提上一嘴。本教程的目的只是教会大家如何使用MIG控制器,大家一定不要觉得MIG控制器有多难,其实很简...

2018-12-26 21:34:31 25194 33

转载 EMIO和MIO操作

转载:https://blog.csdn.net/hongbin_xu/article/details/75044283 MIO: Zynq7000 系列芯片有 54 个 MIO(multiuse I/O), 它们分配在 GPIO 的 Bank0 和Bank1 隶属于 PS 部分, 这些 IO 与 PS 直接相连。 不需要添加引脚约束, ...

2018-12-25 23:20:08 1946

转载 ZedBord AXI_GPIO 使用教程

转载:http://www.cnblogs.com/rocbomb/archive/2014/07/29/3876683.html前面我做了几个实验 都没有用过 开关,这一次用一用发现 vivado 真的挺方便 所以 使用 vivado 开发1.建工程我使用 vivado 2013.4创建新工程 –》 next –》next勾选 Do not specify sources at ...

2018-12-25 23:14:01 697

转载 Verilog HDL仿真激励的产生

转载地址:https://blog.csdn.net/formerman/article/details/4548895 一、变量初始化变量初始化的基本原则为:可综合代码中完成内部变量的初始化,Testbench中完成可综合代码所需的各类接口信号的初始化。初始化的方法有两种:一种是通过initial语句块...

2018-12-10 21:02:33 3818

原创 Xilinx SRL16E 使用详解

     在做FPGA的开发过程中经常会使用到移位寄存器,一般我们使用移位寄存器的目的都是为了将某个信号进行打拍,使得时序符合我们的需求。最常见的一种打拍方法就是在process过程语句中对信号进行移位(在verilog中是在always过程中进行移位)。但是这里我给大家介绍一下SRL6E,这个是Xilinx提供的一个原语,顾名思义,这是一个可以最大实现16位移位寄存的移位寄存器。      ...

2018-12-10 20:45:44 5977 4

原创 如何破解百度云下载速度

          之所以会接触到这个加速下载的插件,主要是因为我当时在下载一个文件的时候下载速度实在太慢了,所以就去网上查了有没有插件可以把百度云的限速给破解了。首先找到的是这个网页:https://www.google.com.hk/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp;ved=2ahUKEwiL2...

2018-12-06 22:41:40 22758

原创 Ubuntu虚拟机安装FTP服务器

1、更新 apt-getsuso apt-get install update2、安装FTP服务器sudo apt-get install vsftpd3、配置ftp服务器sudo gedit /etc/vsftpd.conf我的配置文件如下:# Example config file /etc/vsftpd.conf## The default compi...

2018-12-03 17:56:25 1803

原创 ZedBoard——安装交叉编译器

1、下载交叉编译器,这个在网上随便一搜就有,如果没有的可以联系我要一份。      交叉编译器:xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin2、将交叉编译器复制到Ubuntu系统中,如果使在ubuntu中下载的就不需要复制了。3、如果ubuntu系统使64位的,需要安装32位的依赖库。sudo apt-get install lib...

2018-12-03 15:15:10 392

axi_gpio_phy.rar

https://blog.csdn.net/MaoChuangAn/article/details/90549744 直接操作寄存器控制GPIO,摆脱对SDK库函数的依赖

2019-05-25

axi_gpio.rar

zynq AXI_GPIO 中断 https://blog.csdn.net/MaoChuangAn/article/details/90488018

2019-05-23

PL_PS_intr.rar

zynq中断例程。https://blog.csdn.net/MaoChuangAn/article/details/90485556

2019-05-23

FPGA_SPI多重启动

Xilinx 7系列多重启动教程。欢迎能够下载分享。

2019-05-07

Xilinx MIG 控制器工程

Xilinx MIG 控制器

2018-12-26

ZedBoard的u-boot源码

zynq-7000的u-boot源码包,并有对应的编译u-boot教程。

2018-11-14

ZedBoard 无桌面启动文件

ZedBoard移植不带桌面linux系统启动文件,

2018-09-27

ZedBoard启动文件

ZedBoard启动文件,包含BOOT.BIN、devicetree.dtb、zImage

2018-09-26

FPGA按键消抖程序

基于VHDL的按键消抖程序,已经经过验证,可以放心使用。另外在我的博客《FPGA按键消抖(附带程序)》中也对该程序进行了说明。

2018-06-29

NRF24L01多对一

这是NRF24L01 的无线模块多对一通信

2015-05-09

空空如也

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

TA关注的人

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