集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1390|回复: 1

【FPGA设计实例】简单的组合逻辑设计

[复制链接]
lovelyboywyl 发表于 2010-11-20 10:19:11 | 显示全部楼层 |阅读模式
这是一个可综合的数据比较器,很容易看出它的功能是比较数据a与数据b,如果两个数据相同,则给出结果1,否则给出结果0。在Verilog HDL中,描述组合逻辑时常使用assign结构。注意equal=(a==b)?1:0,这是一种在组合逻辑实现分支判断时常使用的格式。

模块源代码:
  1. //--------------- compare.v -----------------
  2. module compare(equal,a,b);
  3. input a,b;
  4. output equal;
  5. assign  equal=(a==b)?1:0; //a等于b时,equal输出为1;a不等于b时,
  6.                              //equal输出为0。
  7. endmodule
复制代码
测试模块用于检测模块设计得正确与否,它给出模块的输入信号,观察模块的内部信号和输出信号,如果发现结果与预期的有所偏差,则要对设计模块进行修改。   
测试模块源代码:
  1. `timescale 1ns/1ns      //定义时间单位。
  2. `include  "./compare.v" //包含模块文件。在有的仿真调试环境中并不需要此语句。
  3.                          //而需要从调试环境的菜单中键入有关模块文件的路径和名称
  4.   module  comparetest;
  5.    reg a,b;
  6.    wire equal;
  7.    initial              //initial常用于仿真时信号的给出。
  8.      begin
  9.        a=0;
  10.        b=0;
  11.      #100   a=0; b=1;
  12.      #100   a=1; b=1;
  13.      #100   a=1; b=0;
  14.      #100   $stop;      //系统任务,暂停仿真以便观察仿真波形。
  15.      end  
  16.     compare  compare1(.equal(equal),.a(a),.b(b));    //调用模块。  
  17. endmodule      
复制代码
 楼主| lovelyboywyl 发表于 2010-11-20 10:23:44 | 显示全部楼层
不错啊,这个很基础,很实用
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-5-24 07:57 , Processed in 0.075196 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表