根据要求,输入端口应该至少有两个(两个4位的二进制数据),输出至少一个。由于题目不够详细,比较后输出什么并没有说明,比如是数据1和数据2进行比较,若数据>数据2,输出1,否则输出0。或者是大于、小于或等于都应该输出不同的标志位。

下面以“数据1和数据2进行比较,若数据1>数据2,输出01;若数据1<数据2,输出10;若数据1=数据2,输出11。”进行举例设计。

根据题目要求,输入端有两个:数据1和数据2,输出端有1个:结果。

本人比较喜欢使用Verilog HDL,跟C语言比较相近,通俗易懂,使用方便。

(1)首先,新建个工程,然后新建一个Verilog HDL File,先把模块名称(data_comparator)定义好,然后定义两个输入端data1和data2,一个输出端result,设置result的初始值为00,也可以不设置。模块的框架以关键字module开头,endmodule结束。

VHDL语言设计4位二进制数据比较器

▲模块定义

(2)端口定义好之后就可以生成模块了,也可以完全编好程序之后再生成。生成的模块如下:

VHDL语言设计4位二进制数据比较器

▲生成的模块符号

(3)最后把模块程序完善,always@(data1, data2)为触发语句,当data1或 data2数据有变化时就会往下执行。程序如下所示:

VHDL语言设计4位二进制数据比较器

▲数据比较器模块程序

附代码:module data_comparator(

input [3:0] data1, data2,

output reg [1:0]result

);

initial

begin

result

end

always @(data1, data2)

begin

if (data1 > data2)

result

else if(data1

result

else if(data1 == data2)

result

else

result

end

endmodule

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查