- 博客(13)
- 资源 (16)
- 收藏
- 关注
原创 FPGA设计的几种常用基本时序路径
在高速的同步电路设计中,时序决定了一切,要求所有时序路径都必须在约束限制的时钟周期内,这成为设计人员最大的难题,因此,首先确定和分析基本时序路径有助于设计者快速,准确地计算时序裕量,使系统稳定工作,XILINX公司提倡的几种常用基本路径。(1)Clock-to-Setup路径: clock-to-setup路径从触发器的输入端开始,结束于下一级触发器,锁存器或者RAM的...
2018-04-25 16:02:47 7705
原创 UART通信原理,以及它和RS232和COM口的关系
串口通信是电子工程师面对的最基本的问题,但是往往大家对UART,RS232, COM口这三者的关系理解的不是很透彻,百度他们的区别,网上各种网友自己本身一知半解,更不敢看做出的解答。于是下决心一定要搞清楚他们的关系。抽象的解释固然听起来高大上,但是往往出自已经对该问题有了比较深刻的理解的人之口。对于初学者,看到那些抽象的解释往往解决不了心中的疑惑。 在学习借鉴了好几篇博客和微...
2018-04-23 20:16:16 1425
转载 FPGA重要的设计思想——乒乓操作
乒乓操作是一个主要用于数据流控制的处理技巧,典型的乒乓操作如图所示: 外部输入数据流通过“输入数据选择控制”模块送入两个数据缓冲区中,数据缓冲模块可以为任何存储模块,比较常用的存储单元为双口RAM(Dual RAM),SRAM,SDRAM,FIFO等。 在第1个缓冲周期,将输入的数据流缓存到“数据缓冲1”模块,在第2个缓冲周期,“输入数据选择控制”模块将输入的数据流缓存到“...
2018-04-22 11:31:29 13854 3
原创 常用的编译预处理命令
在verilog预言中,为了和一般的语句相区别,这些预处理命令以符号"`"开头(位于主键盘左上角,注意这个符号不同于单引号‘)这些预处理命令的有效作用范围为定义命令之后到本文件结束或到其他命令替代该命令之处,verilog HDL提供了很多预编译命令: `accelerate, `autoexpand_vectornets, `celldefine, `default_nettype, `defi...
2018-04-19 17:43:17 2794
转载 verilog中的可综合与不可综合
关于verilog可综合与不可综合,CSDN的博客大都借鉴了博主initialwei的关于可综合与不可综合的理解。博客链接:http://www.eefocus.com/initial_wei/blog/12-10/287444_c623b.html1)所有综合工具都支持的结构:always,assign,begin,end,case,wire,tri,aupply0,supply1,reg,in...
2018-04-19 15:35:04 14895
原创 用 verilog 实现接受 1,2,5 分钱的卖报机,每份报纸 5 分钱。
下面我们用verilog实现一个自动贩卖机的程序,贩卖机能接收1,2,5分钱的投币(每个时钟的上升沿采样一次,即投币一次),din[2:0]: (din[0]:1 分钱,din[1]:2 分钱,din[2]:5 分钱),贩卖机设找零:dout[1:0],其中dout[1]=1表示找零1分钱,dout[0]表示输出一份报纸。手绘状态图:...
2018-04-15 22:22:36 3187 3
原创 verilog——序列检测器设计
首先要明白的是:序列检测器的作用就是将一个指定的序列从一个数字码流中提取出来,这篇博客要检测的是一个‘11001101’序列。程序中的data_in数据流输入,当状态为st7的时候认为检测到了‘11001101’序列。输出为1,否则为0。序列检测采用三段式状态机设计,三段式状态机将时序逻辑和组合逻辑分开,把状态和输出单独列开,方便检查和维护。序列检测代码: ...
2018-04-11 22:47:26 16352 5
原创 跨时钟域分析——单比特信号同步
处理跨时钟域的数据有单bit和多bit之分,而打两拍的方式常见于处理单bit数据的跨时钟域问题。打两拍本质就是定义两级寄存器对数据进行延拍。流程如下图所示:两级寄存器的原理:两级寄存是一级寄存的平方,两级并不能完全消除亚稳态危害,但是提高了可靠性减少其发生概率。总的来讲,就是一级概率很大,三级改善不大。信号同步的要求: 为了使同步工作能正常进行,从某个时钟域传来的信号应先通过原时钟域上的一个...
2018-04-09 23:00:20 7574
原创 查找表的原理与结构 什么是竞争与冒险现象?怎样判断?如何消除?
查找表的原理与结构: 查找表(look-up-table)简称为LUT,LUT本质上就是一个RAM。目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有 4位地址线的16x1的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查...
2018-04-09 20:45:49 4396
原创 异步FIFO的verilog实现
在写异步FIFO之前先搞明白一个问题,就是二进制转格雷码,很简单,比如: 二进制数10110,要求它对应的格雷码,先将10110>>1 , 得到 01011,然后(10110)^(01011)就得到其对应的格雷码。查阅了很多博主关于异步fifo的verilog实现代码,最被大家采纳接受的就是下面要说的这种,自己学习注释,记录下来加深自己的理解也为网友学习开辟道路。1,异步F...
2018-04-09 11:35:17 20676 4
原创 异步复位,同步释放——(异步信号亚稳态的解决办法)
在学习特权同学深入浅出玩转FPGA时,课本里面讲到,同步复位和异步复位都有其弊端。异步复位的弊端: 异步复位中最严重的问题是,如果异步复位信号在触发器时钟有效沿附近“释放”(复位信号从有效变为无 效)的话,可能会导致触发器输出的亚稳态。这里不得不说的是...
2018-04-05 16:29:34 11460
原创 verilog-状态机设计
一,状态机的基本概念: 硬件设计讲究并行设计的思想,虽然用verilog描述的电路大都是并行实现的,但是对于实际的工程应用,往往需要让硬件来实现一些具有一定顺序的工作,这就要用到状态机的思想,什么是状态机呢?简单的说,就是通过不同的状态迁移来完成一些特定的顺序逻辑,硬件的并行性决定了用verilog描述的硬件实现都是并行执行的,那么如果希望分多个事件完成一个任务,怎么办?也许可以用多个...
2018-04-03 17:40:47 5294 1
原创 TESTBENCH中关于变量的定义
在编写testbench时,关于变量的定义常犯的错误就是将一个定义好的全局变量应用到了两个不同的alwaya模块中,如下面exmp1所示,那么由于这两个always块独立并行的工作机制,很可能会导致意想不到的后果。exmp1:实际上,在verilog中(编写testbench)时 如果在begin end 之间定义了always的块名,那么可以如examp2一样申明变量,这样两个always...
2018-04-03 09:11:57 1687
questasim 安装包
2020-12-27
sublim package control
2020-11-25
NOIP1SN5000A
2017-12-23
altera 原语手册
2017-11-21
ZedBoard Zynq-7000 ARM FPGA进阶级处理器 全可编程逻辑智能互联开发系统 用户手册.pdf
2017-10-11
ug388 User Guide
2017-10-11
Xilinx FPGA应用进阶 通用IP核详解和设计开发
2017-10-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人