MyHDL - MyHDL
MyHDL[1] a Python asoslangan apparat tavsiflash tili (HDL).
MyHDL xususiyatlariga quyidagilar kiradi:
- Yaratish qobiliyati VHDL va Verilog MyHDL dizaynidan olingan kod.[2]
- Sinov stolini yaratish qobiliyati (Sinov skameykalarini konversiyalash[3]) Python-dagi murakkab hisoblashlarga asoslangan VHDL yoki Verilog-dagi sinov vektorlari bilan.
- Signallarning ro'yxatini aylantirish qobiliyati.[4]
- Chiqishni tekshirishni o'tkazish qobiliyati.[5]
- Verilog bilan birgalikda simulyatsiya qilish qobiliyati.[6]
- An'anaviy ma'lumotlar turlaridan mustaqil ravishda rivojlangan ma'lumotlar turi tizimi. MyHDL tarjimoni vositasi maqsadli til talab qilganda konversiya funktsiyalarini avtomatik ravishda yozadi.
MyHDL Jan Decaluwe tomonidan ishlab chiqilgan.[7]
Konversiya misollari
Bu erda siz MyHDL dizaynidan VHDL va / yoki Verilog-ga o'tkazishning ba'zi bir misollarini ko'rishingiz mumkin.[8]
Kichik kombinatorial dizayn
Masalan, kichik kombinatorial dizayn, aniqrog'i ikkilikdan Greygacha kod konvertori:
def bin2gray(B, G, kengligi: int): "" "Kulrang kodlovchi. B - kirish intbv signali, ikkilik kodlangan G - chiqish intbv signali, kulrang kodlangan kenglik - bit kengligi """ @hayotiy_sozlar def mantiq(): Keyingi = intbv(0)[kengligi + 1 :] Keyingi[:] = B uchun men yilda oralig'i(kengligi): G.Keyingisi[men] = Keyingi[men + 1] ^ Keyingi[men] qaytish mantiq
Siz misol yaratishingiz va Verilog va VHDL-ga quyidagi tarzda o'zgartirishingiz mumkin:
kengligi = 8B = Signal(intbv(0)[kengligi:])G = Signal(intbv(0)[kengligi:])bin2gray_inst = to Verilog(bin2gray, B, G, kengligi)bin2gray_inst = toVHDL(bin2gray, B, G, kengligi)
Yaratilgan Verilog kodi quyidagicha ko'rinadi:
modul bin2gray ( B, G);kiritish [7:0] B;chiqish [7:0] G;reg [7:0] G;har doim @(B) boshlash: BIN2GRAY_LOGIC tamsayı men; reg [9-1:0] Keyingi; Keyingi = 9-h0; Keyingi = B; uchun (men=0; men<8; men=men+1) boshlash G[men] <= (Keyingi[(men + 1)] ^ Keyingi[men]); oxirioxiriendmodule
Yaratilgan VHDL kodi quyidagicha ko'rinadi:
kutubxona IEEE;foydalanish IEEE.std_logic_1164.barchasi;foydalanish IEEE.numeric_std.barchasi;foydalanish std.textio.barchasi;foydalanish work.pck_myhdl_06.barchasi;tashkilot bin2gray bu port ( B: yilda imzosiz(7 pastga 0); G: chiqib imzosiz(7 pastga 0) );oxiri tashkilot bin2gray;me'morchilik MyHDL ning bin2gray buboshlashBIN2GRAY_LOGIC: jarayon (B) bu o'zgaruvchan Keyingi: imzosiz(8 pastga 0);boshlash Keyingi := imzolanmagan(0, 9); Keyingi := o'lchamini o'zgartirish(B, 9); uchun men yilda 0 ga 8-1 pastadir G(men) <= (Keyingi((men + 1)) xor Keyingi(men)); oxiri pastadir;oxiri jarayon BIN2GRAY_LOGIC;oxiri me'morchilik MyHDL;
Shuningdek qarang
- Free EDA dasturini taqqoslash
- EDA dasturiy ta'minotini taqqoslash
- Elektron dizaynni avtomatlashtirish (EDA)
- C - HDL kompilyatorlar
Adabiyotlar
- ^ http://www.myhdl.org/
- ^ http://docs.myhdl.org/en/stable/manual/conversion.html
- ^ http://docs.myhdl.org/en/stable/whatsnew/0.6.html#conversion-of-test-benches
- ^ http://docs.myhdl.org/en/stable/whatsnew/0.6.html#conversion-of-lists-of-signals
- ^ http://docs.myhdl.org/en/stable/whatsnew/0.6.html#conversion-output-verification
- ^ http://docs.myhdl.org/en/stable/manual/cosimulation.html
- ^ http://www.linuxjournal.com/article/7542
- ^ http://docs.myhdl.org/en/stable/manual/conversion_examples.html