电子说
在数字系统中,总是需要对一些数据进行比较,比较两个数值甚至多个数值的大小,然后进行排序,于是,数值比较器(Comparator)的逻辑电路便应运而生。
比较器呢,比较简单,那就让我们从底层硬件代码看一看到底有多简单!!!
下面是比较器的 Verilog 代码实现:
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 位数值比较器,其 RTL 电路图如下所示:
8 位数值比较器的 RTL 电路图
对两个 8 位二进制输入信号进行大小判断:如果 a 大,则 out 为高电平;如果 b 大,则 out 为低电平;如果 a 和 b 大小相等,那么 equal 则输出高电平,否则输出低电平。
全部0条评论
快来发表一下你的评论吧 !