FPGA入门:数字电路基础知识——组合逻辑电路

时间:2025-11-01  作者:Diven  阅读:0

数字电路基础知识——组合逻辑电路(数据选择器MUX、也即多路复用器) 本次介绍数据选择器的相关知识,数据选择器在电路设计中尤为重要,尤其是对于在Verilog中的if-else的语法即 o = a?b :c 都可以看到有数据选择器的使用。 介绍数据选择器的设计原则以及实例:用Verilog描述一个多路复用器,输入的通道数目N,每一路的位宽为M。 求log以2为低的整数的算法(使用移位寄存器、数据比较器)  

FPGA入门:数字电路基础知识——组合逻辑电路

一、二选一数据选择器(2-1 MUX) 二选一的数据选择器是最简单的结构,其逻辑框图、门级电路、以及真值表如下:

  二、 用 2输入mux,实现与,或,非,异或 二选一用Verilog语言描述: o = s ? a : b;   与逻辑: out = (a == 1’b0)? 1’b0: ((b == 1’b0)? 1’b0: 1’b1); 或 out = (a == 1’b1)? b: 1’b0; Y=SA+S’B=AB+A’0=AB   或逻辑: out = (a == 1’b1)? 1’b1: ((b == 1’b1)? 1’b1: 1’b0); 或 out = (a == 1’b0)? b: 1’b1; Y=SA+S’B=A’B+A=A+B   非逻辑: out = (a == 1’b1)? 1’b0: 1’b1;   异或 out = (a == 1’b1)? ((b == 1’b1)? 1’b0: 1’b1) : (b); Y=AB’+A’B   三、 四选一选择器 在实际的芯片器件中,用的最多的是双四选一选择器 74HC153 下图是内部逻辑电路图:

四选一只需两位地址输入,四个输入状态选择其中一个 而八选一需要三位地址输入,八个输入状态选择其中一个,利用S’作为第三个地址输入端 因此可以利用这两个四选一选择器接成一个八选一的选择器

  四、用选择器设计组合逻辑电路

基本原理:   利用如下关系 一个具有n位地址输入的数据选择器,可以产生任何形式的 输入不大于n+1的组合函数

对于下面的逻辑表达式:

即Z=R’(A’G’)+R(A’G)+R((AG’)+1(AG))

当然也可以用R A 作为选通地址,G作为选通端,将函数化简如下: Z=(R’A’)G’+(RA’)G+(RA)1  

五、例:用Verilog描述一个多路复用器,输入的通道数目N,每一路的位宽为M。 代码设计如下: Module mux #(     parameter   m = 8,     parameter   n = 8,     parameter   width = clogb2(n) ) (     input   [n*m-1:0]   indata,     input   [width-1:0] sel,     output  [m-1:0]     outdata );   assign  outdata =   indata[(m*(sel+1)-1)-:m];


以下两个函数任用一个 //求2的对数函数 function integer log2;   input integer value;   begin  
  value = value-1;     for (log2=0; value>0; log2=log2+1)  
    value = value>>1;   end
    endfunction   //求2的对数函数 function integer clogb2 (input integer bit_depth); begin     for(clogb2=0; bit_depth>0; clogb2=clogb2+1)  
      bit_depth = bit_depth>>1; end endfunction   endModule 这里需要注意:   [n-:m]表示数据位宽为m的从n开始的数据位宽。如reg [6-:3] 表示 reg [6:4] 参数传递必须时具体数值,如在parameter定义。
求log以2为低的整数,具体方法上面用到的是移位寄存器,即将数据向右移位即可以得到所需最大的整数。 也可以利用下面的方法:  function integer log2(input integer x);    
    integer i;         begin             log2 = 1;          
  for (i = 0; 2**i < x; i = i + 1) //不用移位寄存器,只用比较器         
    begin            
    log2 = i + 1;      
      end      
  end  endfunction   注:2**i 表示2i   log2(10)等于4   log2(16)等于4   log2(510001000)等于26      

编辑:黄飞

 

猜您喜欢

二极管作为重要的半导体器件,应用于电子电路中。主要功能是允许电流在一个方向上流动,而在另一个方向上阻止电流。判断二极管的工作状态对于维护和修理电路非常重要。本文...
2025-04-04 16:30:03

在日常生活中,鞋子是我们最常使用的物品,而鞋底的清洁往往被忽视。鞋底清洁机的出现,完美解决了这一难题。这款高效的清洁设备,采用先进的刷洗技术,能够轻松去除鞋底的...
2018-07-12 00:00:00

2512贴片电阻的功率并非固定值,而是根据具体应用场景而定。虽然封装尺寸为2512,但这只代表了电阻的物理大小(2.5mm x 1.2mm),并不直接决定其功率...
2024-11-26 11:29:39

贴片电阻在电路中主要起限流、分压、偏置等作用。通过消耗电能将电流转换为热能,从而限制电流大小,或者将电压分割成需要的比例。在信号处理电路中,贴片电阻还能用于信号...
2024-11-29 10:25:52

贴片电阻的规格由一系列关键指标定义,这些指标决定了其性能和适用性。主要指标包括:阻值: 表示电阻大小,单位为欧姆 (Ω)。 阻值的选择取决于电路设计需求。精度:...
2024-11-29 10:25:38

保险丝作为保护电路安全的关键元件,其性能参数受到关注。利康作为市场上知名的保险丝品牌,其产品在电压参数方面表现尤为突出。本文将围绕“利康保险丝电压参数多少品牌”...
2021-01-29 07:15:30

防浪涌电阻在保护电路安全中的作用日益重要。susumu作为知名电子元器件制造商,其防浪涌电阻系列受到业界关注。那么,susumu防浪涌电阻系列有哪些品牌?本文将...
2016-02-04 01:19:55

充电器是现代生活中不可少的电子设备,主要作用是为各种电子产品提供电能。无论是手机、平板电脑还是笔记本电脑,充电器都是非常重要的配件。通过将电能从插座传输到设备,...
2022-03-08 00:00:00

采样电阻作为电流检测和信号采集的重要元件,其性能直接影响整个系统的稳定性和精度。ROYALOHM(厚生)作为知名的电子元器件品牌,其采样电阻因高品质和稳定性广受...
2013-11-17 11:27:30

对于0.1欧姆的贴片电阻,由于阻值过小,通常不会直接用数字标注其阻值。一般情况下,会采用字母R来表示小阻值电阻,并用数字代码表示具体阻值。对于0.1欧姆的贴片电...
2024-11-29 10:26:21