HDLbits--Thermostat

题目描述:夏天 -> mode0 -> 只要too_hot=1 -> aircon=1 -> fan =1  <-fan_on=1

                  冬天 -> mode1 -> 只要too_cool=1 -> heater=1 -> fan =1  <-fan_on=1

warning:考虑所有输入(四个输入), 十六个状态考虑完全

module top_module (
    input too_cold,
    input too_hot,
    input mode,
    input fan_on,
    output heater,
    output aircon,
    output fan
); 
    assign aircon = ~mode&~too_cold&too_hot&~fan_on|~mode&~too_cold&too_hot&fan_on|
         ~mode&too_cold&too_hot&~fan_on|~mode&too_cold&too_hot&fan_on;
    assign heater = mode&too_cold&~too_hot&~fan_on| mode&too_cold&~too_hot&fan_on|
         mode&too_cold&too_hot&~fan_on| mode&too_cold&too_hot&fan_on;
    assign fan =mode&too_cold&~too_hot&~fan_on|mode&too_cold&~too_hot&fan_on|
        mode&too_cold&too_hot&fan_on| mode&~too_cold&too_hot&fan_on| 
        mode&~too_cold&~too_hot&fan_on| ~mode&~too_cold&too_hot&~fan_on|
         ~mode&~too_cold&too_hot&fan_on| ~mode&~too_cold&~too_hot&fan_on|
         ~mode&too_cold&~too_hot&fan_on|~mode&too_cold&too_hot&fan_on|
        mode&too_cold&too_hot&~fan_on| ~mode&too_cold&too_hot&~fan_on;

endmodule

                   简单点:

module top_module(
	input too_cold, 
	input too_hot,
	input mode,
	input fan_on,
	output heater,
	output aircon,
	output fan
);
	// Reminder: The order in which you write assign statements doesn't matter. 
	// assign statements describe circuits, so you get the same circuit in the end
	// regardless of which portion you describe first.

	// Fan should be on when either heater or aircon is on, and also when requested to do so (fan_on = 1).
	assign fan = heater | aircon | fan_on;
	
	// Heater is on when it's too cold and mode is "heating".
	assign heater = (mode & too_cold);
	
	// Aircon is on when it's too hot and mode is not "heating".
	assign aircon = (~mode & too_hot);
	
	// * Unlike real thermostats, there is no "off" mode here.
	
endmodule

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值