差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
上一修订版 两侧同时换到之后的修订记录
实验2-2_4位比较器 [2017/03/02 10:56]
zhijun
实验2-2_4位比较器 [2017/03/02 11:04]
zhijun
行 5: 行 5:
 ===== 1.实验目的 ===== ===== 1.实验目的 =====
  
-    (1)熟悉和掌握FPGA开发流程和Lattice Diamond软件使用方法 +熟悉和掌握FPGA开发流程和Lattice Diamond软件使用方法 
-    ​(2)通过实验理解和掌握比较器原理 + 
-    ​(3)学习用Verilog HDL描述多位比较器级联电路+通过实验理解和掌握比较器原理 
 + 
 +学习用Verilog HDL描述多位比较器级联电路
  
  
行 16: 行 18:
 ===== 3.实验原理 ===== ===== 3.实验原理 =====
  
- 1位的比较器有如下性能: +1位的比较器有如下性能: 
-    ​(1)如果X>​Y或者X=Y且Gin=1,那么输出Gout为1; +  ​* ​如果X>​Y或者X=Y且Gin=1,那么输出Gout为1; 
-    ​(2)如果X=Y且Gin=0和Lin=0,那么输出Eout为1; +  ​* ​如果X=Y且Gin=0和Lin=0,那么输出Eout为1; 
-    ​(3)如果X<​Y或者X= Y且Lin=1 ,那么输出Lout为1 。+  ​* ​如果X<​Y或者X= Y且Lin=1 ,那么输出Lout为1 。
 1位比较器原理图与真值表如下: 1位比较器原理图与真值表如下:
  
-{{ ::​bijiaoqiyuanlitu.png?​300 |}}+{{ ::​bijiaoqiyuanlitu.png?​600 |}}
  
 +写一个如下图所示的4位比较器的Verilog程序,我们可以使用1位比较器的Verilog模块,然后使用4个模块实例语句创建这个顶层模块设计。若想增加比较器的大小,需要为增加的X和y的每一位写新的模块例化语句。在Verilog always块中使用for循环语句,就可以很方便地实现任意位比较器。然而,模块实例语句不能用在always模块中,但可以用在任务(task)中。
 +Verilog for循环语句的一般形式为
 +//
 +{{ ::​foryunju.png?​600 |}}
 +//
 + ​初始分配为循环变量设置初始值。当条件为真时,执行表达式,然后由语句描述的for循环实体执行。之后,增量更新,再执行一次表达式。for循环的实体一直循环执行,直到条件表达式的值为假。如果for循环的实体部分包含多条语句,那么应该放在begin和end之间。
  
 +{{ ::​forxunhuan.png?​600 |}}
 ===== 4.Verilog HDL建模描述 ===== ===== 4.Verilog HDL建模描述 =====