เครื่องจักรแบบเมลลี่
เครื่องจักรเมลลี่ () เป็นเครื่องสถานะจำกัดชนิดหนึ่งซึ่งเอาต์พุตของสถานะนั้นๆเป็นฟังก์ชันของสถานะปัจจุบันและอินพุต ด้วย
การวิเคราะห์วงจรเปลี่ยนสถานะตรงตามจังหวะเวลา ( Clocked Synchronous State-Machine Analysis)สามารถทำได้โดยเพิ่มหน่วยความจำไปที่ output อีกชุดหนึ่ง (output pipeline memory)
ซึ่งค่าของ pipelined outputs ขณะใดๆ จะขึ้นอยู่กับ สถานะและอินพุทในช่วงคาบของclock ก่อนการ tick ครั้งล่าสุด
- ตัวอย่างที่ 1 : Mealy Machine ที่ใช้ positive-edge-triggered D flip-flop
- จากแผนภาพวงจร จะเห็นว่าเป็น clocked synchronous เครื่องสถานะ ชนิด Mealy Machine
เปลี่ยนสถานะที่ขอบขาขึ้นของ CLK (ดูจากชนิดของ flip-flop) มีตัวแปรอินพุท 1 ตัว คือ EN
มีตัวแปรสถานะ 2 ตัว คือ Q0, Q1 (ดูจากจำนวน flip-flop) มีตัวแปรเอาต์พุต 1 ตัว คือ MAX
เป็น FSMs มีสถานะเปลี่ยนแปลงตามสัญญาณนาฬิกา แต่เอาต์พุต ที่ได้จะเปลี่ยนตามอินพุตที่เข้ามาในแต่ละสถานะ คือ
ภายในสถานะหนึ่งๆ จะมีลักษณะของเอาต์พุตที่สามารถเปลี่ยนแปลงได้ ตามอินพุตที่เปลี่ยน หรืออาจกล่าวได้ว่า "Output ของระบบจะขึ้นอยู่กับสถานะปัจจุบัน (Present State) " และอินพุตที่เข้ามากระตุ้นระบบในขณะนั้น
Mealy Machine เป็น State Machine ที่อนุญาตให้เอาต์พุตมีการเปลี่ยนแปลงได้โดยไม่จำเป็นต้องเข้าจังหวะกับการเปลี่ยนสถานะ ที่สำคัญก็คือสถานะยังเปลี่ยนตามจังหวะ clock แต่เอาต์พุตสามารถเปลี่ยนตามอินพุตได้ทันทีโดยไม่สนใจ
clock และงานบางอย่างสามารถลดจำนวนสถานะลงได้ถ้าใช้ Mealy Machine งานบางอย่างจำเป็นต้องใช้ Mealy Machine
เท่านั้น ข้อเสียของ Mealy Machine คือ เข้าใจยากกว่า Moore Machine จึงออกแบบยากกว่าและเสียงต่อการเกิด glitch ที่
เอาต์พุตมากกว่า
คือแบบจำลองของวงจร ซีเควนเชียล จาก 1 ใน 2 ประเภท อีกประเภทหนึ่ง คือ Moore model
เช่น จากState A ไป B จะมีลูกศรเป็นตัวชี้ และที่ลูกศรมีตัวเลขกำกับ 0/1 หมายถึงเมื่อinput เป็น 0 จะให้ output 1 และ 
Stateเปลี่ยนจาก A ไป B
ซึ่งเราสามารถที่จะนำ Mealy Model มาทำการวิเคราะห์วงจรซีเควนเชียลได้ โดยการวิเคราะห์วงจร ซีเควนเชียล แยกออกเป็น 4 ประเภทด้วยกัน คือ
pulse จะเข้าจังหวะ (Synchronous) กับนาฬิกา หรือ ไม่เข้าจังหวะ (Asynchronous) กับนาฬิกาก็ได้ซึ่งทั้งสองกรณี input pulse จะมีผลต่อการเปลี่ยนสถานะต่อไปของวงจร ในช่วงจังหวะที่มี pulseนาฬิกาเท่านั้น
สัญญาณ Input เป็น level ไม่ว่า level นั้นจะเข้าจังหวะกับสัญญาณนาฬิกาหรือไม่
(แบบที่ 3) วงจร Pulsed asynchronous ต้องใช้ความรอบคอบเป็นพิเศษ เนื่องจากไม่มี pulse นาฬิกาเป็นตัวกำหนดจังหวะที่จะเกิดการ
เปลี่ยนแปลงของวงจร ดังนั้น State ของวงจรจะเปลี่ยนแปลงทันที เมื่อ input ที่เข้ามาเปลี่ยนแปลง
(แบบที่ 4) วงจร เลเวลอซิงโครนัสเป็นวงจรที่มี input เป็น level และไม่มี clock ควบคุมหน่วยความจำป็นแบบที่วิเคราะห์ได้ยากที่สุด
ทำให้เราสามารถวิเคราะห์วงจรลอจิก ต่างๆ โดยหาState table และ Timing diagram ของมันได้
และภาพด้านล่างนี้คือ mealy machine timing diagramตัวอย่างแผนผังเวลาการทำงานของวงจรแต่ละวงจร
ตัวอย่าง :จากตารางสภาวะข้างล่างนี้เป็นรูปแบบของ มิลลี ให้หา
วิธีทำ พิจารณาจากตารางสภาวะที่ให้มา จะพบว่าOutput Z จะขึ้นกับทั้ง Input x และ PS (y)
โดยที่ Input x = 0, 1 (มี 2 ค่า) ตัวแปรสภาวะ (state) = A, B, C (3 สภาวะ) มักแทนด้วย
Code เช่น A = 00, B = 01, C = 10 Output Z = 0, 1 (2 ค่า)
ก) เขียน state diagram ได้ดังนี้
ข) ASM. Chart เขียนได้ดังนี้
ค) หาลำดับของ output Z เมื่อ input x = 011011 และ สภาวะเริ่มต้นที่สภาวะ A
∴ เราสามารถแสดงการทำงานได้ดังนี้
เวลา : 1 2 3 4 5 6
Input x : 0 1 1 0 1 1 (6 bit)
สภาวะเริ่มต้น y : A B A C A C
สภาวะต่อไป Y : B A C A C C
Output Z : 1 1 0 0 0 0
มาทำความรู้จักกับ Finite State Machines หรือ FSMs ซึ่งเป็นเครื่องมือที่ใช้สำหรับออกแบบวงจรที่มีสัญญาณนาฬิกาควบคุมการทำงาน (Sequential) มีการทำงานเป็นสถานะ (State) แต่ละสถานะจะมีการทำงานที่แตกต่างกัน ค่าเอาต์พุตและสถานะถัดไป จะถูกกำหนดโดยอินพุตที่เข้ามายังสถานะนั้นๆ ทำให้สามารถเปลี่ยนจากสถานะหนึ่งไปยังสถานะอื่นๆได้ ซึ่งเป็นเครื่องมือที่มีประโยชน์มากในการออกแบบระบบดิจิตอล เพื่อนำไปอธิบายการทำงานของวงจร โดยทั่วไปวงจรที่ประกอบไปด้วย หน่วยความจำ หรือรีจีสเตอร์ ถือว่าเป็น Finite State Machines (FSMs)