العناصر المنطقية
يوم جيد ، أبدأ سلسلة من المقالات حول كتابة جهاز افتراضي بلغة جولانج. لقد اخترت هذه اللغة لأنها سهلة القراءة ولديها الوظائف اللازمة في المكتبة القياسية التي ستكون مفيدة في المستقبل.
لا تحتوي هذه المقالة مطلقًا على أي معلومات جديدة لأولئك الذين يمكنهم تجميع جداول الحقيقة للبوابات المنطقية البسيطة. إذا كنت تعرف كيفية ذلك ، فلا تضيع الوقت وانتقل إلى الجزء الثاني.
بوابة المنطق عبارة عن جهاز به واحد أو أكثر من المدخلات ومخرج واحد أو أكثر. في هذا الجزء سننظر فقط في أبسط منهم. بالنسبة لبوابات النمذجة ، سنستخدم فقط الإشارات 0 و 1 ، دون استخدام خصائص المدخلات والمخرجات للبوابات الحقيقية.
بما أننا سنعمل مع Golang ، يمكن تمثيل كل عنصر كدالة.
في Go ، تبدو الوظيفة كما يلي:
func ( ) {
عازلة
هذا هو أبسط عنصر له إدخال واحد ومخرج واحد. في الممارسة العملية ، يتم استخدامه لتضخيم إشارة أو إنشاء تأخير ، وأحيانًا يمكن استبدالها بموصل.
في حالة المخزن المؤقت ، ستبدو وظيفتنا كما يلي:
func Buf(v bool) bool { return v }
العاكس
المخزن المؤقت نفسه ، فقط الإخراج عكس الإشارة.
في حالة وجود العاكس ، ستبدو الوظيفة كما يلي:
func Inv(v bool) bool { return !v }
OR
يحتاج هذا العنصر إلى إشارة واحدة على الأقل تساوي 1 من أجل الحصول على 1 في الإخراج.
func Or(v, s bool) bool { return v || s }
و
يتم إرجاعه دائمًا 1 ، عندما يتم توفير 1 لجميع مدخلاته ، في جميع الحالات الأخرى يتم إرجاع 0.
func And(v, s bool) bool { return v && s }
حصري أو
من أجل الحصول على 1 في الإخراج ، من الضروري تطبيق إشارات مختلفة (0 و 1) أو (1 و 0) على الإدخال. هذه العملية مفيدة لأنها تتيح لك تبديل متغيرين دون استخدام ذاكرة إضافية.
func Xor(v, s bool) bool {
ام لا
إنه يعمل كعنصر OR ، فقط العاكس متصل بإخراجه ، والذي نحصل منه على إشارة.
func Nor(v, s bool) bool { return !(v || s) }
و لا
يعمل العنصر تمامًا مثل العنصر And ، فقط الإشارة مقلوبة عند الإخراج.
func Nand(v, s bool) bool { return !(v && s) }
حصري أو مع انعكاس
يعمل العنصر بنفس الطريقة التي يعمل بها عنصر OR ، فقط الإشارة مقلوبة عند الإخراج.
func Xnor(v, s bool) bool {
الآن وبعد كتابة الوظائف ، يمكنك تجميعها في حزمة Gate ، والتي على أساسها سننفذ أشياء أكثر تعقيدًا. سيكون تسلسل هرمي الحزمة لدينا مشابهًا للتسلسل الهرمي لتجريد الكمبيوتر الحقيقي. شفرة المصدر يمكن العثور عليها
هنا .