- 博客(67)
- 资源 (8)
- 收藏
- 关注

原创 基于FPGA的千兆以太网传输实例——ARP和UDP的实现
本文基于FPGA实现了ARP和UDP传输协议。开发环境:Win7开发软件:Quartus17.1、Modelsim SE-64 10.2c、Gvim编辑器、小兵以太网测试仪、Wireshark开发硬件:小梅哥AC6102_V2开发板注意:本工程都假设FPGA设备IP地址为192.168.0.2(即0xc0_a8_00_02),MAC地址为0x00_0a_35_01_fe_c0,PC端IP地...
2019-07-10 19:53:58
12582
2

原创 基于FPGA的UART串口收发实例
本文基于FPGA实现了UART串口发送及接收模块。开发环境:Win7开发软件:Quartus17.1、Modelsim SE-64 10.2c、串口调试助手、Gvim编辑器开发硬件:小梅哥AC6102_V2开发板1.UART协议关于UART的通信原理,上一篇博客已经完整介绍了,详情请看UART介绍2.实现原理2.1模块解析UART串口收发包括串口接收模块、串口发送模块、DPRAM、...
2019-07-10 10:35:35
6232
4

原创 基于FPGA和Qt的视频图像处理仿真测试系统
视频图像处理仿真测试系统最近看《基于FPGA的数字图像处理原理及应用》看到了第五章,本章内容主要讲如何搭建一个视频图像处理仿真测试系统,我参考了书上的内容,自己设计了一个基于Qt creator的仿真测试系统。1.仿真测试系统框架仿真测试系统所包含的功能:(1)模拟可配置的视频流(单帧的视频即为一副图像)(2)模拟视频捕获,生成视频数据(3)测试系统与testbench及视频流的数据共...
2019-03-27 20:24:07
14320
2

原创 FPGA利用查找表实现sin正弦函数
FPGA利用查找表实现sin正弦函数最近在看《基于FPGA的数字图像处理原理及应用》这本书,准备利用FPGA实现一些简单的数字图像处理。想把学习过程中遇到的一些问题以及解决方法与大家分享。1.查找表的定义在计算机科学中,查找表使用简单的查询操作替换运行时计算的数组或者associative array这样的数据结构。由于从内存中提取数值经常要比复杂的计算速度快很多,因此这样得到的速度提升是很...
2019-02-25 17:10:17
19460
11
原创 linux gvim verilog/system verilog语法高亮及常用设置
将 “.vimrc” 文件复制到用户的宿主目录,"cd ~"即可到达宿主目录在宿主目录下建立vim文件夹:“mkdir vim”在vim目录中建立ftdetect以及syntax文件夹“mkdir ~/.vim/ftdetect”“mkdir ~/.vim/syntax”在ftdetect中创建文件sv.vim并包含如下语句:au BufRead,BufNewFile *.sv set filetype=verilog_systemverilog将systemverilog的高亮检测文件(v.
2020-07-21 16:10:59
4351
1
原创 Linux常用命令及英文全称
Linux常用命令大全:https://blog.youkuaiyun.com/luansj/article/details/97272672英文全称su = Swith user 切换用户,切换到root用户cat = Concatenate 串联uname = Unix name 系统名称df = Disk free 空余硬盘du = Disk usage 硬盘使用率chown = Cha...
2020-03-30 13:13:47
589
原创 Linux 将gvim添加到右键
打开菜单的配置文件: /usr/share/applications/gvim.desktop将其中 Exec=… 改为 Exec=gvim -p --remote-tab-silent %F
2020-03-27 10:01:51
317
原创 vim(Gvim)取消自动注释
vim里面有一个特性,如果你在一行注释后新加一行,vim会自动在下一行的开始位置添加注释符号。如果想取消该功能,可以在vimrc配置文件中加上autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o...
2020-03-26 20:27:32
1097
原创 verilog中的位运算符,缩位运算符和逻辑运算符的说明
1.位运算符按位运算的运算符是位运算符,原来的操作数有几位,结果就有几位,若两个操作数位数不同,则位数短的操作数左端会自动补0。(1)按位取反:~ (2)按位与:& (3)按位或:| (4)按位异或:^ (5)按位同或:~^ 或 ^~2.缩位运算符(又称归约运算符)缩位运算符是单目运算符,按位进行逻辑运算,结果是一位值!(1)与缩位运算符:& (2)或缩位运算符...
2020-02-26 10:50:11
10271
1
转载 利用Verilog实现奇数倍分频
第一,偶数倍分频:偶数倍分频应该是大家都比较熟悉的分频,通过计数器计数是完全可以实现的。如进行N倍偶数分频,那么可以通过由待分频的时钟触发计数器计数,当计数器从0计数到N/2-1时,输出时钟进行翻转,并给计数器一个复位信号,使得下一个时钟从零开始计数。以此循环下去。这种方法可以实现任意的偶数分频。第二,奇数倍分频:奇数倍分频常常在论坛上有人问起,实际上,奇数倍分频有两种实现方法:首先,完全可以...
2020-02-23 20:37:30
581
转载 UVM 学习笔记(1) UVM概述
UVM:Universal Verification Methodology(通用验证方法学)UVM:是建立在systemverilog平台上的一个库,提供了一系列的接口,让我们能够更方便的进行验证。验证平台组成: Driver:用来把不同的激励施加给DUT; Monitor:用来检测DUT的输出; Scoreboard:专门用来比较期望值与monitor检测到的DUT输出; Refe...
2019-12-19 17:07:47
2029
1
原创 Modelsim10.2c 中uvm环境搭建(hello world!)
本篇文章介绍使用Modelsim10.2c搭建UVM环境,并跑通第一个hello world实例。最开始的时候按照网上的教程,设置系统环境变量、下载gcc编译器等等,折腾了半天并没有跑通,后来发现Modelsim10.2c的安装目录下已经有uvm库uvm-1.1d。在uvm-1.1d/win64下有uvm_dpi.dll文件,这就是已经编译过的uvm库。下载安装Modelsim10.2c以后,...
2019-12-16 22:41:29
1787
2
转载 verilog-1995 和verilog-2001的区别
下面对Verilog-2001新增特性进行详细说明,部分说明用实例进行解析。lgenerate语句Verilog- 2001添加了generate循环,允许产生module和primitive的多个实例化,同时也可以产生多个 variable,net,task,function,continous assignment,initial和always。在generate语句中可以引入if-el...
2019-12-16 08:50:21
1182
转载 CY7C68013A Slave FIFO 相关的寄存器说明
https://blog.youkuaiyun.com/dianzidaigua/article/details/18187121
2019-11-19 09:45:22
317
转载 什么是recovery time和removal time?
什么是recovery time和removal time?在同步电路中,输入数据需要与时钟满足setup time和hold time才能进行数据的正常传输,防止亚稳态。同样的道理,对于一个异步复位寄存器来说,同样异步复位信号同样需要和时钟满足recovery time和removal time 才能有效进行复位操作和复位释放操作,防止输出亚稳态。1、recovery time:恢复时间...
2019-11-18 17:32:29
1301
原创 Verilog 编写状态机的指导原则
不管是VHDL还是Verilog,在设计状态机时应遵循以下原则:1.给状态机的输出分配默认值,防止综合器产生不必要的锁存器。2.将状态机逻辑和所有的算术逻辑功能以及数据路径分离,包括与状态机输出值的分配分离,这也是为何推荐大家尽量使用多进程来描述状态机的原因。3.如果设计中包含一个在多个状态都要使用的运算,那么在状态机外面定义这个运算,然后让状态机的输出逻辑来使用该运算结果。4.使用简单的...
2019-11-15 10:49:48
600
转载 FPGA 查找表和寄存器等详解
1.FPGA-现场可编程门阵列 每一块FPGA芯片都是由有限多个带有可编程连接的预定义源组成来实现一种可重构数字电路。 图1.FPGA不同构成 FPGA芯片说明书中,包含了可编程逻辑模...
2019-11-05 11:12:31
3443
转载 FPGA中的逻辑资源(Slices VS LE)比较
Xilinx Altera FPGA中的逻辑资源(Slices VS LE)比较要比较Xilinx和Altera的FPGA,就要清楚两个大厂FPGA的结构,由于各自设计的不同,两家的FPGA结构各不相同,参数也各不相同,但可以统一到LUT(Look-Up-Table)查找表上。下图就是A家的Cyclone IV系列片子的参数:可以看到,A家的片子,用的是LE这个术语。而下图是X家的Spa...
2019-11-04 16:55:52
3672
1
原创 FPGA布局布线
用户的设计首先转化成RTL级,然后再MAP到FPGA的资源,比如LUT,DFF或者DSP等资源里去。这些MAP好的FPGA资源用实际芯片里的哪个物理资源(哪一行哪一列的哪个slice)来实现就是place了,place完成后就要根据他们之间的逻辑关系来连线,用什么布线资源来连,就是ROUTE。这里面有非常复杂的优先级算法关系,还要求速度快,节省资源,延时小。布局布线过程当然是自动的,所谓的约束...
2019-11-04 16:07:12
3417
转载 如何提高FPGA的运行速度
对于设计者来说,当然希望我们设计的电路的工作频率(在这里如无特别说明,工作频率指FPGA片内的工作频率)尽量高。我们也经常听说用资源换速度,用流水的方式可以提高工作频率,这确实是一个很重要的方法,今天我想进一步去分析该如何提高电路的工作频率。我们先来分析下是什么影响了电路的工作频率。我们电路的工作频率主要与寄存器到寄存器之间的信号传播时延及clock skew有关。在FPGA内部如果时钟走长线...
2019-10-29 16:38:00
1107
原创 异步复位,同步释放
异步复位,同步释放指:复位电路的寄存器通过外部信号异步复位,全部功能寄存器再同时复位。代码实现:之所以还打一拍是为了消除亚稳态
2019-10-25 20:56:23
199
原创 流水线与并行处理概述
基本概念①计算时间:处理器或电子系统处理一个问题时,第一个计算的开始于最后一个计算的结束之间的时间间隔称为计算时间;②流水周期:一个处理器中两次连续计算之间的时间间隔称为流水周期,流水速率是是流水周期的倒数;③块流水周期:处理器连续处理两个问题时两次起始时刻的时间间隔称为块流水周期;④阵列尺寸:阵列中处理器(单元、门电路)的数目;——决定了硬件成本⑤I/O通道:与外部(主机)进行通信的...
2019-10-24 09:05:39
3917
原创 Nios II 拷贝工程需要注意的事项
拷贝新的工程到新的目录打开quartus II 工程文件打开NIOS II软件切换工作空间到当前的新工程根目录在NIOS II软件中将已有的工程删除(不要勾选从硬盘上删除文件)新建软件工程或者重新导入该工程根目录下已有的工程文件...
2019-09-28 16:43:02
465
转载 CY7C68013A Slave FIFO 相关的寄存器说明
Slave FIFO 固件需要设置的相关寄存器IFCONFIGEPxFIFOPFH/LPINFLAGSABPORTACFGPINF...
2019-09-26 15:34:55
2254
原创 NIOS Ⅱ开发需要注意的地方
1.On-Chip MemoryOn-Chip Memory,尤其是RAM尽量设置大一点,不然在使用eclipse时,很容易超出存储空间,尤其是当你使用了printf函数时2. PIO中断当使用PIO中断时,先弄明白自己的中断是边沿(上升沿或者是下降沿)触发还是高低电平触发。注意:只有当设置PIO方向为Bidir、input或者Inout类型时才能有中断产生。Edge capture ...
2019-09-25 21:59:30
339
原创 NIOS Ⅱ开发常见问题
本文收集了本人在NIOS Ⅱ开发遇到的以及他人遇到的常见问题(持续更新)1. 出现错误“Connected system ID hash not found on target at expected base address”(1) quartus 中unused pin没有设置,可能会收到外部信号的干扰;设置未用引脚为As input tri-stated with weak pull-...
2019-09-24 20:27:38
2530
原创 System Verilog 上下文context的含义以及设置导入函数的作用域
1. 上下文(context)的含义导入函数的上下文是该函数定义所在的位置,比如$unit 、模块、program或者package作用域(scope),这一点跟普通的sv方法是一样的。如果你把一个函数导入到两个不用的作用域,对应的C代码会依据import语句所在位置的上下文执行。这类似于在SV的两个不同模块中分别定义一个run()任务,每个任务都会明确地访问自己所在模块的内部变量。下面是C方...
2019-09-20 11:35:27
2704
原创 System Verilog——C语言调用SV对象中的方法
本文接上一篇文章,即调用System Verilog 任务的C 任务,简介如下https://blog.youkuaiyun.com/qq_31348733/article/details/101000399如何在C语言中调用SV方法呢,显然定义在类中的方法我们无法直接调用,因为当SV编译器编译代码时,对象还不存在。为了解决这个问题,我们可以在SV和C之间传递一个对象引用。但是跟C指针不同的是,SV句柄不...
2019-09-19 19:32:58
3312
原创 调用System Verilog 任务的C 任务
下面是System Verilog 内存模型的代码//readFile.c#include <stdio.h>extern void memBuild(int);extern void memRead(int addr, int *data);extern void memWrite(int addr, int data);int readFile(char *fname...
2019-09-18 22:21:43
1115
1
原创 C++ ->和.操作运算符的区别
例如:class student{public:string name[20];}第一种情况,采用指针访问 student *xy,则访问时需要写成 *xy.name=“hhhhh”;等价于xy->name=“hhhhh”。第二种情况,采用普通成员访问 student xy,则访问时需要写成 xy.name=“hhhhh”。...
2019-09-17 22:14:44
257
转载 IC面试题
面试环节:由于大多公司并未基于验证出笔试题,所以对IC验证工程师而言,在面试阶段会更多涉及一些SV与UVM相关的思想与应用。总结起来,最常考的有:1.RTL设计思想及代码考察:2.IC 开发flow 及个阶段使用的工具。3.信号的跨时钟域同步。包括单比特和多比特,对于单比特自然用两级寄存器同步最为方便。对于多比特,常考察异步FIFO以及握手方法。要理解亚稳态的概念以及避免亚稳态的方法。...
2019-09-17 20:28:08
6064
转载 数字IC设计工程师笔试面试经典100题
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...
2019-09-17 20:11:06
14744
udp_arp_test.zip
2019-07-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人