عملکرد هر آسانسور مستقل از آسانسور دیگر است. ماژول Elevator Controller درخواستهایی که برای استفاده از آسانسور میآید را با الگوریتمهای کوتاهترین مسیر بین دو آسانسور تقسیم میکند.
تحوه تقسیم درخواستها میان آسانسورها در خیلی از مجتمعهای حال حاضر کشور در حال استفاده است. به طور مثال در ساختمان Opal که بیش از ۱۰ طبقه است از همین روش استفاده میشود.
ماژول ساخته شده ترتیبی است و با کلاک کار میکند. در فایل testbench نوشته شده نمونهای از استفاده از آسانسور را میتوان مشاهده کرد.
در این پروژه به تمام نکاتی که برای سنتزپذیر بودن نیاز است، توجه شده است و برنامهها به طور کال سنتزپذیر هستند.
هر آسانسور ۵ دکمه برای مقصد افراد سوار شده، یک دکمه برای سوار شدن، یک دکمه برای پیاده شدن دارد. وظیفه Elevator Controller است که درخواستهای افراد بیرون از آسانسور را از طریق همان ۵ دکمه به آسانسور بدهد. آسانسور تمام درخواستها را در رجیستری به نام reqs ذخیره میکند.
آسانسور مادامی که درخواستی نداشته باشد، هیچ عملیاتی انجام نمیدهد. با اولین درخواست ابتدا در بسته میشود و سپس به سمت مقصد حرکت میکند. نکته قابل توجه برای آسانسور این است که اگر در حال حرکت به سمت بالا باشد، تا وقتی که درخواستی در طبقات بالاتر داشته باشد، به بالا حرکت میکند و تنها در صورتی به پایین میرود که در طبقات بالاتر درخواستی نباشد. این رفتار مشابه رفتار اکثر آسانسورهای حال حاضر کشور میباشد.
آسانسور چندین مقدار مختلف از جمعه طبقه کنونی، تعداد افراد درون آسانسور، جهت حرکتش را نشان بدهد و با استفاده از ماژول دیگری که پیادهسازی شده است، هر کدام را میتوان به صورت 7-Segment نشان داد.
کنترلکننده آسانسور یا Elevator Controller با توجه به اینکه از الگوریتم آسانسور با خبر است، وقتی از بیرون درخواستی میآید، زمانی که طول میکشد تا آسانسور به طبقه درخواستی برسد را به طور تقریبی محاسبه میکند. در واقع فرض میکند که آسانسور در جهتی که در حال حرکت است تا انتها میرود یعنی طولانیترین مسیر ممکن و درخواست را به آسانسور نزدیکتر میدهد.