فهرست مطالب:

کرونومتر اولیه با استفاده از VHDL و Basys3 Board: 9 مرحله
کرونومتر اولیه با استفاده از VHDL و Basys3 Board: 9 مرحله

تصویری: کرونومتر اولیه با استفاده از VHDL و Basys3 Board: 9 مرحله

تصویری: کرونومتر اولیه با استفاده از VHDL و Basys3 Board: 9 مرحله
تصویری: VHDL Tutorial (part 06) آموزش VHDL 2024, نوامبر
Anonim
Image
Image

به نحوه آموزش ساخت کرنومتر با استفاده از برد اصلی VHDL و Basys 3 خوش آمدید. ما مشتاق هستیم که پروژه خود را با شما به اشتراک بگذاریم! این یک پروژه نهایی برای دوره CPE 133 (طراحی دیجیتال) در Cal Poly ، SLO در پاییز 2016 بود. پروژه ای که ساختیم یک کرونومتر ساده است که زمان شروع ، بازنشانی و مکث را دارد. سه دکمه را روی برد Basys3 به عنوان ورودی می گیرد و زمان روی صفحه چهار رقمی هفت قسمتی برد نمایش داده می شود. زمان سپری شده در یک ثانیه نمایش داده می شود: قالب ثانیه ثانیه. از ساعت سیستم برد به عنوان ورودی برای پیگیری زمان سپری شده استفاده می کند و زمان را به چهار رقم صفحه نمایش هفت قسمتی نشان می دهد.

مرحله 1: مواد

تنظیم ورودی ها و خروجی ها
تنظیم ورودی ها و خروجی ها

مواد مورد نیاز برای این پروژه:

  • 1 رایانه با Vivado Design Suite WebPack نصب شده از Xilinx (نسخه 2016.2 را ترجیح دهید)
  • 1 تخته Digilent Basys3 Xilinx Artix-7 FPGA
  • 1 کابل پورت USB

مرحله 2: تنظیم ورودی ها و خروجی ها

شکل بالا یک نمودار بلوک سطح بالا از ماژول کرونومتر اصلی را نشان می دهد. کرونومتر ورودی های "CLK" (ساعت) ، "S1" (دکمه شروع) ، "S2" (دکمه مکث) و "RST" (تنظیم مجدد) را دارد و دارای خروجی 4 بیتی "آند" ، 7 بیتی است. خروجی "بخش" و خروجی تک بیتی "DP" (نقطه اعشار). وقتی ورودی "S1" زیاد است ، کرونومتر شروع به شمارش زمان می کند. هنگامی که "S2" کم است ، کرونومتر زمان را متوقف می کند. هنگامی که "RST" زیاد است ، کرونومتر متوقف می شود و زمان را مجددا تنظیم می کند. چهار زیر ماژول در مدار وجود دارد: تقسیم ساعت ، شمارنده رقم ، درایور صفحه نمایش هفت بخش و رمزگذار صفحه نمایش هفت بخش. ماژول اصلی کرونومتر تمام زیرمودولها را به هم و ورودی و خروجی را به هم متصل می کند.

مرحله 3: ساخت ساعت

ساخت ساعت
ساخت ساعت

ماژول تقسیم ساعت یک ساعت سیستم را می گیرد و از یک ورودی تقسیم کننده برای ایجاد یک ساعت با هیچ سرعتی بیشتر از ساعت سیستم استفاده نمی کند. کرونومتر از دو ماژول ساعت مختلف استفاده می کند ، یکی از آنها ساعت 500 هرتز و دیگری که ساعت 100 هرتز را ایجاد می کند. شماتیک تقسیم ساعت در شکل بالا نشان داده شده است. تقسیم ساعت یک ورودی تک بیتی "CLK" ، و یک ورودی 32 بیتی "تقسیم کننده" و خروجی تک بیتی "CLKOUT" را وارد می کند. "CLK" ساعت سیستم و "CLKOUT" ساعت حاصل است. این ماژول همچنین شامل یک گیت NOT می باشد که هنگامی که شمارنده به مقدار تقسیم کننده برسد ، سیگنال "CLKTOG" را تغییر می دهد.

مرحله چهارم: شمارش تا ده

شمارش تا ده
شمارش تا ده

شمارنده رقمی هر رقم را از 0 تا 10 می شمارد و یک ساعت دیگر ایجاد می کند تا رقم بعدی از کار بیفتد و هنگامی که شمارش به 10 برسد ، نوسان می کند. ماژول 3 ورودی تک بیتی "S" ، "RST" و "CLK" می گیرد. "و منجر به خروجی تک بیت" N "و خروجی 4 بیت" D "می شود. ورودی "S" در ورودی فعال است. وقتی "S" بالا است ساعت روشن می شود و وقتی "S" پایین است خاموش می شود. "RST" ورودی تنظیم مجدد است ، بنابراین زمانی که "RST" زیاد است ساعت بازنشانی می شود. "CLK" ورودی ساعت برای شمارنده رقم است. "N" خروجی ساعت است که به ساعت ورودی رقم بعدی تبدیل می شود. خروجی "D" مقدار دودویی رقمی را که شمارنده در آن قرار دارد نشان می دهد.

مرحله 5: نمایش اعداد

نمایش اعداد
نمایش اعداد

رمزگذار صفحه نمایش هفت قسمتی ، عدد باینری دریافت شده از ماژول درایور صفحه نمایش هفت قسمتی را رمزگذاری کرده و آن را به یک جریان بیتی تبدیل می کند که برای هر بخش از صفحه نمایش به عنوان مقادیر "1" یا "0" تفسیر می شود. شماره دودویی توسط ماژول به عنوان "رقم" ورودی 4 بیتی دریافت می شود و در نتیجه "بخش" خروجی 7 بیتی ایجاد می شود. این ماژول شامل یک بلوک فرایند واحد است که برای هر مقدار ورودی احتمالی از 0 تا 9. یک جریان 7 بیتی خاص را اختصاص می دهد. هر بیت در جریان های هفت بیتی یکی از هفت قسمت ارقام روی صفحه را نشان می دهد. ترتیب بخش ها در جریان "abcdefg" است و "0" بخش هایی را نشان می دهد که برای عدد داده شده روشن می شوند.

مرحله 6: نحوه نمایش کرونومتر

نحوه نمایش کرنومتر
نحوه نمایش کرنومتر

در ماژول درایور صفحه نمایش هفت قسمتی ، چهار ورودی 4 بیتی "D0" ، "D1" ، "D2" و "D3" وجود دارد که هر کدام نمایانگر چهار رقمی است که باید نمایش داده شود. ورودی "CLK" ورودی ساعت سیستم است. خروجی تک بیتی "DP" نشان دهنده نقطه اعشار در صفحه هفت قسمتی است. خروجی 4 بیتی "Anodes" تعیین می کند که کدام رقم در صفحه هفت قسمتی نمایش داده می شود و خروجی "بیت" 4 بیتی بستگی به وضعیت ورودی کنترل 2 بیتی "SEL" دارد. ماژول از 4 مالتی پلکسر برای ورودی کنترل "SEL" و سه خروجی استفاده می کند. "آند" ، "temp" و "DP".

مرحله 7: همه چیز را با هم جمع کنید

برای ایجاد دکمه های شروع و مکث ، از بلوک پردازشی "اگر" در حال اجرا شدن در ساعت 500Hz استفاده می شود. سپس با اعلام اجزای هر زیرمجموعه جداگانه و استفاده از سیگنالهای مختلف ، همه زیرمودولها را در ماژول اصلی کرونومتر به یکدیگر متصل کنید. زیرمجموعه های رقمی خروجی ساعت زیرمجموعه رقمی قبلی را دریافت می کنند و اولین مورد ساعت 100 هرتزی را می گیرد. خروجی های "D" زیرمجموعه های رقمی سپس به ورودی های "D" ماژول درایور صفحه نمایش هفت بخش تبدیل می شوند. و در نهایت خروجی "temp" ماژول درایور صفحه نمایش هفت بخش به ورودی "temp" ماژول رمزگذار هفت بخش تبدیل می شود.

مرحله 8: محدودیت ها

محدودیت ها
محدودیت ها

از 3 دکمه (W19 ، T17 و U18) برای ورودی های "RST" ، "S1" و "S2" استفاده کنید. W19 دکمه بازنشانی ، T17 دکمه شروع (S1) و U18 دکمه مکث (S2) است. با استفاده از پورت W5 یک محدودیت برای ورودی ساعت نیز لازم است. همچنین ، به یاد داشته باشید که این خط را به محدودیت ساعت اضافه کنید:

create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports {CLK}]

همچنین آندها و قطعات را به برد وصل کنید تا کرونومتر در صفحه هفت قسمتی همانطور که در فایل محدودیت ها مشاهده می شود نمایش داده شود.

مرحله 9: آزمایش

آزمایش کردن
آزمایش کردن

مطمئن شوید دستگاه شما با بازی با سه دکمه کار می کند: فشار دادن و نگه داشتن آنها به هر ترتیب ممکن برای پیدا کردن مشکلات احتمالی در کد.

توصیه شده: