原创 【数字IC】高级IC程序设计(15)比较器

2023-3-18 22:04 717 7 7 分类: FPGA/CPLD 文集: 数字IC

数字 IC 设计中,总是需要对一些数据进行大小的比较,例如比较两个或者三个以上的数据的大小,接着进行排序,最终输出等等。于是,比较器(Comparator)的数字逻辑电路就应运而生。

基于 8 位的数值比较器的 Verilog 代码和 RTL 电路

Plaintext
module Comparator(
input wire [7:0] a , // 比较数
input wire [7:0] b , // 比较数
output reg result, // 比较结果
output reg equal // 比较结果
);


// 行为描述
always @(a or b) begin
if(a > b)
{equal,result} <= 2'b01; // a 比 b 大
else begin
if(a < b)
{equal,result} <= 2'b00; // a 比 b 小
else
{equal,result} <= 2'b10; // 相等
end
end


// 数据流描述
// assign equal = (a == b) ? 1 : 0;
// assign result = (a > b) ? 1 : 0;


endmodule

代码详解

两个 8 比特二进制输入信号的大小进行判断:如果 a 比较大,则 out 输出高电平;如果 b 比较大,则 out 输出低电平;如果 a 和 b 大小相等,那么,则 equal 输出高电平,否则 equal 输出低电平。

  对于比较器的应用呢,其实,比较器在现实生活中也可以作为过滤器来使用。比如我们在统计成绩的时候,要把不及格的学生过滤掉,那么我们就可以利用比较器,过滤掉成绩不及格的学生。当输入的成绩小于 60 分的时候就不输出显示出来,那么最后统计出来的都是成绩合格的学生。

  其实说了这么多,比较器的设计也只是一个简单的设计,更重要的,是如何基于简单的比较器拓展延伸自己的设计知识,如何更加广泛地、更加实际地、较为创新地通过自己所学的知识,从而达到的 “学习比较器的设计” 远远大于 “学习比较器的设计”,这才是本文的最终目的!学习不只是为了学习,更重要的,是能够对现实生活中起到一种提高的作用,那么,花时间来学习就是值得的!!!

 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /3 下一条