当前位置:   article > 正文

【FPGA实验5】两位比较器_fpga 比较器

fpga 比较器

case语句写出比较电路:
推出一个2位较大数判断电路的真值表
用case语句编写判断电路
1、给出程序
2、给出仿真程序
3、给出RTL
4、给出仿真结果

1、真值表

当data1=data2时,输出为0,表示两者相等;当data1>data2时,输出为1,表示data1比较大;当data2>data1时,输出为2,表示data2比较大。

data1data2output
000000
000110
001010
001110
010001
010100
011010
011110
100001
100101
101000
101110
110001
110101
111001
111100
2、比较电路程序
module Comparer(input wire[1:0] data1,
												input wire [1:0]data2,
												output wire [1:0]result );
			
			reg [1:0] result1;
			
		always @* begin
			result1=2'b11;
			case({data1,data2})
			0000,0101,1010,1111:  result1=2'b00;
			0001,0010,0011,0110,0111,1011:  result1=2'b10;
			default:  result1=2'b01;
			endcase
			
		end
		assign result=result1;
		
endmodule

	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
3、RTL图

由上述程序得到的RTL图如下所示:
在这里插入图片描述

4、测试程序
`timescale 1ns/100ps
module tb_Comparer;

		reg clk;
		reg [3:0]data_pro;
		reg[1:0]data_1,data_2;
		wire [1:0]result_1;
		parameter PERIOD=10;
		
		always #(PERIOD/2)  clk=~clk;
		
		initial begin
				clk=0;
				data_1=2'b00;
				data_2=2'b00;
				data_pro=4'b0000;
				# 160 $stop(2);
		end
		
		always @(posedge clk) begin	
			data_pro=data_pro+1;
			data_1={data_pro[1],data_pro[0]};
			data_2={data_pro[3],data_pro[2]};
			$display(data_1,data_2);
		end
		
		Comparer Com_1(.data1(data_1),.data2(data_2),.result(result_1));
	
	endmodule
	

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
5、仿真结果

当输入data_1=data_2时,输出为0。如下图,当输入data_1=00,data_2=00,输出为0。

在这里插入图片描述

当输出data_1>data_2时,输出为1,表示第1个数据比较大。如下图,当输入data_1=11,data_2=00,输出为1。

在这里插入图片描述

当输出data_2>data_1时,输出为2,表示第2个数据比较大。如下图,当输入data_1=00,data_2=01,输出为2。

在这里插入图片描述

6、完成本设计时的错误总结
(1)无法生成RTL错误

编译的时候不会有语法报错,但是无法生成RTL图。原因是没有给输出wire参量标定位数。

没有给输出参量标定位数,产生的RTL图如下:

在这里插入图片描述
在这里插入图片描述

标定输出参量的位数之后,产生的RTL图如下:

在这里插入图片描述
在这里插入图片描述

(2)case语句输出错误

错误现象:在输入是1100,也就是case3的情况下,输出应该是01,实际输出是11。也就是说没有执行到这个case里面去。发现解决方法是修改case3的所有情况为default,有点玄学

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/467758
推荐阅读
相关标签