verilog移位运算符(Hello FPGA! 编码器、译码器、数据选择器、数值比较器、加法器)

1、编码器

1)定义:编码器就是人与电子设备之间的一座沟通的桥梁。比如计算机的键盘,它上面有很多符号,ABCD....、012345.......,这是都是一些特定的信息,但是对于计算机来说,它并不认识什么是A、什么是B、什么是1234,它只认识0和1。因此,我们便利用0和1组成的代码来表示这些特定的字母和数字,例如用01000001来表示字母A。建立这种代码与信息一一对应关系的过程称为编码,完成这种编码的电路便叫做编码器。生活中经常遇到的,遥控器上的键盘输入、密码锁、银行出纳台上密码输入都属于编码器。

2)种类:互斥编码器和有限优先编码器。所谓互斥编码器,就是任何时刻只允许一个输入信号有效,否则将产生错误输出。优先编码器,就是允许多个输入信号同时有效,但是输出是对优先级别高的输入信号进行编码。

3)8-3互斥编码器:就是可以实现3位二进制代码对8个信号进行编码的电路,那么这个电路应该有8个输入、3个输出。

4)8-3优先编码器:

在74148里,输入信号为I0(非)~I7(非),输出信号为A0(非)~A2(非),并且它们都是低电平有效。在输入信号中I7(非)的优先级最高,I0(非)的优先级最低。74148这个芯片的输入管脚还增加了一个EI(非),输出管脚增加了EO、GS(非)。EI(非)作为使能输入端使用,控制芯片的工作状态,低电平为工作,高电平为不工作;EO为扩展输出端,高电平有效,用于多个芯片连接扩展;GS(非)为编码器的工作标志,低电平表示这个编码器在正常工作,高电平表示这个编码器没有在正常工作。

5)互斥编码器的Verilog代码

begin、end是成对出现的,可以看做C语言中的{ },只要被begin和end包围起来的语句,它们都是顺序执行的。被module和endmodule包围起来的语句,它们都是并行执行的。例如,如果一个begin和end中有两条语句,那么这两条语句在前面的先会被执行,执行完前面的语句之后才会去执行后面的语句。如果一个module和endmodule中有两个always模块,那么这两个always模块是没有先后顺序的,它们是同时执行的。

6)优先编码器的Verilog代码

7)16-4优先编码器

2、译码器

1)定义:在编码时,每一组代码都具有特定的含义,即表示一个确定的信息,而译码则是编码的逆过程,是把每一组代码的含义翻译出来,完成译码功能的逻辑电路就被称为译码器,译码器通常用于计算机中对存储单元的地址的译码。

2)3-8译码器

3)译码器的Verilog代码

4)七段显示译码器——数码管

驱动七段数码管显示的译码器称为BCD七段显示译码器,通常它将BCD码变成十进制数并在数码管上显示出来。该译码器有4个输入端和7个输出端。前者输入待显示的BCD码,后者分别接到七段数码管对应的接线端,每输入一组BCD码,译码器便会有确定的信号从输出端输出。

3、数据选择器

1)所谓数据选择器,就是从多个输入的逻辑信号中选择一个逻辑信号输出,实现数据选择功能的逻辑电路便称为数据选择器。数据选择器也称为多路复用器,它的作用相当于多个输入的单刀多掷开关。

2)8-1数据选择器

3)数据选择器的Verilog代码

4、数值比较器

1)定义:所谓数值比较器,就是对两个数A、B进行比较,以判断其大小的逻辑电路。比较结果有A>B、A=B、A<B这三种情况,这三种情况仅有一种其值为真。

2)1位数值比较器

3)4位数值比较器

4)4位数值比较器的Verilog代码

5、加法器

1)半加器:加法器可以分为半加器和全加器。如果仅仅考虑两个一位二进制数A和B相加,而不考虑低位的进位,则称为半加,实现半加运算的电路叫做半加器。半加器有两个输入端A和B,两个输出端S和C,其中S为和,C为向高位的进位。

移位运算符

2)全加器

3)4位二进制全加器的Verilog代码

从上面的代码中我们可以看出,该代码是没有考虑进位和溢出情况的,当相加结果超过4'hF时,最高位(进位输出)丢失。

Verilog HDL中绝大多数运算操作符都是可以直接使用的,比如:+(加)、-(减)、*(乘)、/(除)、!(逻辑非)、~(取反)、&(与)、~&(与非)、|(或)、~|(或非)、^(异或)、~^(同或)、%(取模)、<<(逻辑左移)、>>(逻辑右移)、<(小于)、<=(小于等于)、>(大于)、>=(大于等于)、==(等于)、!=(不等于)、&&(逻辑与)、||(逻辑或)。

您可以还会对下面的文章感兴趣

最新评论

  1. 鸿毛礼物
    鸿毛礼物
    发布于:2022-04-27 20:50:04 回复TA
    4'hF时,最高位(进位输出)丢失。Verilog HDL中绝大多数运算操作符都是可以直接使用的,比如:+(加)、-(减)、*(乘)、/(除)、!(逻辑非)、~(取反)、&
  1. 莘勤福韵
    莘勤福韵
    发布于:2022-04-27 16:18:07 回复TA
    我想,什么都不懂的人,很幸福。可惜我已不是。
  1. 沈融辰君
    沈融辰君
    发布于:2022-04-27 16:18:07 回复TA
    你又不是人民币,怎样能让人人喜欢你?

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

使用微信扫描二维码后

点击右上角发送给好友