HDLBits (57) — 恒溫器
本題鏈接:
https://hdlbits.01xz.net/wiki/Thermostat
加熱/冷卻恒溫器控制加熱器(冬季)和空調(夏季)。執(zhí)行一個電路,根據(jù)需要打開和關閉加熱器、空調和鼓風機風扇。
恒溫器可以分為兩種模式: 加熱(mode?= 1)和冷卻(mode?= 0)。在加熱模式下,當加熱器太冷(too_cold? = 1)時打開加熱器,但不要使用空調。在冷卻模式下,當空調太熱(too_hot?= 1)時打開空調,但不要打開加熱器。當加熱器或空調打開時,也打開風扇使空氣循環(huán)。此外,即使加熱器和空調關閉,用戶也可以要求風扇打開(fan_on?= 1)。
嘗試僅使用assign語句,以查看是否可以將問題描述轉換為邏輯門集合。
預期解決方案長度:大約3行。

題目
提示:
在設計電路時,人們常常不得不考慮“向后”的問題,從輸出開始,然后向后工作到輸入。參見ringer。

答案

輸出波形
冬天

夏天


按位操作符包括:取反(~),與(&),或(|),異或(^),同或(~^)。
按位操作符對 2 個操作數(shù)的每 1bit 數(shù)據(jù)進行按位操作。
如果 2 個操作數(shù)位寬不相等,則用 0 向左擴展補充較短的操作數(shù)。
取反操作符只有一個操作數(shù),它對操作數(shù)的每 1bit 數(shù)據(jù)進行取反操作。
下圖給出了按位操作符的邏輯規(guī)則。

條件(if)語句用于控制執(zhí)行語句要根據(jù)條件判斷來確定是否執(zhí)行。
條件語句用關鍵字 if 和 else 來聲明,條件表達式必須在圓括號中。
條件語句使用結構說明如下:
參考內(nèi)容:
2.4 Verilog 表達式?| 菜鳥教程:
https://www.runoob.com/w3cnote/verilog-expression.html