使用Verilog来编程FPGA

发布时间:2023-12-21  

是依赖数字逻辑的数字器件,计算机硬件使用的是数字逻辑,每一个计算,屏幕上每一个像素的呈现,音乐轨的每一个note都是使用数字逻辑构成的功能块来实现的。 虽然多数时候,数字逻辑是抽象的数学概念,而不是物理电子,逻辑门以及其它的数字逻辑器件则是由刻蚀在集成电路上的晶体管来实现的。对于来讲,可以通过绘制逻辑门构成的电路,将这些门映射到的通用门上,并将它们连接起来以实现你设想的逻辑设计。 另外一种方式是,使用(或其它的)硬件描述语言来实现逻辑。 你依然可以购买能够实现小数量逻辑门的器件,比如7400,内部只有4个二输入与非门,然而这些器件只是为了维护一些古老的系统或用于教学。

逻辑门

逻辑门有输入和输出,这些数字输入和输出可以是“高”或者“低”, 无论是输入端还是输出端,所谓的“低”指的是接近于0V(地)的电压,而“高”一般是超过提供给该逻辑器件的供电电压一半以上的电压,给FPGA提供的电压一般为1.8V、3.3V或着5V中的一个,多数的FPGA的工作电压范围有一定的冗余度,有些FPGA允许在一个器件中存在多个逻辑电压.

本文引用地址:
  1. 数字门介绍
  • 非门 - NOT Gate
  • 与门 - AND Gate
  • 或门 - OR Gate
  • 与非门 - NAND Gate
  • 或非门 - NOR Gate

与非门和或非门都是非常通用的门,因为只需要反相它们的输入端或输出端就可以构成其它任何一种门,另外你可以用与非门或着或非门构成非门,只需要将两个输入信号连接在一起就可以。例如图1.6中你可以用3个或非门构成一个与门。

3norgate2nand.png

图1.6 用3个“或非门”构成一个“与门”

De Morgan定律

图1.6的设计利用了逻辑定律中的De Morgan定律 - 将两个输入端“与”后的结果进行取反,和先将两个输入端进行取反以后再“或”得到的结果是一样的。在图1.6中,两个输入端信号先被由“或非门”构成的“非门”取反以后进行“或”操作,再对输出的结果取反。

usenortomakeandtruetable.png

表1.6 用多个异或门构成一个与门的真值表

  • 异或门 - XOR Gate

二进制

我们前面将逻辑门的输入和输出端以电压的高低来表示,我们还可以将它们用数字来表示 - 1表示高电平,0表示低电平,这样我们就可以想明白计算机是如何使用逻辑门来操作数字的了。当然,我们仅有数值0和1是不够用的。 在我们的生活中都是使用10进制,主要的原因是因为我们有10根手指,如果我们的老祖宗使用鼻子来计数,那就是二进制了,因为结果只有0还是1,如果要表示多于1个的数字,你可以用多个二进制数值(bit - binary digit)来表示。

binarydecimalnumbers.png

表1.8 用二进制和十进制表示的数字0到7

用逻辑实现的“加法”

你可以用逻辑门来对二进制数进行运算,因为二进制数只是用“位”(bit)表示的数值,你可以用逻辑针对任何数值进行运算。图1.8展示了如何用逻辑门进行一个二进制加。

asinglebitadder.png

图1.8 一个1位加法器

asinglebitaddertruetable.png

表1.9 一个1位加法器的真值表

从表中可以看出,如果输入端A和B都是0,加法的结果位0, 如果其中一个输入为1,加法的结果为1,然后如果两个输入端都为1,加法的位本身就变成了0,但我们希望将进位输出的1放到下一位,在二进制中,1+1位0,并一个进位(或十进制的2) 这就意味着,如果我们同时加多于一位的数值,下一个加法的部分将有3个输入(A、B和进位输入),这就需要三个位的加法,图1.9展示了计入进位以后的加法。

asinglebitadderwithcarryin.png

图1.9 一个带有进位输入端的1位加法器

你也许永远不会用这种方式通过多个门来构建一个加法器,因为有现成的加法器芯片可以用于你的设计,在这里你能够看到加法器是如何通过门电路构成的。 如果我们有8级这样的电路,就可以实现2个字节的加法操作,每一个计算机的中央处理器(CPU)都有这种用逻辑门搭建的硬件加法器,一个32位的处理器可以同时处理32位的数值,一个64位的机器能够通过64个图1.9的方式同时将64位数字加起来。

文章来源于:电子产品世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    stm32单片机用什么软件编程;  今天要和大家分享的是stm32单片机用什么软件编程相关信息。   想学单片机开发,最主要是熟悉stm32的软件开发环境,目前stm32的开发环境,主流是KEIL和......
    stm32用什么软件写程序;  stm32用什么软件写程序?STM32单片机在编程时可以使用库函数和使用配置寄存器的方式来进行程序的实现。   在学习stm32的过程中我们会用到编程环境:Keil......
    单片机编程用什么软件?单片机开发软件有哪些?;单片机编程需要的软件其实不多,网上看了很一大堆,什么protues仿真、Labview、Pycharm等等,其实完全没必要一下装这么多。 我从......
    形式为DIP40,相信大家在大学里学单片机的时候老师都是用这一款教的吧。 3 硬件原理设计 芯片选型完毕之后,又有了设计思路,那就赶快把电路图画出来吧。画电路图用什么软件呢?这样的EDA工具很多,像......
    某些情况下精度仍然受限,如在复杂的背景下,图像分析和处理的精度受到影响。   做机器视觉用什么软件好   做机器视觉需要使用一些专业的软件,以下是几个比较好的机器视觉软件:   OpenCV:OpenCV是一......
    出了如何打开 MSO24中的 VNC功能,可以通过远程进行控制。但是问题来了:远程通过什么软件来访问 VNC 呢? ▲ 图1.2.1 MSO相关的使用视频 2、TightVNC软件   下面是 TEK 工程......
    单片机STM32可以用python写吗?可以的开发板有哪些?;普通的开发板肯定不行。 市面上目前有尝试用python语言去开发单片机程序,但是不太适合大多数产品,为什么? 很简单,就是......
    STM32单片机GPIO口配置问题;  在学习STM32F单片机时,我们常常困惑什么时候才能叫入门,采用什么样的教材入门,或者采用什么的编程软件。在学习类的教材中,以神州,原点教材布局很多,但是......
    应用程序用于配置VersaClock 7器件,使用户能够在评估板上完成配置创建和器件编程。RICBox作为一个新推出的平台,向客户提供最前沿的软件,用于瑞萨产品的评估。客户可以使用Python驱动......
    将 HAT 插入您的 Pi。屏幕可以通过 HDMI 电缆连接到 Raspberry Pi,不要忘记将电源连接到屏幕和 Pi。 软件编程 人脸识别 以下步骤将向您展示如何在 Pi 上设置人脸识别。 步骤......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>