随笔分类 - FPGA:基础知识
Testbench编写技巧
摘要:一、基本架构(常用模板) 1 `timescale 1ns/1ps //时间精度 2 `define Clock 20 //时钟周期 3 4 module my_design_tb; 5 6 // <端口> 7 reg clk ; //时钟,50Mhz 8 reg rst_n ; //复位,低电平有
亚稳态
摘要:亚稳态处理常见于跨时钟进来的信号,有三种常见方法: 1.单bit信号,打两拍再使用。 2.多bit信号,用fifo进行时钟隔离。 3.少量多bit信号,通过增加指示信号的方法来发送可控的数据流。常见于外部接口到FPGA的传输。 例如输入 [7:0]in 和 in_vld ,用in_vld打三拍,后两
IP核——FIFO
摘要:一、Quartus 1.打开Quartus ii,点击Tools MegaWizard Plug-In Manager 2.弹出创建页面,选择Creat a new custom megafunction variation,点Next 3.选择IP核,可以直接搜索fifo,选择fifo,右上方选择
IP核——RAM
摘要:一、Quartus 1.打开Quartus ii,点击Tools MegaWizard Plug-In Manager 2.弹出创建页面,选择Creat a new custom megafunction variation,点Next 3.选择IP核,可以直接搜索ram,选择RAM:2-PORT,
IP核——PLL
摘要:一、Quartus II创建PLL 1.打开Quartus ii,点击Tools MegaWizard Plug-In Manager 2.弹出创建页面,选择Creat a new custom megafunction variation,点Next 3.选择IP核,可以直接搜索pll,选择ALT
Verilog的各种坑
摘要:Verilog语言和软件语言不一样,有些时候理所当然的编写,也没有报语法错误,可是功能就是不对。唉,把遇到的坑都记在本篇博客吧。 1. initial begin...end里面不能有always,如果非要在里面达到always的效果,那用forever就行了。 2. reg [3:0] a=4'd
数码管动态显示
摘要:数码管显示分为静态显示和动态显示。静态显示没什么卵用,和led灯没差别。而动态显示用处很大,基本上数码管的使用都是动态显示。其原理很简单:视觉暂留效应。数码管从右到左,一个接一个的亮起熄灭,让其总的速度加快,人眼看上去就像是一直亮着一样。扫描时间间隔建议为20ms以内,人眼才不会感到闪烁。一般来说一
按键消抖——task任务和仿真平台搭建
摘要:一、按键抖动原理 按键抖动原理:按键存在一个反作用弹簧,因此当按下或者松开时均会产生额外的物理抖动,物理抖动会产生电平的抖动。 消抖方法:一般情况下,抖动的总时间会持续20ms以内,按下按键后,等20ms过去了再取键值就行了。 市面上有多种按键消抖的方法,我对比了各家的代码,发现有两种方法非常好用,
状态机的Verilog写法
摘要:“硬件设计很讲究并行设计思想,虽然用Verilog描述的电路大都是并行实现的,但是对于实际的工程应用,往往需要让硬件来实现一些具有一定顺序的工作,这就要用到状态机思想。什么是状态机呢?简单的说,就是通过不同的状态迁移来完成一些特定的顺序逻辑。硬件的并行性决定了用Verilog描述的硬件实现(臂如不同
基础数字电路的Verilog写法
摘要:Verilog是硬件描述电路,我对此一直稀里糊涂,于是将锆石科技开发板附带的的一些基础数字电路Verilog程序整理记录下来,并且查看他们的RTL视图,总算有点理解了。 1.基本运算符 1 module Example_Operation 2 ( 3 input [3:0] a , 4 input