如果所有存储元件均由相同的源时钟信号触发,则称该设计为同步设计。同步设计的优点是总体传播延迟等于触发器或存储元件的传播延迟。STA对于同步逻辑分析非常容易,甚至可以通过使用流水线来提高性能。大多数ASIC/FPGA实现都使用同步逻辑。本节介绍同步计数器的设计。
需要对输入Verilog或VHDL的设计进行仿真,以检查设计的功能正确性。对于HDL RTL功能,需要使用不可综合的Verilog结构编写测试台。
在异步计数器中,时钟信号不由公共时钟源驱动。如果LSB触发器的输出作为后续触发器的输入,则设计是异步的。异步设计的主要问题是由于级联,触发器的累积时钟到q延迟。由于存在小故障或尖峰问题,ASIC/FPGA设计中不建议使用异步计数器,甚至此类设计的时序分析也非常复杂。
Johnson Counter本质是个同步计数器,我在《Verilog时序逻辑硬件建模设计(三)同步计数器》中有过详细介绍和设计。
计数器的基本功能是对输入时钟脉冲进行计数。它也可用于分频、定时、产生节拍脉冲和脉冲序列及进行数字运算等。
本系列为FPGA系统性学习学员学习笔记整理分享,如有学习或者购买开发板意向,可加交流群联系群主。
【实验四】设计一个m序列码产生器模块(要求:码长为31,寄存器级数5,反馈系数为75(八进制)的m序列产生器)
首先送上传送门。 作者今天被安利了一个很棒的 Verilog 学习网站:HDLBits 。然后发现知乎上还没有与 HDLBits 相关的话题,便写下这篇文章向大家推荐。
经典电路设计是数字IC设计里基础中的基础,盖大房子的第一部是打造结实可靠的地基,每一篇笔者都会分门别类给出设计原理、设计方法、verilog代码、Testbench、仿真波形。然而实际的数字IC设计过程中考虑的问题远多于此,通过本系列希望大家对数字IC中一些经典电路的设计有初步入门了解。能力有限,纰漏难免,欢迎大家交流指正。快速导航链接如下:
通常我们说对原时钟进行N分频,即分频后的时钟的一个周期是原时钟周期的N倍。N可以为偶数、奇数、半整数、分数(小数)。
CIRCT项目尝试基于LLVM和MLIR构建一套模块化、语义清晰一致、可重用的硬件设计基础设施。LLHD是其中一种用于硬件电路的中间表示(IR)。本文记录尝试用LLHD进行硬件电路仿真的过程。
UART即通用异步收发传输接口(Universal Asynchronous Receiver/Transmitter),简称串口,是一种常用的通信接口,其协议原理就不赘述了,不了解的可以自己查阅资料。(不赘述不代表不重要,相反,对于每一个FPGA设计,充分理解原理是基础和前提,而FPGA和Verilog只是工具。)用FPGA来实现UART,关键就是要将UART收发数据时的时序用Verilog描述出来。
脚 本:makefile 工 具:vcs 和 verdi 文 章:1. 同步FIFO的设计和功能验证(附源码) 2. Verilog的亚稳态现象和跨时钟域处理方法
VHDL: 语法严谨(Basic语言)、 行为与系统级抽象描述能力强、代码冗长、 编程耗时多;
大家推荐一款网页版的 Verilog代码编辑仿真验证平台,这个平台是国外的一家开源FPGA学习网站,通过
调研对象:锁具市场和各大小区的门禁系统。 工作过程与方法:经过在各种锁具市场的走访,发现国内大部分人使用的还是机械锁。而且,当下的假冒伪劣产品泛滥成灾,互开率非常高,互开率,是指各种锁具的一个技术质量标准,也就是一把钥匙能开几把锁的比率。
设计一个0~9的计数器,共10个周期。该计数器采用同步复位且复位为0。但是本题是希望该计数器并不是随着clk的变化而递增,而是随着一个slowena使能信号来控制增加。时序图如下图所示
1. 移位寄存器由 8 级触发器组成,用它构成的扭环形计数器具有______种有效状态;用它构成的环形计数器具有______种有效状态,构成线性反馈移位寄存器具有______种有效状态。
a=a^b; 1001^1011=0010 b=b^a; 1011^0010=1001 a=a^b; 0010^1001=1011
【注】本文为系列教程,使用同一个仿真代码,关注公众号“数字积木”,对话框回复“ modelsim_prj ”,即可获得。这是系列第一篇。
前段时间,有几个小伙伴向我请教数字电子钟设计的问题,这个问题我在之前的BCD计数器以及数码管显示问题中已经分开谈过了,既然大家还有需求,不妨在这里集中总结一下!
Verilog是一种硬件描述语言(HDL),用于设计数字电路和系统。统一、良好的代码编写风格,可以提高代码的可维护性和可读性。
通用计数器主要包括频率、周期和时间间隔测量,任意时间间隔内脉冲个数通常还包括频率比、以及累加计数等测量功能。
多功能计数器,英文名为:多功能计数器;所谓多功能,这里包括二进制计数,格雷码计数以及线性反馈移位寄存器(LFSR)三种,本文通过从普通的计数器开始,也就是单个功能的计数器开始,一步一步过渡到多功能计数器。作为对以下相关博文的延伸练习:Verilog设计实例(1)线性反馈移位寄存器(LFSR)[3]FPGA设计心得(8)Verilog中的编译预处理语句[4]
FPGA基础知识极简教程(9)[1]讲到了七段数码管的显示Verilog设计,我们都知道,要在数码管上显示的数字,使用BCD编码是具有优势的(或者是最正确的)。拿数字时钟来说,如果你的时钟是12点,难道你会让数码管显示C?如果你愿意如此,那就给自己家里安装一个这样的时钟吧!如果是23点呢?不用BCD编码的数字恐怕不能显示了吧。采用BCD码的数字,十位用一个数码管显示,个位用一个数码管显示,例如23点,则2和3分别显示,这样才符合人类的思维。
本文主要介绍VCS门级网表的仿真。当我们把所写的RTL进行的功能仿真通过之后,便输入到 Design Compiler工具中进行逻辑综合,逻辑综合的结果便是RTL代码转化为由与、或、非等门电路和触发器组成的电路,称为门级网表(netlist)。门级网表中便包含了电路的实际信息,例如逻辑门单元的扇入扇出系数,延迟等等。因此在逻辑综合完成之后,需要对网表再进行仿真验证,防止出现意想不到的错误。
题目描述: 制作一个四选一的多路选择器,要求输出定义上为线网类型状态转换: d0 11 d1 10 d2 01 d3 00
FPGA基础知识极简教程(9)讲到了七段数码管的显示Verilog设计,我们都知道,要在数码管上显示的数字,使用BCD编码是具有优势的(或者是最正确的)。拿数字时钟来说,如果你的时钟是12点,难道你会让数码管显示C?
现在笔试大致分为选择、简答和编程三部分,选择主要考察基础理论知识,编程主要考察Verilog,尤其是我们芯片类的岗位,笔面试都会考察Verilog
序列生成与序列检测都是数字电路中比较常见的电路,序列检测实现检测一个序列的是否为目标序列,序列生成 则是生成指定序列。
与普通移位寄存器的连接不同,输入端D连接两个不同的数据源,一个数据源为前级的输出,用于移位寄存器的操作;另一个数据来自于外部输入,作为并行操作的一部分。
HDL语言是分层次的、类型的,最常用的层次概念有系统与标准级、功能模块级,行为级,寄存器传输级和门级。
1、速度与面积平衡和互换原则:一个设计如果时序余量较大,所能跑的频率远高于设计要求,能可以通过模块复用来减少整个设计消耗的芯片面积,这就是用速度优势换面积的节约;反之,如果一个设计的时序要求很高,普通方法达不到设计频率,那么可以通过数据流串并转换,并行复制多个操作模块,对整个设计采用“乒乓操作”和“串并转换”的思想进行处理,在芯片输出模块处再对数据进行“并串转换”。从而实现了用面积复制换取速度的提高。
这里注明一下0.2秒实现的思路: 开发板的时钟频率为50Hz,时钟周期是20ns,0.2s/20ns=10^7。 因此,计数器counter的值累加到10^7即为0.2秒。 通过计算器的程序员模式,可以查看10^7次方需要的寄存器位数。
a. 数字的进制:熟悉二进制、八进制、十进制、十六进制换算,BCD,格雷码转换 b. 逻辑运算:与,或,非。 c 组合逻辑电路:3-8译码器,编码器,比较器,加法器,理解竞争与冒险 d. 时序逻辑电路:RS触发器,D触发器,计数器 e. 存储器:ROM,RAM
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。
在电子技术领域,频率是一个最基本的参数。频率计作为一种最基本的测量仪器以其测量精度高、速度快、操作简便、数字显示等特点被广泛应用。许多物理量,例如温度、压力、流量、液位、PH值、振动、位移、速度等通过传感器转换成信号频率,这时可以选择使用频率计来进行测量。尤其是频率计与微处理器相结合,可实现测量仪器的多功能化、程控化和智能化.随着现代科技的发展,基于数字式频率计组成的各种测量仪器、控制设备、实时监测系统已应用到国际民生的各个方面。
我觉得学习一个软件,自我探索这个环节是必不可少的,软件又用不坏,戳戳点点认识基本功能是极好的。闲话不多说,我们开始~
图2 34 FPGA发送一帧串口数据(考虑波特率) 如果图2 34考虑 115200 的波特率,结果如图2 34所示,每一位数据都保持 434 个时钟,为此 Verilog 可以这样表示,如代码2 11所示: 代码2 11
下面的myhdl代码写了一个模块top,里面有两个计数器:cnt1从0计到9,当cnt1=9时,cnt2从0计到4。
领取专属 10元无门槛券
手把手带您无忧上云