سوال مدار منطقی

920789

عضو جدید
مداری را طراحی کنید که اعداد زوج 0 تا 15 را نشان دهد.

از دوستان هر کی اطلاعاتی داره لطفا کمک کنه.

با تشکر:smile::gol:
 

mr.asadi

عضو جدید
فکر کنم با شمارنده با استفاده از فلیپ فلاپ های متوالی بشه این کار رو انجام داد
 

asdf4040

عضو جدید
سلام دوستان عزیز من یه برنامه گرفتم برای طراحی مدارهای دیجیتال اسمشhdl.works.hdl.design.EASEv7.4

ولی بلد نیستم با این کار کنم اگه لطف کنید منو تو این زمینه راهنمایم کنید ممنون می شوم(فایل ویدویی- pdf)

پیروز باشید
 

nastaran1r

عضو جدید
من 2 تا سوال دارم اگه میشه راهنمایی کنید:ممنون

1- کد گری یک عدد باینری اعشاری رو چه طوری میشه نوشت مثلن:01101.10001 
2- کد همینگ یه عدد مثلن 25 رو چه طوری میشه به BCD تبدیل کرد و بعد همینگشو نوشت باید 4 بیت 4 بیت جدا کنیم ؟
0101   0010
 

مهرداد_

عضو جدید
سلام دوست عزیز
واسه بدست آوردن گری از عدد باینری ، باید از سمت راست ترین بیت شروع کنی و با بیت بقلیش (بیت سمت چپش) xor کنی و آخری رو خودشو بنویسی
حالا قسمت اعشاری رو جدا باید گری کنی و قسمت صحیحش هم جدا گری میشه

مثال طریقه گری کردن

0110 را میخواهیم تبدیل به گری کنیم : (از سمت راست بخون)
0 xor با 1 میشه = 1
1 xor با 1 میشه = 0
1 xor با 0 میشه = 1
و در آخر خود 0 رو مینویسیم = 0

پس شد 0101
---------------------------------------------------------------

حالا سوال بعدی
برای تبدیل عدد دهدهی به باینری به این صورت عمل کن

- - - - - - - - ما 8 تا جای خالی داریم از سمت راست ضریبشون رو به این صورت در نظر بگیر 1 2 4 8 16 32 64 128

به این صورت (2به توان 1) بعدی (2به توان 2) و ...... آخریش هم 2 به توان 7 که میشه 128

حالا برای بدست آوردن عدد 25 فقط کافیه عددهای 16 و 8 و 1 رو 1 در نظر بگیریم و بقیه رو 0

توضیحات : 16 + 8 + 1 میشود 25

حالا اگه بخواهیم مثلا 29 رو بگیریم چطوری میشه؟ (جوابش رو خودت پیدا کن)

و اما همینگ :
یه توضیحاتی درباره اش بدم اول : کد همینگ واسه تشخیص خطاست و 1 خطا رو میتونه تشخیص و تصحیح کنه و 2 تا خطا رو فقط میتونه تشخیص بده، برای تشخیص دادن میاد و چند تا بیت اضافه میکنه ، کد همینگ یه خورده طولانی تر از بقیه است:

خب ما میخوایم همینگ 25 رو بگیریم :

اول تبدیل میکنیم به bcd که طبق گفته های قبل به این شکل میشه = 1 0 0 1 1 0 0 0 ok? که مینویسیم 11001 (یعنی سه تا 0 پشت آخرین بیت 1 رو هم میتونیم ننویسیم)

اگه این بیت ها رو با b2 , b1 و .... شماره گذاری کنیم این شکلی میشه b1 =1 , b2 =0 , b3 =0 , b4 = 1 , b5 =1 حالا ما میایم بیت 6 - 7 - 8 رو نداریم ، میایم اینطوری حسابشون میکنیم که اول این سه بیت رو با مثلا c شماره گذاری میکنیم

و c6 میشه بیت ششم و ........

خب حالا مقدار c8 - c6 - c7 رو به اینطوری محاسبه میکنیم

c6= b1 xor b2 xor b4
و c7 و c8 هم همینطور
فقط به خاطر 2 و 4 عددهای بعدی رو میذاریم تا دونه به دونه همه نوشته بشه
بعد که این مقادیر رو پیدا کردیم همه رو به ترتیب سرجاشون قرار میدیم میشه همینگ

ببخشید خیلی زیاد حرف زدم

اگه نامفهوم بود بگو تا تصحیح کنم ، در ضمن ببخشید اینجا بیشتر از این نمیشد توضیح داد (به دلیل محدودیت فقط نوشتاری که خود نوشتاریش هم دارای محدودیت هستش)

اگه باز جایی کمکی خواستید در خدمتم
 
آخرین ویرایش:
بالا