SystemVerilog ಅನ್ನು ಬಳಸಿಕೊಂಡು FPGA ಗಳಿಗೆ ಪ್ರೋಗ್ರಾಂ ಮಾಡಲು ಕಲಿಯುವುದು. FPGA. ಪ್ರೋಗ್ರಾಮೆಬಲ್ ಲಾಜಿಕ್ ಸರ್ಕ್ಯೂಟ್‌ಗಳು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ ಮತ್ತು ಅವು ಏಕೆ ಉತ್ತಮವಾಗಿವೆ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳೋಣ. ಆಧುನಿಕ ಸಾಧನಗಳಲ್ಲಿ PLS ಅನ್ನು ಬಳಸುವುದು

FPGA (ಪ್ರೋಗ್ರಾಮೆಬಲ್ ಲಾಜಿಕ್ ಇಂಟಿಗ್ರೇಟೆಡ್ ಸರ್ಕ್ಯೂಟ್) ವಿಶೇಷ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಲ್ಲಿ ವಿವರಣೆಯಿಂದ ಡಿಜಿಟಲ್ ಸರ್ಕ್ಯೂಟ್‌ಗಳನ್ನು ನಿರ್ಮಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ ಇಂಟಿಗ್ರೇಟೆಡ್ ಸರ್ಕ್ಯೂಟ್ ಆಗಿದೆ. ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಹೇಳುವುದಾದರೆ, FPGA ಎಂಬುದು 74HCxx ನಂತಹ ಅಂಶಗಳ ಗುಂಪನ್ನು ಒಳಗೊಂಡಿರುವ ಚಿಪ್ ಆಗಿದೆ. ನಿಖರವಾಗಿ ಈ ತಾರ್ಕಿಕ ಅಂಶಗಳು ಯಾವುವು, ಅವುಗಳ ನಡುವೆ ಯಾವ ಸಂಪರ್ಕಗಳು ಇರುತ್ತವೆ ಮತ್ತು ಪರಿಣಾಮವಾಗಿ ಸರ್ಕ್ಯೂಟ್ ಹೊರಗಿನ ಪ್ರಪಂಚದೊಂದಿಗೆ ಯಾವ ಸಂಪರ್ಕಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ ಎಂಬುದನ್ನು FPGA ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಹಂತದಲ್ಲಿ ನಿರ್ಧರಿಸಲಾಗುತ್ತದೆ.

ಸೂಚನೆ:ನಾನು ಕಂಡುಹಿಡಿದಂತೆ, ಇಂದು ರಷ್ಯನ್ ಭಾಷೆಯಲ್ಲಿ FPGA ಮತ್ತು FPGA (ಫೀಲ್ಡ್-ಪ್ರೋಗ್ರಾಮೆಬಲ್ ಗೇಟ್ ಅರೇ, ಯೂಸರ್-ಪ್ರೋಗ್ರಾಮೆಬಲ್ ಗೇಟ್ ಅರೇ) ಪದಗಳನ್ನು ಪರಸ್ಪರ ಬದಲಾಯಿಸಬಹುದಾದಂತೆ ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ, ಇದನ್ನು ಪಠ್ಯದಲ್ಲಿ ಮತ್ತಷ್ಟು ಬಳಸಲಾಗುತ್ತದೆ. ಆದಾಗ್ಯೂ, ಪರ್ಯಾಯ ದೃಷ್ಟಿಕೋನದ ಅಸ್ತಿತ್ವದ ಬಗ್ಗೆ ತಿಳಿದುಕೊಳ್ಳುವುದು ಯೋಗ್ಯವಾಗಿದೆ, ಅದರ ಪ್ರಕಾರ ಎಫ್‌ಪಿಜಿಎ (ಎಫ್‌ಪಿಜಿಎ) ಎಫ್‌ಪಿಜಿಎ (ಪಿಎಲ್‌ಡಿ, ಪ್ರೊಗ್ರಾಮೆಬಲ್ ಲಾಜಿಕ್ ಡಿವೈಸ್) ವಿಧಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ.

FPGA ಬೇಸಿಕ್ಸ್

FPGA ಗಳನ್ನು ಪ್ರೋಗ್ರಾಂ ಮಾಡಲು, ಹಾರ್ಡ್‌ವೇರ್ ವಿವರಣೆ ಭಾಷೆಗಳನ್ನು (HDL, ಹಾರ್ಡ್‌ವೇರ್ ವಿವರಣೆ ಭಾಷೆ) ಬಳಸಲಾಗುತ್ತದೆ. ಅವುಗಳಲ್ಲಿ ಅತ್ಯಂತ ಜನಪ್ರಿಯವಾದವು ವೆರಿಲಾಗ್ (ಮತ್ತು ಅದರ ಉಪಭಾಷೆಗಳು, ನಿರ್ದಿಷ್ಟವಾಗಿ ಸಿಸ್ಟಮ್ ವೆರಿಲಾಗ್), ಹಾಗೆಯೇ ವಿಹೆಚ್‌ಡಿಎಲ್. ಭಾಷೆಗಳು ಹಲವು ವಿಧಗಳಲ್ಲಿ ಹೋಲುತ್ತವೆ, ಆದರೆ ವಿಭಿನ್ನ ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ಹೊಂದಿವೆ ಮತ್ತು ಕೆಲವು ವಿವರಗಳಲ್ಲಿ ಭಿನ್ನವಾಗಿರುತ್ತವೆ. ವೆರಿಲಾಗ್ ಹಾರ್ಡ್‌ವೇರ್ ವಿವರಣೆಯ ಪ್ರಪಂಚದ C ಆಗಿದ್ದರೆ, VHDL, ಅದರ ಪ್ರಕಾರ, ಪ್ಯಾಸ್ಕಲ್ ಆಗಿದೆ. ನನಗೆ ತಿಳಿದಿರುವಂತೆ, VHDL ಸ್ವಲ್ಪಮಟ್ಟಿಗೆ ಕಡಿಮೆ ಜನಪ್ರಿಯವಾಗಿದೆ, ನಿರ್ದಿಷ್ಟವಾಗಿ ವೆರಿಲಾಗ್‌ಗೆ ಹೋಲಿಸಿದರೆ ಅದರ ಶಬ್ದಾಡಂಬರತೆಯಿಂದಾಗಿ. VHDL ನ ಅನುಕೂಲಗಳ ಪೈಕಿ (ಅಥವಾ ಅನನುಕೂಲಗಳು, ಯಾರನ್ನು ಅವಲಂಬಿಸಿ) ನಾವು ಹೆಸರಿಸಬಹುದು ಕಟ್ಟುನಿಟ್ಟಾದಸ್ಥಿರ ಟೈಪಿಂಗ್. ವೆರಿಲಾಗ್ ಕೆಲವೊಮ್ಮೆ ಸೂಚ್ಯ ರೀತಿಯ ಎರಕವನ್ನು ಅನುಮತಿಸುತ್ತದೆ. ಸಿ ಮತ್ತು ಪ್ಯಾಸ್ಕಲ್‌ನೊಂದಿಗೆ ಸಾದೃಶ್ಯವನ್ನು ಮುಂದುವರಿಸಲು, ಭಾಷೆಗಳು ತುಂಬಾ ಭಿನ್ನವಾಗಿಲ್ಲ, ನೀವು ಎರಡನ್ನೂ ಕಲಿಯಲು ಸಾಧ್ಯವಿಲ್ಲ.

ಆನ್ ಈ ಕ್ಷಣಪ್ರಮುಖ FPGA ತಯಾರಕರು ಆಲ್ಟೆರಾ (ಈಗ ಇಂಟೆಲ್ ಒಡೆತನದಲ್ಲಿದೆ) ಮತ್ತು Xilinx. ವಿವಿಧ ಮೂಲಗಳ ಮಾಹಿತಿಯ ಪ್ರಕಾರ, ಅವರು ಒಟ್ಟಾಗಿ ಕನಿಷ್ಠ 80% ಮಾರುಕಟ್ಟೆಯನ್ನು ನಿಯಂತ್ರಿಸುತ್ತಾರೆ. ಆಕ್ಟೆಲ್ (ಮೈಕ್ರೊಸೆಮಿ ಸ್ವಾಧೀನಪಡಿಸಿಕೊಂಡಿತು), ಲ್ಯಾಟಿಸ್ ಸೆಮಿಕಂಡಕ್ಟರ್, ಕ್ವಿಕ್ಲಾಜಿಕ್ ಮತ್ತು ಸಿಲಿಕಾನ್ ಬ್ಲೂ ಸೇರಿದಂತೆ ಇತರ ಆಟಗಾರರು ಗಮನಿಸಬೇಕು. ನೀವು Xilinx ಅಭಿವೃದ್ಧಿ ಪರಿಸರದಿಂದ ಮಾತ್ರ Xilinx ಹಾರ್ಡ್‌ವೇರ್‌ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಬಹುದು (ವಿವಾಡೋ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ), ಮತ್ತು Altra ಅಭಿವೃದ್ಧಿ ಪರಿಸರವು (ಕ್ವಾರ್ಟಸ್ ಎಂದು ಕರೆಯಲ್ಪಡುತ್ತದೆ) Altera ಹಾರ್ಡ್‌ವೇರ್ ಅನ್ನು ಮಾತ್ರ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುತ್ತದೆ. ಅಂದರೆ, ಪೂರ್ಣ ಮಾರಾಟಗಾರರ ಲಾಕ್, ಮತ್ತು ನಿಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್‌ಗಾಗಿ ನಿರ್ದಿಷ್ಟ ಎಫ್‌ಪಿಜಿಎ ಆಯ್ಕೆಮಾಡುವಾಗ, ನೀವು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅನುಗುಣವಾದ ತಯಾರಕರ ಅಭಿವೃದ್ಧಿ ಸಾಧನಗಳನ್ನು ಆಯ್ಕೆಮಾಡುತ್ತೀರಿ, ಅವುಗಳ ತಾಂತ್ರಿಕ ಸಹಾಯ, ದಸ್ತಾವೇಜನ್ನು, ಸಾಫ್ಟ್‌ವೇರ್ ಪರವಾನಗಿ ನಿಯಮಗಳು, ಹಾರ್ಡ್‌ವೇರ್ ಬೆಂಬಲವನ್ನು ಸ್ಥಗಿತಗೊಳಿಸುವ ನೀತಿ, ಇತ್ಯಾದಿ.

ಹಾರ್ಡ್‌ವೇರ್‌ನಲ್ಲಿ ನೇರವಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಮೂಲಕ ಕೆಲವು ಲೆಕ್ಕಾಚಾರಗಳನ್ನು ಗಮನಾರ್ಹವಾಗಿ ವೇಗಗೊಳಿಸಲು ನೀವು ಬಯಸುವ ಕಾರ್ಯಗಳಲ್ಲಿ ಎಫ್‌ಪಿಜಿಎಗಳನ್ನು ಹೆಚ್ಚಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಆಸಿಲ್ಲೋಸ್ಕೋಪ್‌ಗಳು, ಸ್ಪೆಕ್ಟ್ರಮ್ ವಿಶ್ಲೇಷಕಗಳು, ಲಾಜಿಕ್ ವಿಶ್ಲೇಷಕಗಳು, ಸಿಗ್ನಲ್ ಜನರೇಟರ್‌ಗಳು, ಸಾಫ್ಟ್‌ವೇರ್ ಡಿಫೈನ್ಡ್ ರೇಡಿಯೋ ಮತ್ತು ಕೆಲವು ಮಾನಿಟರ್‌ಗಳಲ್ಲಿ ಹೇಳುವುದಾದರೆ, ಸಿಗ್ನಲ್ ಪ್ರೊಸೆಸಿಂಗ್ ಕ್ಷೇತ್ರದಲ್ಲಿ FPGA ಗಳು ವ್ಯಾಪಕವಾದ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಕಂಡುಕೊಂಡಿವೆ. ನಿರ್ದಿಷ್ಟವಾಗಿ ಹೇಳುವುದಾದರೆ, LimeSDR ಆಲ್ಟೆರಾ ಸೈಕ್ಲೋನ್ IV ಅನ್ನು ಬಳಸುತ್ತದೆ ಮತ್ತು Rigol DS1054Z ಆಸಿಲ್ಲೋಸ್ಕೋಪ್ Xilinx Spartan-6 ಅನ್ನು ಬಳಸುತ್ತದೆ, ಹಾಗೆಯೇ Actel ನಿಂದ ProASIC 3 ಅನ್ನು ಬಳಸುತ್ತದೆ. ನಾನು ಕೇಳಿದ ಇತರ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ ಕಂಪ್ಯೂಟರ್ ದೃಷ್ಟಿ, ಭಾಷಣ ಗುರುತಿಸುವಿಕೆ ಮತ್ತು ಬಯೋಇನ್‌ಫರ್ಮ್ಯಾಟಿಕ್ಸ್ ಸೇರಿವೆ. ಇತರ ಯೋಜನೆಗಳಿವೆ, ನಿರ್ದಿಷ್ಟವಾಗಿ ವೆಬ್ ಸರ್ವರ್‌ಗಳ ಅಭಿವೃದ್ಧಿ ಮತ್ತು FPGA ಯಲ್ಲಿ ಚಾಲನೆಯಲ್ಲಿರುವ DBMS. ಆದರೆ, ನನಗೆ ತಿಳಿದಿರುವಂತೆ, ಈ ನಿರ್ದೇಶನವು ಇನ್ನೂ ಪ್ರಾಯೋಗಿಕವಾಗಿದೆ.

Xilinx ಅಥವಾ Altera?

ಗಾದೆ ಹೇಳುವಂತೆ ಅತ್ಯುತ್ತಮ ಲಿನಕ್ಸ್ನಿಮ್ಮ ಸಹವರ್ತಿ ಲಿನಕ್ಸ್ ಗುರು ಬಳಸುವ ಒಂದು.

ನನ್ನ ಸ್ನೇಹಿತ, ಡಿಮಿಟ್ರಿ ಒಲೆಕ್ಸ್ಯುಕ್ ಅವರ ವ್ಯಕ್ತಿಯಲ್ಲಿ ಎಫ್‌ಪಿಜಿಎ ಗುರು, ಡಿಜಿಲೆಂಟ್‌ನಿಂದ ಆರ್ಟಿ ಆರ್ಟಿಕ್ಸ್ -7 ಅಭಿವೃದ್ಧಿ ಮಂಡಳಿಯೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸಲು ನನಗೆ ಸಲಹೆ ನೀಡಿದರು. ಇದರಲ್ಲಿ ಬಳಸಲಾದ ಎಫ್‌ಪಿಜಿಎ ಕ್ಸಿಲಿನ್‌ಕ್ಸ್‌ನಿಂದ ಆರ್ಟಿಕ್ಸ್-7 ಆಗಿದೆ. ಡಿಜಿಲೆಂಟ್ ಸ್ವತಃ ರಶಿಯಾಗೆ ತಲುಪಿಸುವುದಿಲ್ಲ, ಆದರೆ ಸಾಧನವು ಅಲೈಕ್ಸ್ಪ್ರೆಸ್ನಲ್ಲಿಯೂ ಸಹ ಲಭ್ಯವಿದೆ, ಆದಾಗ್ಯೂ ಗಮನಾರ್ಹವಾದ ಮಾರ್ಕ್ಅಪ್ನೊಂದಿಗೆ (ಅಧಿಕೃತ ಬೆಲೆ $ 99 ಆಗಿದೆ). ಇದನ್ನು ಇಬೇಯಲ್ಲಿಯೂ ಮಾರಾಟ ಮಾಡಲಾಗುತ್ತದೆ. ಇದು ಸಾಕಷ್ಟು ಶಕ್ತಿಯುತವಾದ ಬೋರ್ಡ್ ಆಗಿದೆ, ಆದಾಗ್ಯೂ, ಸಾಕಷ್ಟು ಸಮಂಜಸವಾದ ಹಣವನ್ನು ಖರ್ಚಾಗುತ್ತದೆ.

ಹಾಸ್ಯಮಯ ಸಂಗತಿ!ನೀವು ಕೇವಲ ವೆರಿಲಾಗ್ ಅಥವಾ VHDL ನಲ್ಲಿ ಪ್ರೋಗ್ರಾಂ ಮಾಡಲು ಬಯಸಿದರೆ, ಕಟ್ಟುನಿಟ್ಟಾಗಿ ಹೇಳುವುದಾದರೆ, ನೀವು ಯಾವುದೇ FPGA ಬೋರ್ಡ್ ಅನ್ನು ಖರೀದಿಸುವ ಅಗತ್ಯವಿಲ್ಲ. ಮೊದಲಿಗೆ, ನೀವು ಸಿಮ್ಯುಲೇಟರ್ಗೆ ನಿಮ್ಮನ್ನು ಮಿತಿಗೊಳಿಸಬಹುದು, ಅದರೊಂದಿಗೆ ಕೆಲಸವನ್ನು ಕೆಳಗೆ ಚರ್ಚಿಸಲಾಗುವುದು.

ಬೋರ್ಡ್‌ನ ಆಸಕ್ತಿದಾಯಕ ವೈಶಿಷ್ಟ್ಯವೆಂದರೆ ಆರ್ಡುನೊ ಶೀಲ್ಡ್‌ಗಳಿಗೆ ಹೊಂದಿಕೊಳ್ಳುವ ರೀತಿಯಲ್ಲಿ ಸಾಕೆಟ್‌ಗಳ ವ್ಯವಸ್ಥೆ. ಬೋರ್ಡ್‌ನೊಂದಿಗೆ ನೀವು ವಿವಾಡೋಗಾಗಿ ಪರವಾನಗಿಯನ್ನು ಪಡೆಯುವ ಇನ್ಸರ್ಟ್ ಅನ್ನು ಸಹ ಸೇರಿಸಲಾಗಿದೆ, ಅದು ಅದರ ಎಲ್ಲಾ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ತೆರೆಯುತ್ತದೆ. ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆಯ ಕ್ಷಣದಿಂದ ಒಂದು ವರ್ಷದವರೆಗೆ ಪರವಾನಗಿ ಮಾನ್ಯವಾಗಿರುತ್ತದೆ ಮತ್ತು OS ಪ್ರಕಾರ ಮತ್ತು MAC ವಿಳಾಸದ ಮೂಲಕ ಒಂದು ಕಂಪ್ಯೂಟರ್‌ಗೆ ಸಹ ಜೋಡಿಸಲಾಗಿದೆ.

ವಿತರಣೆಯ ನಂತರ. ಬೋರ್ಡ್‌ನಲ್ಲಿರುವ ಎಫ್‌ಪಿಜಿಎ ಹೊಂದಿರುವ ಸಾಧನಗಳು ಕಸ್ಟಮ್ಸ್ ಮೂಲಕ ಹೋಗದಿರುವ ಹೆಚ್ಚಿನ ಅವಕಾಶವನ್ನು ಹೊಂದಿವೆ ಎಂದು ನಾನು ಕೇಳಿದ್ದೇನೆ. AliExpress ಅಂಗಡಿ, ನಾನು ಮೇಲೆ ಒದಗಿಸಿದ ಲಿಂಕ್, ಮೂಲಕ ರಶಿಯಾಗೆ ಬೋರ್ಡ್ಗಳನ್ನು ತಲುಪಿಸುತ್ತದೆ ಕೊರಿಯರ್ ಸೇವೆ SPSR. ಕಸ್ಟಮ್ಸ್ ಅನ್ನು ತೆರವುಗೊಳಿಸಲು, ಪ್ರಸ್ತುತ ರಷ್ಯಾದ ಶಾಸನದ ಅಗತ್ಯವಿರುವಂತೆ ಪಾಸ್ಪೋರ್ಟ್ ಡೇಟಾ (ಡೇಟಾ ಮಾತ್ರ, ಫೋಟೋ ಇಲ್ಲ) ಮತ್ತು ಸಂಪರ್ಕ ಫೋನ್ ಸಂಖ್ಯೆಯೊಂದಿಗೆ ಆನ್‌ಲೈನ್ ಫಾರ್ಮ್ ಅನ್ನು ಭರ್ತಿ ಮಾಡುವುದು ಅಗತ್ಯವಾಗಿತ್ತು. ಇದರ ನಂತರ, ಯಾವುದೇ ಪ್ರಶ್ನೆಗಳನ್ನು ಕೇಳದೆ ನೇರವಾಗಿ ಬಾಗಿಲಿಗೆ ಕೊರಿಯರ್ ಮೂಲಕ ಬೋರ್ಡ್ ಅನ್ನು ತಲುಪಿಸಲಾಯಿತು.

Vivado ಅನ್ನು ಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ

Vivado ಅಭಿವೃದ್ಧಿ ಪರಿಸರವು Xilinx ವೆಬ್‌ಸೈಟ್‌ನಿಂದ ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಲಭ್ಯವಿದೆ. ಡೌನ್‌ಲೋಡ್ ಮಾಡುವ ಮೊದಲು ನೀವು ನೋಂದಾಯಿಸಿಕೊಳ್ಳಬೇಕು ಮತ್ತು ನಿಮ್ಮ ಬಗ್ಗೆ ಸಾಕಷ್ಟು ವಿವರವಾದ ಫಾರ್ಮ್ ಅನ್ನು ಭರ್ತಿ ಮಾಡಬೇಕು ಎಂಬ ಅಂಶಕ್ಕೆ ಮಾನಸಿಕವಾಗಿ ಸಿದ್ಧರಾಗಿರಿ. "Vivado HLx 2017.2: ಎಲ್ಲಾ OS ಸ್ಥಾಪಕ ಏಕ-ಫೈಲ್ ಡೌನ್‌ಲೋಡ್" ಎಂಬ ಆರ್ಕೈವ್ ಅನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ. ಆಕಸ್ಮಿಕವಾಗಿ ಅದನ್ನು ಕೆಲವು "ವಿವಾಡೋ ಲ್ಯಾಬ್ ಪರಿಹಾರಗಳು" ನೊಂದಿಗೆ ಗೊಂದಲಗೊಳಿಸಬೇಡಿ, ಇದು ನಿಮಗೆ ಬೇಕಾಗಿರುವುದು ಸಂಪೂರ್ಣವಾಗಿ ಅಲ್ಲ. ಆರ್ಕೈವ್ 20 GB ಗಿಂತ ಹೆಚ್ಚು ತೂಗುತ್ತದೆ, ಆದ್ದರಿಂದ ನಾವು ತಾಳ್ಮೆಯಿಂದಿರಬೇಕು.

ಆರ್ಕೈವ್ ಅನ್ನು ಅನ್ಪ್ಯಾಕ್ ಮಾಡಿ ಮತ್ತು ಅನುಸ್ಥಾಪಕವನ್ನು ರನ್ ಮಾಡಿ. Vivado HL ಸಿಸ್ಟಮ್ ಆವೃತ್ತಿಯನ್ನು ಸ್ಥಾಪಿಸಿ. ಇದರ ಪೂರ್ಣ ಆವೃತ್ತಿಯು 47 GB ಡಿಸ್ಕ್ ಜಾಗವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. ವೈಯಕ್ತಿಕವಾಗಿ, ನಾನು ಸಾಫ್ಟ್‌ವೇರ್ ಡೆವಲಪ್‌ಮೆಂಟ್ ಕಿಟ್ ಅನ್ನು ಅನ್ಚೆಕ್ ಮಾಡಿದ್ದೇನೆ ಮತ್ತು 7 ಸರಣಿಯ ಸಾಧನಗಳಿಗೆ ಮಾತ್ರ ಬೆಂಬಲವನ್ನು ಬಿಟ್ಟಿದ್ದೇನೆ, ಅದು ಗಾತ್ರವನ್ನು 12 GB ಗೆ ಕಡಿಮೆ ಮಾಡಿದೆ. ಸ್ವಲ್ಪ ಮುಂದೆ ನೋಡುವಾಗ, ಈ ಸಂರಚನೆಯು ಸಾಕಷ್ಟು ಸಾಕಾಗುತ್ತದೆ ಎಂದು ನಾನು ಗಮನಿಸುತ್ತೇನೆ.

Vivado ಅನ್ನು ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು, ನೀವು ಅದಕ್ಕೆ ಆರ್ಟಿ ಆರ್ಟಿಕ್ಸ್ -7 ಬೆಂಬಲವನ್ನು ಸೇರಿಸುವ ಅಗತ್ಯವಿದೆ, ಏಕೆಂದರೆ ಪೆಟ್ಟಿಗೆಯ ಹೊರಗೆ ಈ ಬೋರ್ಡ್ ಬಗ್ಗೆ ಏನೂ ತಿಳಿದಿಲ್ಲ. ಇದನ್ನು ಈ ರೀತಿ ಮಾಡಲಾಗಿದೆ:

cd ~/ opt/ xilinx/ Vivado/ 2017.2 / data/ boards/ board_files
wget https:// github.com/ Digilent/ vivado-boards/ archive/ master.zip
unzip master.zip
mv vivado-boards-master/ new/ board_files/* ./
rm -r vivado-boards-master
ಆರ್ಎಮ್ ಮಾಸ್ಟರ್.ಜಿಪ್

ನಾವು Arty_Master.xdc ಫೈಲ್ ಅನ್ನು ಎಲ್ಲೋ ಡೌನ್ಲೋಡ್ ಮಾಡಿ ಮತ್ತು ಉಳಿಸುತ್ತೇವೆ. ನಮಗೆ ಇದು ನಂತರ ಬೇಕಾಗುತ್ತದೆ. ಫೈಲ್ ಎಲ್ಇಡಿಗಳು, ಸ್ವಿಚ್ಗಳು ಮತ್ತು ಬೋರ್ಡ್ನಲ್ಲಿರುವ ವಿವರಣೆಯನ್ನು ಒಳಗೊಂಡಿದೆ. ಇದು ಇಲ್ಲದೆ, ವೆರಿಲಾಗ್ನಲ್ಲಿ ಎಲ್ಇಡಿಗಳನ್ನು ಮಿಟುಕಿಸುವುದು ಸುಲಭವಲ್ಲ.

SystemVerilog ನಲ್ಲಿ ಮೊದಲ ಯೋಜನೆ

Vivado ನಲ್ಲಿ ನಾವು ಫೈಲ್ → ಹೊಸ ಯೋಜನೆ ಎಂದು ಹೇಳುತ್ತೇವೆ... RTL ಪ್ರಾಜೆಕ್ಟ್ ಅನ್ನು ಪ್ರಾಜೆಕ್ಟ್ ಪ್ರಕಾರವಾಗಿ ಆಯ್ಕೆಮಾಡಿ, ಈ ಸಮಯದಲ್ಲಿ ಮೂಲಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಡಿ ಚೆಕ್‌ಬಾಕ್ಸ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿ. ಬೋರ್ಡ್ ಪ್ರಕಾರ ಆಯ್ಕೆ ಸಂವಾದದಲ್ಲಿ, ಪಟ್ಟಿಯಲ್ಲಿ ಆರ್ಟಿಯನ್ನು ಹುಡುಕಿ.

ಮೊದಲನೆಯದಾಗಿ, ಈ ಹಿಂದೆ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿದ XDC ಫೈಲ್ ಅನ್ನು ಯೋಜನೆಗೆ ಸೇರಿಸಿ. ಯೋಜನೆಯೊಂದಿಗೆ ಅದನ್ನು ಡೈರೆಕ್ಟರಿಗೆ ನಕಲಿಸಿ. ನಂತರ ನಾವು ಹೇಳುತ್ತೇವೆ ಫೈಲ್ → ಮೂಲಗಳನ್ನು ಸೇರಿಸಿ ... → ಸೇರಿಸಿ ಅಥವಾ ನಿರ್ಬಂಧಗಳನ್ನು ರಚಿಸಿ → ಫೈಲ್‌ಗಳನ್ನು ಸೇರಿಸಿ, ಫೈಲ್‌ನ ನಕಲನ್ನು ಹುಡುಕಿ, ಮುಕ್ತಾಯ ಕ್ಲಿಕ್ ಮಾಡಿ. ಪ್ರಾಜೆಕ್ಟ್ ಫೈಲ್ ಟ್ರೀಯಲ್ಲಿ (ಮೂಲಗಳು), ನಿರ್ಬಂಧಗಳ ಗುಂಪಿನಲ್ಲಿ, ಫೈಲ್ Arty_Master.xdc, ಅಥವಾ ನೀವು ನಕಲನ್ನು ಹೆಸರಿಸಿದ ಯಾವುದಾದರೂ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ. ಅದನ್ನು ತೆರೆಯಿರಿ ಮತ್ತು ಗಡಿಯಾರ ಸಿಗ್ನಲ್, ಸ್ವಿಚ್‌ಗಳು ಮತ್ತು ಎಲ್‌ಇಡಿ ಗುಂಪುಗಳಲ್ಲಿನ ಎಲ್ಲಾ ಸಾಲುಗಳನ್ನು ಅನ್‌ಕಾಮೆಂಟ್ ಮಾಡಿ.

ಮುಂದೆ ನಾವು ಹೇಳುತ್ತೇವೆ ಫೈಲ್ → ಮೂಲಗಳನ್ನು ಸೇರಿಸಿ… → ವಿನ್ಯಾಸ ಮೂಲಗಳನ್ನು ಸೇರಿಸಿ ಅಥವಾ ರಚಿಸಿ → ಫೈಲ್ ರಚಿಸಿ. ಫೈಲ್ ಪ್ರಕಾರದಲ್ಲಿ, SystemVerilog ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಿ, ಫೈಲ್ ಹೆಸರಿನಲ್ಲಿ hello ಅನ್ನು ನಮೂದಿಸಿ. ನಾವು ಮುಗಿಸಿ ಎಂದು ಹೇಳುತ್ತೇವೆ. ಮುಂದೆ, ಡಿಫೈನ್ ಮಾಡ್ಯೂಲ್ ಸಂವಾದವು ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ, ಇದು ಮಾಡ್ಯೂಲ್ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಕ್ಲಿಕ್ ಮಾಡಲು ನಿಮ್ಮನ್ನು ಕೇಳುತ್ತದೆ. ಸಂವಾದವು ಸಾಕಷ್ಟು ನಿಷ್ಪ್ರಯೋಜಕವಾಗಿದೆ, ಏಕೆಂದರೆ ಕೋಡ್‌ನಲ್ಲಿ ನೇರವಾಗಿ ಒಂದೇ ವಿಷಯವನ್ನು ಮಾಡಲು ಇದು ಹೆಚ್ಚು ಅನುಕೂಲಕರವಾಗಿದೆ, ಆದ್ದರಿಂದ ರದ್ದು ಕ್ಲಿಕ್ ಮಾಡಿ.

ಮೂಲ ಮರದಲ್ಲಿ ನಾವು ಕಂಡುಕೊಳ್ಳುತ್ತೇವೆ ಹೊಸ ಫೈಲ್ hello.sv, ಇದು ವಿನ್ಯಾಸ ಮೂಲಗಳ ಗುಂಪಿನಲ್ಲಿರುತ್ತದೆ. ಕೆಳಗಿನ ಕೋಡ್ ಅನ್ನು ತೆರೆಯಿರಿ ಮತ್ತು ಬರೆಯಿರಿ:

`ಟೈಮ್ಸ್ಕೇಲ್ 1ns/1ps

ಮಾಡ್ಯೂಲ್ ಹಲೋ (
ಇನ್ಪುಟ್ ಲಾಜಿಕ್ CLK100MHZ,
ಇನ್‌ಪುಟ್ ಲಾಜಿಕ್ [3:0] sw,
ಔಟ್ಪುಟ್ ಲಾಜಿಕ್ [3:0] ಕಾರಣವಾಯಿತು
) ;

ಯಾವಾಗಲೂ @ (ಪೋಸ್ಡ್ಜ್ CLK100MHZ)
ಆರಂಭಿಸಲು
ವೇಳೆ (sw[ 0 ] == 0 )
ಆರಂಭಿಸಲು
ಎಲ್ ಇ ಡಿ<= 4"b0001 ;
ಅಂತ್ಯ
ಬೇರೆ
ಆರಂಭಿಸಲು
ಎಲ್ ಇ ಡಿ<= 4"b0000 ;
ಅಂತ್ಯ
ಅಂತ್ಯ

ಎಂಡ್ ಮಾಡ್ಯೂಲ್

ಎಲ್ಲವನ್ನೂ ಸರಿಯಾಗಿ ಮಾಡಿದ್ದರೆ, ಈ ಹಂತದಲ್ಲಿ Vivado ಈ ರೀತಿ ಕಾಣುತ್ತದೆ (ಕ್ಲಿಕ್ ಮಾಡಬಹುದಾದ, PNG, 71 KB):

ಕಾರ್ಯಕ್ರಮದ ಸಂಕಲನವನ್ನು ಎರಡು ಹಂತಗಳಲ್ಲಿ ನಡೆಸಲಾಗುತ್ತದೆ - ಸಂಶ್ಲೇಷಣೆ ಮತ್ತು ಅನುಷ್ಠಾನ. ಸಂಶ್ಲೇಷಣೆಯ ಹಂತದಲ್ಲಿ, ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ತಾರ್ಕಿಕ ಗೇಟ್‌ಗಳು ಮತ್ತು ಇತರ ಅಂಶಗಳ ಅಮೂರ್ತ ಸರ್ಕ್ಯೂಟ್‌ಗೆ ಅನುವಾದಿಸಲಾಗುತ್ತದೆ. ಅನುಷ್ಠಾನದ ಹಂತದಲ್ಲಿ, ಈ ಸರ್ಕ್ಯೂಟ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟ ಹಾರ್ಡ್‌ವೇರ್‌ಗೆ ಹೇಗೆ ಫ್ಲಾಶ್ ಮಾಡುವುದು ಎಂಬುದರ ಕುರಿತು ನಿರ್ಧಾರ ತೆಗೆದುಕೊಳ್ಳಲಾಗುತ್ತದೆ.

ಫ್ಲೋ → ರನ್ ಸಿಂಥೆಸಿಸ್ ಎಂದು ಹೇಳುವ ಮೂಲಕ ಅಥವಾ ಸರಳವಾಗಿ F11 ಅನ್ನು ಒತ್ತುವ ಮೂಲಕ ಸಂಶ್ಲೇಷಣೆಯನ್ನು ಪ್ರಾರಂಭಿಸೋಣ. ಮೇಲಿನ ಬಲ ಮೂಲೆಯಲ್ಲಿ ಪ್ರಕ್ರಿಯೆಯು ಪ್ರಗತಿಯಲ್ಲಿದೆ ಎಂಬ ಸೂಚನೆಯನ್ನು ನೀವು ನೋಡುತ್ತೀರಿ. ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ ಮತ್ತು ಪ್ರೋಗ್ರಾಂನ ಸಂಕೀರ್ಣತೆಯನ್ನು ಅವಲಂಬಿಸಿ ಇದು ಸಾಕಷ್ಟು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳಬಹುದು. ನನ್ನ ಲ್ಯಾಪ್‌ಟಾಪ್‌ನಲ್ಲಿ, ಮೇಲಿನ ಪ್ರೋಗ್ರಾಂನ ಸಂಶ್ಲೇಷಣೆಯು ಸುಮಾರು 10 ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಪೂರ್ಣಗೊಂಡಿತು. ನೀವು ಈಗ ಫ್ಲೋ → ಓಪನ್ ಸಿಂಥಸೈಸ್ಡ್ ಡಿಸೈನ್ ಎಂದು ಹೇಳಿದರೆ, ನೀವು ಈ ರೀತಿಯ ಸುಂದರವಾದ ಚಿತ್ರವನ್ನು ನೋಡಬಹುದು:

ನಮ್ಮ ಬೋರ್ಡ್ ಅನ್ನು ಫ್ಲ್ಯಾಷ್ ಮಾಡುವ ಸಮಯ. ನಾವು ಫ್ಲೋ → ರನ್ ಇಂಪ್ಲಿಮೆಂಟೇಶನ್ ಎಂದು ಹೇಳುತ್ತೇವೆ, ನಂತರ ಫ್ಲೋ → ಬಿಟ್‌ಸ್ಟ್ರೀಮ್ ಅನ್ನು ರಚಿಸಿ. ನಾವು ಯುಎಸ್‌ಬಿ ಮೂಲಕ ಕಂಪ್ಯೂಟರ್‌ಗೆ ಬೋರ್ಡ್ ಅನ್ನು ಸಂಪರ್ಕಿಸುತ್ತೇವೆ, ವಿವಾಡೊದಲ್ಲಿ ನಾವು ಫ್ಲೋ → ಓಪನ್ ಹಾರ್ಡ್‌ವೇರ್ ಮ್ಯಾನೇಜರ್ → ಓಪನ್ ಟಾರ್ಗೆಟ್ → ಆಟೋ ಕನೆಕ್ಟ್ → ಪ್ರೋಗ್ರಾಂ ಸಾಧನ ಎಂದು ಹೇಳುತ್ತೇವೆ. ನೀವು ಬಿಟ್ ಫೈಲ್‌ಗೆ ಮಾರ್ಗವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕಾಗುತ್ತದೆ. ನನಗೆ ಅದು ಹೀಗಿತ್ತು:

./first-project.runs/impl_1/hello.bit

ನಾವು ಪ್ರೋಗ್ರಾಂ ಎಂದು ಹೇಳುತ್ತೇವೆ. ಈಗ SW0 ಸ್ವಿಚ್ ಅನ್ನು ಕಡಿಮೆಗೊಳಿಸಿದರೆ ಬೋರ್ಡ್‌ನಲ್ಲಿರುವ LD4 ಎಲ್‌ಇಡಿ ಬೆಳಗುತ್ತದೆ (ಮೇಲಿನ ಬೋರ್ಡ್‌ನ ಫೋಟೋವನ್ನು ನೋಡಿ). ಸ್ವಿಚ್ ಏರಿಸಿದರೆ, ಎಲ್ಇಡಿ ಬೆಳಗುವುದಿಲ್ಲ. ಸರಳ, ಸಹಜವಾಗಿ, ಆದರೆ ಇದು "ಹಲೋ, ವರ್ಲ್ಡ್", ನೀವು ಏನನ್ನು ನಿರೀಕ್ಷಿಸಿದ್ದೀರಿ? :)

ಸಿಮ್ಯುಲೇಶನ್

ಸಿಮ್ಯುಲೇಶನ್ ಎನ್ನುವುದು ವೆರಿಲಾಗ್ ಅಥವಾ ವಿಎಚ್‌ಡಿಎಲ್ ಕೋಡ್‌ನ ವರ್ಚುವಲ್ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಆಗಿದೆ, ಯಾವುದೇ ಎಫ್‌ಪಿಜಿಎಗಳಿಲ್ಲದೆ ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ನೇರವಾಗಿ. ಇದು ಡೀಬಗ್ ಮಾಡುವ ಸಾಧನವಾಗಿದೆ ಮತ್ತು ಪರೀಕ್ಷೆಗಳೊಂದಿಗೆ ಕೋಡ್ ಅನ್ನು ಒಳಗೊಳ್ಳಲು ಒಂದು ರೀತಿಯ ಚೌಕಟ್ಟಾಗಿದೆ.

ನಾನು ಸಿಮ್ಯುಲೇಶನ್ ಅನ್ನು ಪ್ರಯತ್ನಿಸಿದಾಗ, ನಾನು ಕಂಡುಹಿಡಿದ ಮೊದಲ ವಿಷಯವೆಂದರೆ ಅದು ನನಗೆ ಕೆಲಸ ಮಾಡಲಿಲ್ಲ. ದಾಖಲೆಗಳು ಸರಳವಾಗಿದ್ದವು:

ದೋಷ: ರಚಿಸಲಾದ C ಫೈಲ್ ಅನ್ನು ಕಂಪೈಲ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ [...]xsim_1.c.

ಈ ದೋಷಕ್ಕಾಗಿ, "ನಿಮ್ಮ ಆಂಟಿವೈರಸ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ಪ್ರಯತ್ನಿಸಿ" ಶೈಲಿಯಲ್ಲಿ ಎಲ್ಲಾ ರೀತಿಯ ಅಸಂಬದ್ಧತೆಯನ್ನು ಮಾತ್ರ Google ಕಂಡುಹಿಡಿದಿದೆ. ಪರಿಣಾಮವಾಗಿ, ~/opt/xilinx/Vivado/2017.2/bin/xelab ಸ್ಕ್ರಿಪ್ಟ್‌ಗೆ -v 2 ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ಸೇರಿಸುವುದರಿಂದ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಲು ಸಹಾಯವಾಯಿತು. ಅದರ ಸಹಾಯದಿಂದ, ವಿವಾಡೊ ತನ್ನೊಂದಿಗೆ ಸಾಗಿಸುವ ಬೈನರಿಯಾದ ಕ್ಲಾಂಗ್ ಈ ಕೆಳಗಿನ ದೋಷದೊಂದಿಗೆ ಕ್ರ್ಯಾಶ್ ಆಗುತ್ತದೆ ಎಂದು ನಾನು ಕಂಡುಕೊಂಡೆ:

/a/long/path/to/clang: ಹಂಚಿದ ಲೈಬ್ರರಿಗಳನ್ನು ಲೋಡ್ ಮಾಡುವಾಗ ದೋಷ:
libncurses.so.5: ಹಂಚಿದ ಆಬ್ಜೆಕ್ಟ್ ಫೈಲ್ ಅನ್ನು ತೆರೆಯಲು ಸಾಧ್ಯವಿಲ್ಲ: ಅಂತಹ ಫೈಲ್ ಇಲ್ಲ ಅಥವಾ
ಡೈರೆಕ್ಟರಿ

ಮತ್ತು ಈ ದೋಷ ಮತ್ತು ಅದರ ಪರಿಹಾರವನ್ನು ಆರ್ಚ್ ವಿಕಿಯಲ್ಲಿ ಈಗಾಗಲೇ ವಿವರಿಸಲಾಗಿದೆ. ವೈಯಕ್ತಿಕವಾಗಿ, ನಾನು Vivado_HLS ಡೈರೆಕ್ಟರಿಯಿಂದ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಫೈಲ್ ಅನ್ನು ನಕಲಿಸಿದ್ದೇನೆ:

cp ~/opt/xilinx/Vivado_HLS/2017.2/lnx64/tools/gdb_v7_2/libncurses.so.5\
~/opt/xilinx/Vivado/2017.2/lib/lnx64.o/libncurses.so.5

... ಅದರ ನಂತರ ಎಲ್ಲವೂ ಕೆಲಸ ಮಾಡಿದೆ. ಆದ್ದರಿಂದ, ಈಗ, ವಾಸ್ತವವಾಗಿ, ಸಿಮ್ಯುಲೇಶನ್‌ನ ಉದಾಹರಣೆ.

ನಾವು ಮೊದಲು hello.sv ಅನ್ನು ಹೇಗೆ ರಚಿಸಿದ್ದೇವೆ ಎಂಬುದರ ಸಾದೃಶ್ಯದ ಮೂಲಕ, ನಾವು ಸಿಮ್ಯುಲೇಶನ್ ಮೂಲಗಳ ಗುಂಪಿನಲ್ಲಿ hello_sim.sv ಹೊಸ ಫೈಲ್ ಅನ್ನು ರಚಿಸುತ್ತೇವೆ. ಫೈಲ್ನಲ್ಲಿ ನಾವು ಈ ಕೆಳಗಿನ ಕೋಡ್ ಅನ್ನು ಬರೆಯುತ್ತೇವೆ:

`ಟೈಮ್ಸ್ಕೇಲ್ 1ns/1ps

ಮಾಡ್ಯೂಲ್ hello_sim() ;
ತರ್ಕ clck_t;
ತರ್ಕ [3: 0] sw_t;
ತರ್ಕ [3: 0] led_t;

ಹಲೋ ಹಲೋ_ಟಿ(clck_t, sw_t, led_t) ;

ಆರಂಭಿಕ ಆರಂಭ
clck_t<= 0 ;
sw_t<= 4"b0000 ; # 1 ; clck_t <= 1 ; # 1 ; clck_t <= 0 ; # 1 ;
ಪ್ರತಿಪಾದಿಸಿ (led_t === 4"b0001 );

ಸ್ವ_ಟಿ<= 4"b0001 ; # 1 ; clck_t <= 1 ; # 1 ; clck_t <= 0 ; # 1 ;
ಪ್ರತಿಪಾದಿಸಿ (led_t === 4"b0000 );
ಅಂತ್ಯ

ಎಂಡ್ ಮಾಡ್ಯೂಲ್

ಮೂಲ ಮರದಲ್ಲಿ, ಫೈಲ್ ಮೇಲೆ ಬಲ ಕ್ಲಿಕ್ ಮಾಡಿ ಮತ್ತು ಮೂಲ ನೋಡ್ ಪ್ರಾಪರ್ಟೀಸ್ ಆಯ್ಕೆಮಾಡಿ. ಬಳಸಿದ ವಿಭಾಗದಲ್ಲಿ, ಸಿಂಥೆಸಿಸ್ ಮತ್ತು ಇಂಪ್ಲಿಮೆಂಟೇಶನ್ ಬಾಕ್ಸ್‌ಗಳನ್ನು ಗುರುತಿಸಬೇಡಿ. ಯಾವುದೇ ಪರೀಕ್ಷೆಗಳು ರಬ್ಬರಿ FPGA ಯಿಂದ ನಮ್ಮ ದೂರವನ್ನು ಮುಚ್ಚಿಹಾಕಲು ನಾವು ಬಯಸುವುದಿಲ್ಲ, ಅಲ್ಲವೇ?

ಈಗ ನಾವು ಫ್ಲೋ → ರನ್ ಸಿಮ್ಯುಲೇಶನ್ → ರನ್ ಬಿಹೇವಿಯರಲ್ ಸಿಮ್ಯುಲೇಶನ್ ಎಂದು ಹೇಳುತ್ತೇವೆ. ಪರಿಣಾಮವಾಗಿ, ನೀವು ಈ ರೀತಿಯದನ್ನು ನೋಡುತ್ತೀರಿ:

sw ಶೂನ್ಯವಾಗಿದ್ದಾಗ, led ಒಂದು ಮತ್ತು ಪ್ರತಿಯಾಗಿ ಎಂದು ನೋಡಬಹುದು. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಗಡಿಯಾರದ ಸಂಕೇತದ ಅಂಚಿನಲ್ಲಿ ಎಲ್ಲಾ ಬದಲಾವಣೆಗಳು ಸಂಭವಿಸುತ್ತವೆ. ಪ್ರೋಗ್ರಾಂ ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿರುವಂತೆ ತೋರುತ್ತಿದೆ. ಒಳ್ಳೆಯದು, ಸಮರ್ಥನೆಗಳ ಮೇಲೆ ಏನೂ ಬೀಳಲಿಲ್ಲ, ಅದು ಸುಳಿವು ತೋರುತ್ತದೆ.

ತೀರ್ಮಾನ

ಮೇಲೆ ವಿವರಿಸಿದ ಯೋಜನೆಯೊಂದಿಗೆ ಆರ್ಕೈವ್ ಅನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಬಹುದು. ಮಾಹಿತಿಯ ಹೆಚ್ಚುವರಿ ಮೂಲಗಳಾಗಿ ನಾನು ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಶಿಫಾರಸು ಮಾಡುತ್ತೇನೆ:

  • ನೀವು ಹಾರ್ಡ್‌ವೇರ್ ವಿವರಗಳಲ್ಲಿ ಆಸಕ್ತಿ ಹೊಂದಿದ್ದರೆ, ಗಮನ ಕೊಡಿ

ಪ್ರೊಸೆಸರ್, ನಿರ್ದಿಷ್ಟ ಸೂಚನೆಗಳ ಸೆಟ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಬದಲು, ಪ್ರತಿ ಪ್ರೋಗ್ರಾಂಗೆ ಮರುನಿರ್ಮಿಸಲಾಗುವುದು ಮತ್ತು ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ನೇರವಾಗಿ ಹಾರ್ಡ್ವೇರ್ ಆಗಿ ಪರಿವರ್ತಿಸುತ್ತದೆ ಎಂದು ಊಹಿಸಿ. ಎಫ್‌ಪಿಜಿಗಳು ಈ ರೀತಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ. ಇಂದಿನ ಲೇಖನದಲ್ಲಿ, ಇದು ಹೇಗೆ ಸಾಧ್ಯ ಎಂದು ನಾನು ನಿಮಗೆ ಹೇಳುತ್ತೇನೆ ಮತ್ತು ವಿವಿಧ FPGA ವಿನ್ಯಾಸ ವಿಧಾನಗಳನ್ನು ನಿಮಗೆ ಪರಿಚಯಿಸುತ್ತೇನೆ.

ಪ್ರಾರಂಭಿಸಲು, ನೀವು ASIC ಚಿಪ್‌ಗಳ ಡಿಜಿಟಲ್ ತರ್ಕದ ಬಗ್ಗೆ ಸ್ವಲ್ಪ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬೇಕು, ಆದರೆ ಅವುಗಳನ್ನು ಪ್ರಾರಂಭಿಸುವುದು ತುಂಬಾ ಕಷ್ಟ ಮತ್ತು ದುಬಾರಿಯಾಗಿದೆ ಮತ್ತು ಬದಲಿಗೆ FPGA ಗಳೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸುವುದು ಉತ್ತಮ.

FPGA ಎಂದರೇನು?

FPGAಫೀಲ್ಡ್-ಪ್ರೋಗ್ರಾಮೆಬಲ್ ಗೇಟ್ ಅರೇ (ಬಳಕೆದಾರ-ಪ್ರೋಗ್ರಾಮೆಬಲ್ ಗೇಟ್ ಅರೇಗಳು, ಎಫ್‌ಪಿಜಿಎ) ಗಾಗಿ ನಿಂತಿದೆ. ಹೆಚ್ಚು ಸಾಮಾನ್ಯವಾಗಿ, ಅವುಗಳನ್ನು ಎಫ್‌ಪಿಜಿಎ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ - ಪ್ರೊಗ್ರಾಮೆಬಲ್ ಲಾಜಿಕ್ ಇಂಟಿಗ್ರೇಟೆಡ್ ಸರ್ಕ್ಯೂಟ್‌ಗಳು.

FPGA ಅನ್ನು ಬಳಸಿಕೊಂಡು, ನೀವು ಹಲವಾರು ಸಾವಿರ ಹಸಿರು ರೂಬಲ್ಸ್ಗಳಿಗಾಗಿ ಮೇಜಿನ ಮೇಲೆ ಲಭ್ಯವಿರುವ ಡೀಬಗ್ ಬೋರ್ಡ್ ಮತ್ತು ಡೆವಲಪರ್ ಸಾಫ್ಟ್ವೇರ್ನೊಂದಿಗೆ ಮನೆಯಲ್ಲಿ ಕುಳಿತುಕೊಂಡು ಅಕ್ಷರಶಃ ಡಿಜಿಟಲ್ ಮೈಕ್ರೋ ಸರ್ಕ್ಯೂಟ್ಗಳನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಬಹುದು. ಆದರೆ ಉಚಿತ ಆಯ್ಕೆಗಳೂ ಇವೆ. ದಯವಿಟ್ಟು ಗಮನಿಸಿ: ಇದು ವಿನ್ಯಾಸಗೊಳಿಸಲು, ಪ್ರೋಗ್ರಾಂಗೆ ಅಲ್ಲ, ಏಕೆಂದರೆ ಔಟ್‌ಪುಟ್‌ನಲ್ಲಿ ನಾವು ಹಾರ್ಡ್‌ವೇರ್ ಮಟ್ಟದಲ್ಲಿ ನಿರ್ದಿಷ್ಟ ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ನಿರ್ವಹಿಸುವ ಭೌತಿಕ ಡಿಜಿಟಲ್ ಸರ್ಕ್ಯೂಟ್ ಅನ್ನು ಪಡೆಯುತ್ತೇವೆ ಮತ್ತು ಪ್ರೊಸೆಸರ್‌ಗಾಗಿ ಪ್ರೋಗ್ರಾಂ ಅಲ್ಲ.

ಇದು ಈ ಕೆಳಗಿನಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಬೋರ್ಡ್‌ನಲ್ಲಿ ಸ್ಥಾಪಿಸಲಾದ ಎಫ್‌ಪಿಜಿಎ ಚಿಪ್‌ಗೆ ಸಂಪರ್ಕಗೊಂಡಿರುವ ಇಂಟರ್‌ಫೇಸ್‌ಗಳ ಸೆಟ್‌ನೊಂದಿಗೆ ರೆಡಿಮೇಡ್ ಪ್ರಿಂಟೆಡ್ ಸರ್ಕ್ಯೂಟ್ ಬೋರ್ಡ್ ಇದೆ, ಡೇಟಾ ಸೆಂಟರ್‌ಗಾಗಿ ಈ ತಂಪಾದ ಬೋರ್ಡ್ ಅಥವಾ ತರಬೇತಿಗಾಗಿ ಈ ಡೀಬಗ್ ಬೋರ್ಡ್.

ನಾವು ಎಫ್‌ಪಿಜಿಎ ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುವವರೆಗೆ, ಇಂಟರ್ಫೇಸ್‌ಗಳಿಂದ ಡೇಟಾವನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಚಿಪ್‌ನಲ್ಲಿ ಯಾವುದೇ ತರ್ಕವಿಲ್ಲ ಮತ್ತು ಆದ್ದರಿಂದ, ಸಹಜವಾಗಿ, ಏನೂ ಕೆಲಸ ಮಾಡುವುದಿಲ್ಲ. ಆದರೆ ವಿನ್ಯಾಸದ ಪರಿಣಾಮವಾಗಿ, ಫರ್ಮ್ವೇರ್ ಅನ್ನು ರಚಿಸಲಾಗುತ್ತದೆ, ಇದು FPGA ಗೆ ಲೋಡ್ ಮಾಡಿದ ನಂತರ, ನಮಗೆ ಅಗತ್ಯವಿರುವ ಡಿಜಿಟಲ್ ಸರ್ಕ್ಯೂಟ್ ಅನ್ನು ರಚಿಸುತ್ತದೆ. ಈ ರೀತಿಯಾಗಿ, ನೀವು ನೆಟ್‌ವರ್ಕ್ ಪ್ಯಾಕೆಟ್‌ಗಳನ್ನು ಸ್ವೀಕರಿಸುವ ಮತ್ತು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವ 100G ಎತರ್ನೆಟ್ ನಿಯಂತ್ರಕವನ್ನು ರಚಿಸಬಹುದು.

FPGA ಯ ಪ್ರಮುಖ ಲಕ್ಷಣವೆಂದರೆ ಅದರ ಮರುಸಂರಚನಾ ಸಾಮರ್ಥ್ಯ. ಈಗ ನಮಗೆ 100G ಎತರ್ನೆಟ್ ನಿಯಂತ್ರಕ ಅಗತ್ಯವಿದೆ ಎಂದು ಹೇಳೋಣ ಮತ್ತು ಒಂದು ವಾರದಲ್ಲಿ ಅದೇ ಬೋರ್ಡ್ ಅನ್ನು ನಾಲ್ಕು ಸ್ವತಂತ್ರ 25G ಈಥರ್ನೆಟ್ ಇಂಟರ್ಫೇಸ್ಗಳನ್ನು ಅಳವಡಿಸಲು ಬಳಸಬಹುದು.

ಮಾರುಕಟ್ಟೆಯಲ್ಲಿ FPGA ಚಿಪ್‌ಗಳ ಎರಡು ಪ್ರಮುಖ ತಯಾರಕರಿದ್ದಾರೆ: ಸುಪ್ರಸಿದ್ಧ ಇಂಟೆಲ್ ಮತ್ತು Xilinx. ಅವರು ಮಾರುಕಟ್ಟೆಯ 58 ಮತ್ತು 42% ಅನ್ನು ನಿಯಂತ್ರಿಸುತ್ತಾರೆ. Xilinx ನ ಸಂಸ್ಥಾಪಕರು ತಮ್ಮ ಮೊದಲ FPGA ಚಿಪ್ ಅನ್ನು 1985 ರಲ್ಲಿ ಕಂಡುಹಿಡಿದರು. ಇಂಟೆಲ್ ಇತ್ತೀಚೆಗೆ ಮಾರುಕಟ್ಟೆಯನ್ನು ಪ್ರವೇಶಿಸಿತು - 2015 ರಲ್ಲಿ, Xilinx ನಂತೆಯೇ ಅದೇ ಸಮಯದಲ್ಲಿ ಸ್ಥಾಪಿಸಲಾದ Altera ಅನ್ನು ಹೀರಿಕೊಳ್ಳಿತು. Altera ಮತ್ತು Xilinx ತಂತ್ರಜ್ಞಾನಗಳು ಅಭಿವೃದ್ಧಿ ಪರಿಸರಗಳಂತೆಯೇ ಹಲವು ವಿಧಗಳಲ್ಲಿ ಹೋಲುತ್ತವೆ. ನಾನು Xilinx ಉತ್ಪನ್ನಗಳೊಂದಿಗೆ ಹೆಚ್ಚಾಗಿ ಕೆಲಸ ಮಾಡಿದ್ದೇನೆ, ಆದ್ದರಿಂದ ಲೇಖನದಲ್ಲಿ ಅದರ ನಿರಂತರ ಉಲ್ಲೇಖದಿಂದ ಆಶ್ಚರ್ಯಪಡಬೇಡಿ.

FPGA ಗಳನ್ನು ವಿವಿಧ ಕ್ಷೇತ್ರಗಳಲ್ಲಿ ವ್ಯಾಪಕವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ: ಗ್ರಾಹಕ ಎಲೆಕ್ಟ್ರಾನಿಕ್ಸ್, ಟೆಲಿಕಾಂ ಉಪಕರಣಗಳು, ಡೇಟಾ ಕೇಂದ್ರಗಳಲ್ಲಿ ಬಳಕೆಗಾಗಿ ವೇಗವರ್ಧಕ ಮಂಡಳಿಗಳು, ರೋಬೋಟಿಕ್ಸ್, ಮೂಲಮಾದರಿ ASIC ಚಿಪ್ಸ್. ನಾನು ಕೆಳಗೆ ಒಂದೆರಡು ಉದಾಹರಣೆಗಳನ್ನು ನೋಡುತ್ತೇನೆ.

ಹಾರ್ಡ್‌ವೇರ್ ಮರುಸಂರಚನೆಯನ್ನು ಒದಗಿಸುವ ತಂತ್ರಜ್ಞಾನವನ್ನು ಸಹ ನಾವು ನೋಡುತ್ತೇವೆ, ವಿನ್ಯಾಸ ಪ್ರಕ್ರಿಯೆಯೊಂದಿಗೆ ಪರಿಚಯ ಮಾಡಿಕೊಳ್ಳುತ್ತೇವೆ ಮತ್ತು ವೆರಿಲಾಗ್‌ನಲ್ಲಿ ಹಾರ್ಡ್‌ವೇರ್ ಕೌಂಟರ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಸರಳ ಉದಾಹರಣೆಯನ್ನು ನೋಡೋಣ. ನೀವು ಯಾವುದೇ ಎಫ್‌ಪಿಜಿಎ ಅಭಿವೃದ್ಧಿ ಮಂಡಳಿಯನ್ನು ಹೊಂದಿದ್ದರೆ, ನೀವೇ ಇದನ್ನು ಪುನರಾವರ್ತಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ. ಯಾವುದೇ ಬೋರ್ಡ್ ಇಲ್ಲದಿದ್ದರೆ, ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ ಸರ್ಕ್ಯೂಟ್ನ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಅನುಕರಿಸುವ ಮೂಲಕ ನೀವು ಇನ್ನೂ ವೆರಿಲಾಗ್ನೊಂದಿಗೆ ಪರಿಚಯ ಮಾಡಿಕೊಳ್ಳಬಹುದು.

ಎಫ್‌ಪಿಜಿಎ ಕಾರ್ಯಾಚರಣೆಯ ತತ್ವ

FPGA ಚಿಪ್ ಅದೇ ಕಸ್ಟಮ್ ASIC ಚಿಪ್ ಆಗಿದೆ, ಫ್ಲಿಪ್-ಫ್ಲಾಪ್‌ಗಳು, ರೆಜಿಸ್ಟರ್‌ಗಳು, ಮಲ್ಟಿಪ್ಲೆಕ್ಸರ್‌ಗಳು ಮತ್ತು ಸಾಂಪ್ರದಾಯಿಕ ಸರ್ಕ್ಯೂಟ್‌ಗಳಿಗಾಗಿ ಇತರ ಲಾಜಿಕ್ ಅಂಶಗಳನ್ನು ಜೋಡಿಸಲಾದ ಅದೇ ಟ್ರಾನ್ಸಿಸ್ಟರ್‌ಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ. ಸಹಜವಾಗಿ, ಈ ಟ್ರಾನ್ಸಿಸ್ಟರ್‌ಗಳನ್ನು ಸಂಪರ್ಕಿಸುವ ಕ್ರಮವನ್ನು ಬದಲಾಯಿಸುವುದು ಅಸಾಧ್ಯ. ಆದರೆ ವಾಸ್ತುಶಿಲ್ಪದ ಪ್ರಕಾರ, ಮೈಕ್ರೋ ಸರ್ಕ್ಯೂಟ್ ಅನ್ನು ಅಂತಹ ಬುದ್ಧಿವಂತ ರೀತಿಯಲ್ಲಿ ನಿರ್ಮಿಸಲಾಗಿದೆ, ಅದು ದೊಡ್ಡ ಬ್ಲಾಕ್ಗಳ ನಡುವೆ ಸಿಗ್ನಲ್ಗಳ ಸ್ವಿಚಿಂಗ್ ಅನ್ನು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿದೆ: ಅವುಗಳನ್ನು CLB ಗಳು ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ - ಪ್ರೊಗ್ರಾಮೆಬಲ್ ಲಾಜಿಕ್ ಬ್ಲಾಕ್ಗಳು.

CLB ನಿರ್ವಹಿಸುವ ತಾರ್ಕಿಕ ಕಾರ್ಯವನ್ನು ಬದಲಾಯಿಸಲು ಸಹ ಸಾಧ್ಯವಿದೆ. ಸಂಪೂರ್ಣ ಚಿಪ್ ಸ್ಟ್ಯಾಟಿಕ್ RAM ಕಾನ್ಫಿಗರೇಶನ್ ಮೆಮೊರಿ ಕೋಶಗಳೊಂದಿಗೆ ವ್ಯಾಪಿಸಿರುವ ಕಾರಣದಿಂದಾಗಿ ಇದನ್ನು ಸಾಧಿಸಲಾಗುತ್ತದೆ. ಈ ಮೆಮೊರಿಯ ಪ್ರತಿಯೊಂದು ಬಿಟ್ ಕೆಲವು ರೀತಿಯ ಸಿಗ್ನಲ್ ಸ್ವಿಚಿಂಗ್ ಕೀಲಿಯನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ ಅಥವಾ CLB ಕಾರ್ಯಗತಗೊಳಿಸುವ ತಾರ್ಕಿಕ ಕ್ರಿಯೆಯ ಸತ್ಯ ಕೋಷ್ಟಕದ ಭಾಗವಾಗಿದೆ.

ಸ್ಟ್ಯಾಟಿಕ್ RAM ತಂತ್ರಜ್ಞಾನವನ್ನು ಬಳಸಿಕೊಂಡು ಕಾನ್ಫಿಗರೇಶನ್ ಮೆಮೊರಿಯನ್ನು ನಿರ್ಮಿಸಲಾಗಿರುವುದರಿಂದ, ಮೊದಲನೆಯದಾಗಿ, ಎಫ್‌ಪಿಜಿಎ ಆನ್ ಮಾಡಿದಾಗ, ಚಿಪ್ ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಬೇಕು ಮತ್ತು ಎರಡನೆಯದಾಗಿ, ಚಿಪ್ ಅನ್ನು ಬಹುತೇಕ ಅನಂತ ಸಂಖ್ಯೆಯ ಬಾರಿ ಮರುಸಂರಚಿಸಬಹುದು.

ಕಾನ್ಫಿಗರೇಶನ್ ಮೆಮೊರಿ ಇಲ್ಲದೆ ಅತ್ಯಂತ ಸರಳೀಕೃತ 2D ಚಿಪ್ ರಚನೆ

CLB ಗಳು ಸ್ವಿಚ್ ಫ್ಯಾಬ್ರಿಕ್‌ನಲ್ಲಿವೆ, ಅದು CLB ಗಳ ಒಳಹರಿವು ಮತ್ತು ಔಟ್‌ಪುಟ್‌ಗಳ ನಡುವಿನ ಸಂಪರ್ಕಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ.

ಮ್ಯಾಟ್ರಿಕ್ಸ್ ರೇಖಾಚಿತ್ರವನ್ನು ಬದಲಾಯಿಸಲಾಗುತ್ತಿದೆ

ವಾಹಕಗಳ ಪ್ರತಿ ಛೇದಕದಲ್ಲಿ ಆರು ಸ್ವಿಚಿಂಗ್ ಸ್ವಿಚ್ಗಳು ತಮ್ಮದೇ ಆದ ಕಾನ್ಫಿಗರೇಶನ್ ಮೆಮೊರಿ ಕೋಶಗಳಿಂದ ನಿಯಂತ್ರಿಸಲ್ಪಡುತ್ತವೆ. ಕೆಲವನ್ನು ತೆರೆಯುವ ಮೂಲಕ ಮತ್ತು ಇತರವನ್ನು ಮುಚ್ಚುವ ಮೂಲಕ, ನೀವು CLB ಗಳ ನಡುವೆ ವಿಭಿನ್ನ ಸಿಗ್ನಲ್ ಸ್ವಿಚಿಂಗ್ ಅನ್ನು ಒದಗಿಸಬಹುದು.

CLB

CLB ಬಹಳ ಸರಳವಾಗಿ ಹಲವಾರು ವಾದಗಳಿಂದ ಬೂಲಿಯನ್ ಕಾರ್ಯವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವ ಒಂದು ಬ್ಲಾಕ್ ಅನ್ನು ಒಳಗೊಂಡಿದೆ (ಇದನ್ನು ಲುಕ್ ಅಪ್ ಟೇಬಲ್, LUT ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ) ಮತ್ತು ಪ್ರಚೋದಕ (ಫ್ಲಿಪ್-ಫ್ಲಾಪ್, FF). ಆಧುನಿಕ FPGA ಗಳಲ್ಲಿ, LUT ಆರು ಒಳಹರಿವುಗಳನ್ನು ಹೊಂದಿದೆ, ಆದರೆ ಅಂಕಿ ಸರಳತೆಗಾಗಿ ಮೂರು ತೋರಿಸುತ್ತದೆ. LUT ನ ಔಟ್‌ಪುಟ್ ಅನ್ನು CLB ಔಟ್‌ಪುಟ್‌ಗೆ ಅಸಮಕಾಲಿಕವಾಗಿ (ನೇರವಾಗಿ) ಅಥವಾ ಸಿಂಕ್ರೊನಸ್ ಆಗಿ ನೀಡಲಾಗುತ್ತದೆ (ಸಿಸ್ಟಮ್ ಗಡಿಯಾರದಲ್ಲಿ ಚಾಲನೆಯಲ್ಲಿರುವ FF ಫ್ಲಿಪ್-ಫ್ಲಾಪ್ ಮೂಲಕ).

LUT ಅನುಷ್ಠಾನದ ತತ್ವ

LUT ಅನುಷ್ಠಾನದ ತತ್ವವನ್ನು ನೋಡಲು ಆಸಕ್ತಿದಾಯಕವಾಗಿದೆ. ನಮಗೆ ಕೆಲವು ಬೂಲಿಯನ್ ಫಂಕ್ಷನ್ y = (a & b) | ~ ಸಿ . ಅದರ ಸರ್ಕ್ಯೂಟ್ ರೇಖಾಚಿತ್ರ ಮತ್ತು ಸತ್ಯ ಕೋಷ್ಟಕವನ್ನು ಚಿತ್ರದಲ್ಲಿ ತೋರಿಸಲಾಗಿದೆ. ಕಾರ್ಯವು ಮೂರು ವಾದಗಳನ್ನು ಹೊಂದಿದೆ, ಆದ್ದರಿಂದ ಇದು 2^3 = 8 ಮೌಲ್ಯಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. ಅವುಗಳಲ್ಲಿ ಪ್ರತಿಯೊಂದೂ ತನ್ನದೇ ಆದ ಇನ್ಪುಟ್ ಸಿಗ್ನಲ್ಗಳ ಸಂಯೋಜನೆಗೆ ಅನುರೂಪವಾಗಿದೆ. ಈ ಮೌಲ್ಯಗಳನ್ನು FPGA ಫರ್ಮ್‌ವೇರ್ ಡೆವಲಪ್‌ಮೆಂಟ್ ಪ್ರೋಗ್ರಾಂನಿಂದ ಲೆಕ್ಕಹಾಕಲಾಗುತ್ತದೆ ಮತ್ತು ವಿಶೇಷ ಕಾನ್ಫಿಗರೇಶನ್ ಮೆಮೊರಿ ಕೋಶಗಳಿಗೆ ಬರೆಯಲಾಗುತ್ತದೆ.

ಪ್ರತಿ ಕೋಶದ ಮೌಲ್ಯವನ್ನು ಔಟ್‌ಪುಟ್ ಮಲ್ಟಿಪ್ಲೆಕ್ಸರ್ LUT ನ ಇನ್‌ಪುಟ್‌ಗೆ ನೀಡಲಾಗುತ್ತದೆ ಮತ್ತು ಫಂಕ್ಷನ್‌ನ ಒಂದು ಅಥವಾ ಇನ್ನೊಂದು ಮೌಲ್ಯವನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಬೂಲಿಯನ್ ಫಂಕ್ಷನ್‌ನ ಇನ್‌ಪುಟ್ ಆರ್ಗ್ಯುಮೆಂಟ್‌ಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. CLB FPGA ಯ ಪ್ರಮುಖ ಹಾರ್ಡ್‌ವೇರ್ ಸಂಪನ್ಮೂಲವಾಗಿದೆ. ಆಧುನಿಕ FPGA ಚಿಪ್‌ಗಳಲ್ಲಿನ CLBಗಳ ಸಂಖ್ಯೆಯು ಬದಲಾಗಬಹುದು ಮತ್ತು ಚಿಪ್‌ನ ಪ್ರಕಾರ ಮತ್ತು ಸಾಮರ್ಥ್ಯವನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ. Xilinx ಸುಮಾರು ನಾಲ್ಕು ಸಾವಿರದಿಂದ ಮೂರು ಮಿಲಿಯನ್ ವರೆಗಿನ CLB ಎಣಿಕೆಗಳೊಂದಿಗೆ ಮರಣಹೊಂದಿದೆ.

CLB ಜೊತೆಗೆ, FPGA ಒಳಗೆ ಹಲವಾರು ಇತರ ಪ್ರಮುಖ ಹಾರ್ಡ್‌ವೇರ್ ಸಂಪನ್ಮೂಲಗಳಿವೆ. ಉದಾಹರಣೆಗೆ, ಹಾರ್ಡ್‌ವೇರ್ ಗುಣಿಸಿ-ಸಂಗ್ರಹ ಘಟಕಗಳು ಅಥವಾ DSP ಘಟಕಗಳು. ಅವುಗಳಲ್ಲಿ ಪ್ರತಿಯೊಂದೂ 18-ಬಿಟ್ ಸಂಖ್ಯೆಗಳಲ್ಲಿ ಪ್ರತಿ ಗಡಿಯಾರ ಚಕ್ರದಲ್ಲಿ ಗುಣಾಕಾರ ಮತ್ತು ಸೇರ್ಪಡೆ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಮಾಡಬಹುದು. ಟಾಪ್-ಎಂಡ್ ಸ್ಫಟಿಕಗಳಲ್ಲಿ, DSP ಬ್ಲಾಕ್‌ಗಳ ಸಂಖ್ಯೆ 6000 ಮೀರಬಹುದು.

ಮತ್ತೊಂದು ಸಂಪನ್ಮೂಲವೆಂದರೆ ಆಂತರಿಕ ಮೆಮೊರಿ ಬ್ಲಾಕ್ಗಳು ​​(ಬ್ಲಾಕ್ RAM, BRAM). ಪ್ರತಿ ಬ್ಲಾಕ್ 2 ಕೆಬಿ ಸಂಗ್ರಹಿಸಬಹುದು. ಅಂತಹ ಮೆಮೊರಿಯ ಒಟ್ಟು ಸಾಮರ್ಥ್ಯ, ಸ್ಫಟಿಕವನ್ನು ಅವಲಂಬಿಸಿ, 20 KB ನಿಂದ 20 MB ವರೆಗೆ ತಲುಪಬಹುದು. CLB ಗಳಂತೆ, BRAM ಗಳು ಮತ್ತು DSP ಬ್ಲಾಕ್‌ಗಳನ್ನು ಸ್ವಿಚ್ ಫ್ಯಾಬ್ರಿಕ್‌ನಿಂದ ಸಂಪರ್ಕಿಸಲಾಗಿದೆ ಮತ್ತು ಡೈ ಉದ್ದಕ್ಕೂ ವಿಸ್ತರಿಸಲಾಗುತ್ತದೆ. CLB, DSP ಮತ್ತು BRAM ಬ್ಲಾಕ್‌ಗಳನ್ನು ಪರಸ್ಪರ ಸಂಪರ್ಕಿಸುವ ಮೂಲಕ, ಅತ್ಯಂತ ಪರಿಣಾಮಕಾರಿ ಡೇಟಾ ಸಂಸ್ಕರಣಾ ಸರ್ಕ್ಯೂಟ್‌ಗಳನ್ನು ಪಡೆಯಬಹುದು.

FPGA ಯ ಪ್ರಯೋಜನಗಳು

1985 ರಲ್ಲಿ Xilinx ರಚಿಸಿದ ಮೊದಲ FPGA ಚಿಪ್ ಕೇವಲ 64 CLB ಗಳನ್ನು ಒಳಗೊಂಡಿತ್ತು. ಆ ಸಮಯದಲ್ಲಿ, ಚಿಪ್‌ಗಳ ಮೇಲಿನ ಟ್ರಾನ್ಸಿಸ್ಟರ್‌ಗಳ ಏಕೀಕರಣವು ಈಗಿರುವುದಕ್ಕಿಂತ ಕಡಿಮೆಯಾಗಿತ್ತು ಮತ್ತು ಡಿಜಿಟಲ್ ಸಾಧನಗಳು ಸಾಮಾನ್ಯವಾಗಿ "ಚದುರಿದ ತರ್ಕ" ಚಿಪ್‌ಗಳನ್ನು ಬಳಸುತ್ತಿದ್ದವು. ರೆಜಿಸ್ಟರ್‌ಗಳು, ಕೌಂಟರ್‌ಗಳು, ಮಲ್ಟಿಪ್ಲೆಕ್ಸರ್‌ಗಳು ಮತ್ತು ಮಲ್ಟಿಪ್ಲೈಯರ್‌ಗಳಿಗೆ ಪ್ರತ್ಯೇಕ ಮೈಕ್ರೋ ಸರ್ಕ್ಯೂಟ್‌ಗಳು ಇದ್ದವು. ನಿರ್ದಿಷ್ಟ ಸಾಧನಕ್ಕಾಗಿ ನಿರ್ದಿಷ್ಟ ಮುದ್ರಿತ ಸರ್ಕ್ಯೂಟ್ ಬೋರ್ಡ್ ಅನ್ನು ರಚಿಸಲಾಗಿದೆ, ಅದರ ಮೇಲೆ ಈ ಕಡಿಮೆ-ಸಂಯೋಜಕ ಮೈಕ್ರೋ ಸರ್ಕ್ಯೂಟ್ಗಳನ್ನು ಸ್ಥಾಪಿಸಲಾಗಿದೆ.

FPGA ಬಳಕೆಯು ಈ ವಿಧಾನವನ್ನು ತ್ಯಜಿಸಲು ಸಾಧ್ಯವಾಗಿಸಿತು. 64 CLB ಹೊಂದಿರುವ ಎಫ್‌ಪಿಜಿಎ ಸಹ ಮುದ್ರಿತ ಸರ್ಕ್ಯೂಟ್ ಬೋರ್ಡ್‌ನಲ್ಲಿ ಜಾಗವನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಉಳಿಸುತ್ತದೆ ಮತ್ತು ಮರುಸಂರಚನೆಯ ಲಭ್ಯತೆಯು ಕಾರ್ಯಾಚರಣೆಯ ಸಮಯದಲ್ಲಿ ಉತ್ಪಾದನೆಯ ನಂತರ ಸಾಧನಗಳ ಕಾರ್ಯವನ್ನು ನವೀಕರಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸಿದೆ, ಅವರು "ಕ್ಷೇತ್ರದಲ್ಲಿ" (ಆದ್ದರಿಂದ ಹೆಸರು - ಕ್ಷೇತ್ರ -ಪ್ರೋಗ್ರಾಮೆಬಲ್ ಗೇಟ್ ಅರೇ).

ಯಾವುದೇ ಹಾರ್ಡ್‌ವೇರ್ ಡಿಜಿಟಲ್ ಸರ್ಕ್ಯೂಟ್ ಅನ್ನು ಎಫ್‌ಪಿಜಿಎ ಒಳಗೆ ರಚಿಸಬಹುದು (ಮುಖ್ಯ ವಿಷಯವೆಂದರೆ ಸಾಕಷ್ಟು ಸಂಪನ್ಮೂಲಗಳಿವೆ), ಎಫ್‌ಪಿಜಿಎಗಳ ಪ್ರಮುಖ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ ಎಎಸ್‌ಐಸಿ ಚಿಪ್‌ಗಳನ್ನು ಮೂಲಮಾದರಿ ಮಾಡುವುದು.

ASIC ಅಭಿವೃದ್ಧಿಯು ತುಂಬಾ ಸಂಕೀರ್ಣವಾಗಿದೆ ಮತ್ತು ದುಬಾರಿಯಾಗಿದೆ, ದೋಷದ ವೆಚ್ಚವು ತುಂಬಾ ಹೆಚ್ಚಾಗಿದೆ ಮತ್ತು ತರ್ಕ ಪರೀಕ್ಷೆಯ ವಿಷಯವು ನಿರ್ಣಾಯಕವಾಗಿದೆ. ಆದ್ದರಿಂದ, ಸರ್ಕ್ಯೂಟ್ನ ಭೌತಿಕ ಟೋಪೋಲಜಿಯ ಕೆಲಸವನ್ನು ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು ಅಭಿವೃದ್ಧಿಯ ಹಂತಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ, ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ FPGA ಚಿಪ್ಗಳಲ್ಲಿ ಅದರ ಮೂಲಮಾದರಿಯಾಗಿದೆ.

ASIC ಅಭಿವೃದ್ಧಿಗಾಗಿ, ಪರಸ್ಪರ ಸಂಪರ್ಕ ಹೊಂದಿದ ಅನೇಕ FPGA ಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ವಿಶೇಷ ಬೋರ್ಡ್‌ಗಳನ್ನು ಉತ್ಪಾದಿಸಲಾಗುತ್ತದೆ. ಮೂಲಮಾದರಿಯ ಮೈಕ್ರೊ ಸರ್ಕ್ಯೂಟ್ ಗಮನಾರ್ಹವಾಗಿ ಕಡಿಮೆ ಆವರ್ತನಗಳಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ (ಬಹುಶಃ ಹತ್ತಾರು ಮೆಗಾಹರ್ಟ್ಜ್), ಆದರೆ ಸಮಸ್ಯೆಗಳು ಮತ್ತು ದೋಷಗಳನ್ನು ಗುರುತಿಸುವಲ್ಲಿ ಉಳಿತಾಯವನ್ನು ಅನುಮತಿಸುತ್ತದೆ.

ಆದಾಗ್ಯೂ, ನನ್ನ ಅಭಿಪ್ರಾಯದಲ್ಲಿ, FPGA ಗಳ ಹೆಚ್ಚು ಆಸಕ್ತಿದಾಯಕ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿವೆ. FPGA ಯ ಹೊಂದಿಕೊಳ್ಳುವ ರಚನೆಯು ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಬದಲಾಯಿಸುವ ಸಾಮರ್ಥ್ಯದೊಂದಿಗೆ ಹೆಚ್ಚಿನ ವೇಗ ಮತ್ತು ಸಮಾನಾಂತರ ಡೇಟಾ ಸಂಸ್ಕರಣೆಗಾಗಿ ಹಾರ್ಡ್‌ವೇರ್ ಸರ್ಕ್ಯೂಟ್‌ಗಳ ಅನುಷ್ಠಾನವನ್ನು ಅನುಮತಿಸುತ್ತದೆ.


ಹಾರ್ಡ್‌ವೇರ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳ ಹೋಲಿಕೆ

CPU, GPU, FPGA ಮತ್ತು ASIC ಮೂಲಭೂತವಾಗಿ ಹೇಗೆ ಭಿನ್ನವಾಗಿವೆ ಎಂಬುದರ ಕುರಿತು ಯೋಚಿಸೋಣ. ಸಿಪಿಯು ಸಾರ್ವತ್ರಿಕವಾಗಿದೆ, ನೀವು ಅದರ ಮೇಲೆ ಯಾವುದೇ ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಚಲಾಯಿಸಬಹುದು, ಇದು ಅತ್ಯಂತ ಮೃದುವಾಗಿರುತ್ತದೆ ಮತ್ತು ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳು ಮತ್ತು ಅಭಿವೃದ್ಧಿ ಪರಿಸರಗಳಿಗೆ ಧನ್ಯವಾದಗಳು ಬಳಸಲು ಸುಲಭವಾಗಿದೆ.

ಅದೇ ಸಮಯದಲ್ಲಿ, CPU ಸೂಚನೆಗಳ ಬಹುಮುಖತೆ ಮತ್ತು ಅನುಕ್ರಮ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯಿಂದಾಗಿ, ಕಾರ್ಯಕ್ಷಮತೆ ಕಡಿಮೆಯಾಗುತ್ತದೆ ಮತ್ತು ಸರ್ಕ್ಯೂಟ್ನ ವಿದ್ಯುತ್ ಬಳಕೆ ಹೆಚ್ಚಾಗುತ್ತದೆ. ಇದು ಸಂಭವಿಸುತ್ತದೆ ಏಕೆಂದರೆ ಪ್ರತಿಯೊಂದು ಉಪಯುಕ್ತವಾದ ಅಂಕಗಣಿತದ ಕಾರ್ಯಾಚರಣೆಗೆ, CPU ಸೂಚನೆಗಳನ್ನು ಓದುವುದಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಅನೇಕ ಹೆಚ್ಚುವರಿ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ, ರೆಜಿಸ್ಟರ್‌ಗಳು ಮತ್ತು ಸಂಗ್ರಹದ ನಡುವೆ ಡೇಟಾವನ್ನು ಚಲಿಸುತ್ತದೆ ಮತ್ತು ಇತರ ಚಲನೆಗಳು.

ಇನ್ನೊಂದು ಬದಿಯಲ್ಲಿ ASIC ಇದೆ. ಈ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ನಲ್ಲಿ, ಟ್ರಾನ್ಸಿಸ್ಟರ್‌ಗಳನ್ನು ನೇರವಾಗಿ ಸಂಪರ್ಕಿಸುವ ಮೂಲಕ ಅಗತ್ಯವಿರುವ ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಹಾರ್ಡ್‌ವೇರ್‌ನಲ್ಲಿ ಅಳವಡಿಸಲಾಗಿದೆ; ಎಲ್ಲಾ ಕಾರ್ಯಾಚರಣೆಗಳು ಅಲ್ಗಾರಿದಮ್‌ನ ಮರಣದಂಡನೆಗೆ ಮಾತ್ರ ಸಂಬಂಧಿಸಿವೆ ಮತ್ತು ಅದನ್ನು ಬದಲಾಯಿಸಲು ಯಾವುದೇ ಮಾರ್ಗವಿಲ್ಲ. ಆದ್ದರಿಂದ ವೇದಿಕೆಯ ಗರಿಷ್ಠ ಕಾರ್ಯಕ್ಷಮತೆ ಮತ್ತು ಕಡಿಮೆ ವಿದ್ಯುತ್ ಬಳಕೆ. ಆದರೆ ASIC ಅನ್ನು ರಿಪ್ರೊಗ್ರಾಮ್ ಮಾಡುವುದು ಅಸಾಧ್ಯ.

CPU ನ ಬಲಭಾಗದಲ್ಲಿ GPU ಇದೆ. ಈ ಚಿಪ್‌ಗಳನ್ನು ಮೂಲತಃ ಗ್ರಾಫಿಕ್ಸ್ ಸಂಸ್ಕರಣೆಗಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿತ್ತು, ಆದರೆ ಈಗ ಸಾಮಾನ್ಯ ಉದ್ದೇಶದ ಕಂಪ್ಯೂಟಿಂಗ್ ಗಣಿಗಾರಿಕೆಗೆ ಸಹ ಬಳಸಲಾಗುತ್ತದೆ. ಅವು ಸಾವಿರಾರು ಸಣ್ಣ ಕಂಪ್ಯೂಟಿಂಗ್ ಕೋರ್‌ಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತವೆ ಮತ್ತು ಡೇಟಾದ ಒಂದು ಶ್ರೇಣಿಯಲ್ಲಿ ಸಮಾನಾಂತರ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತವೆ.

ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಸಮಾನಾಂತರಗೊಳಿಸಬಹುದಾದರೆ, CPU ಗೆ ಹೋಲಿಸಿದರೆ GPU ಗಮನಾರ್ಹ ವೇಗವರ್ಧನೆಯನ್ನು ಸಾಧಿಸಬಹುದು. ಮತ್ತೊಂದೆಡೆ, ಅನುಕ್ರಮ ಅಲ್ಗಾರಿದಮ್‌ಗಳನ್ನು ಕೆಟ್ಟದಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ, ಆದ್ದರಿಂದ ವೇದಿಕೆಯು CPU ಗಿಂತ ಕಡಿಮೆ ಹೊಂದಿಕೊಳ್ಳುತ್ತದೆ. ಅಲ್ಲದೆ, GPU ಗಾಗಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ನೀವು ವಿಶೇಷ ಕೌಶಲ್ಯಗಳನ್ನು ಹೊಂದಿರಬೇಕು, OpenCL ಅಥವಾ CUDA ತಿಳಿದಿರಬೇಕು.

ಅಂತಿಮವಾಗಿ, FPGA. ಈ ವೇದಿಕೆಯು ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಬದಲಾಯಿಸುವ ಸಾಮರ್ಥ್ಯದೊಂದಿಗೆ ASIC ಗಳ ದಕ್ಷತೆಯನ್ನು ಸಂಯೋಜಿಸುತ್ತದೆ. ಎಫ್‌ಪಿಜಿಎಗಳು ಸಾರ್ವತ್ರಿಕವಾಗಿಲ್ಲ, ಆದರೆ ಸಿಪಿಯು ಅಥವಾ ಜಿಪಿಯುಗಿಂತ ಉತ್ತಮ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ತೋರಿಸುವ ಅಲ್ಗಾರಿದಮ್‌ಗಳು ಮತ್ತು ಕಾರ್ಯಗಳ ವರ್ಗವಿದೆ. ಎಫ್‌ಪಿಜಿಎಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ಸಂಕೀರ್ಣತೆ ಹೆಚ್ಚಿದೆ, ಆದರೆ ಹೊಸ ಅಭಿವೃದ್ಧಿ ಸಾಧನಗಳು ಈ ಅಂತರವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತಿವೆ.

FPGA ಗಳ ನಿರ್ಣಾಯಕ ಪ್ರಯೋಜನವೆಂದರೆ ಕನಿಷ್ಠ ಪ್ರತಿಕ್ರಿಯೆ ವಿಳಂಬದೊಂದಿಗೆ ಡೇಟಾವನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವ ಸಾಮರ್ಥ್ಯ. ಉದಾಹರಣೆಯಾಗಿ, ನೀವು ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಪೋರ್ಟ್‌ಗಳೊಂದಿಗೆ ಸ್ಮಾರ್ಟ್ ನೆಟ್‌ವರ್ಕ್ ರೂಟರ್ ಅನ್ನು ಕಲ್ಪಿಸಿಕೊಳ್ಳಬಹುದು: ಈಥರ್ನೆಟ್ ಪ್ಯಾಕೆಟ್ ಅದರ ಪೋರ್ಟ್‌ಗಳಲ್ಲಿ ಒಂದಕ್ಕೆ ಬಂದಾಗ, ಔಟ್‌ಪುಟ್ ಪೋರ್ಟ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡುವ ಮೊದಲು ಹಲವು ನಿಯಮಗಳನ್ನು ಪರಿಶೀಲಿಸಬೇಕು. ನೀವು ಪ್ಯಾಕೇಜ್‌ನಲ್ಲಿ ಕೆಲವು ಕ್ಷೇತ್ರಗಳನ್ನು ಬದಲಾಯಿಸಬೇಕಾಗಬಹುದು ಅಥವಾ ಹೊಸದನ್ನು ಸೇರಿಸಬೇಕಾಗಬಹುದು.

FPGA ಅನ್ನು ಬಳಸುವುದರಿಂದ ಈ ಸಮಸ್ಯೆಯನ್ನು ತಕ್ಷಣವೇ ಪರಿಹರಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ: ಪ್ಯಾಕೆಟ್‌ನ ಬೈಟ್‌ಗಳು ನೆಟ್‌ವರ್ಕ್ ಇಂಟರ್ಫೇಸ್‌ನಿಂದ ಚಿಪ್‌ನಲ್ಲಿ ಬರಲು ಪ್ರಾರಂಭಿಸಿವೆ ಮತ್ತು ಅದರ ಹೆಡರ್ ಅನ್ನು ಈಗಾಗಲೇ ವಿಶ್ಲೇಷಿಸಲಾಗುತ್ತಿದೆ. ಇಲ್ಲಿ ಪ್ರೊಸೆಸರ್ಗಳ ಬಳಕೆಯು ನೆಟ್ವರ್ಕ್ ಟ್ರಾಫಿಕ್ ಅನ್ನು ಸಂಸ್ಕರಿಸುವ ವೇಗವನ್ನು ಗಣನೀಯವಾಗಿ ನಿಧಾನಗೊಳಿಸುತ್ತದೆ. ರೂಟರ್‌ಗಳು ಕಸ್ಟಮ್ ASIC ಅನ್ನು ಹೊಂದಬಹುದು ಎಂಬುದು ಸ್ಪಷ್ಟವಾಗಿದೆ, ಅದು ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಆದರೆ ಪ್ಯಾಕೆಟ್‌ಗಳನ್ನು ಸಂಸ್ಕರಿಸುವ ನಿಯಮಗಳು ಬದಲಾಗಬೇಕಾದರೆ ಏನು ಮಾಡಬೇಕು? FPGAಗಳು ಮಾತ್ರ ಹೆಚ್ಚಿನ ಕಾರ್ಯಕ್ಷಮತೆಯೊಂದಿಗೆ ಅಗತ್ಯವಾದ ನಮ್ಯತೆಯನ್ನು ಸಾಧಿಸಬಹುದು.

ಹೀಗಾಗಿ, ಹೆಚ್ಚಿನ ಡೇಟಾ ಸಂಸ್ಕರಣಾ ಕಾರ್ಯಕ್ಷಮತೆ, ಕಡಿಮೆ ಪ್ರತಿಕ್ರಿಯೆ ಸಮಯ ಮತ್ತು ಕಡಿಮೆ ವಿದ್ಯುತ್ ಬಳಕೆಯ ಅಗತ್ಯವಿರುವಲ್ಲಿ FPGA ಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.

ಮೋಡದಲ್ಲಿ FPGA

ಕ್ಲೌಡ್ ಕಂಪ್ಯೂಟಿಂಗ್‌ನಲ್ಲಿ, ಎಫ್‌ಪಿಜಿಎಗಳನ್ನು ವೇಗದ ಲೆಕ್ಕಾಚಾರಗಳು, ನೆಟ್‌ವರ್ಕ್ ದಟ್ಟಣೆಯ ವೇಗವರ್ಧನೆ ಮತ್ತು ಡೇಟಾ ಅರೇಗಳಿಗೆ ಪ್ರವೇಶಕ್ಕಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ. ವಿನಿಮಯ ಕೇಂದ್ರಗಳಲ್ಲಿ ಹೆಚ್ಚಿನ ಆವರ್ತನ ವ್ಯಾಪಾರಕ್ಕಾಗಿ FPGA ಗಳ ಬಳಕೆಯನ್ನು ಸಹ ಇದು ಒಳಗೊಂಡಿದೆ. PCI ಎಕ್ಸ್‌ಪ್ರೆಸ್‌ನೊಂದಿಗೆ FPGA ಬೋರ್ಡ್‌ಗಳು ಮತ್ತು ಇಂಟೆಲ್ (ಆಲ್ಟೆರಾ) ಅಥವಾ Xilinx ತಯಾರಿಸಿದ ಆಪ್ಟಿಕಲ್ ನೆಟ್‌ವರ್ಕ್ ಇಂಟರ್‌ಫೇಸ್ ಅನ್ನು ಸರ್ವರ್‌ಗಳಲ್ಲಿ ಸೇರಿಸಲಾಗುತ್ತದೆ.

ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕ್ ಅಲ್ಗಾರಿದಮ್‌ಗಳು, ಡಿಎನ್‌ಎ ಅನುಕ್ರಮ ಹೋಲಿಕೆ ಮತ್ತು ಆಣ್ವಿಕ ಡೈನಾಮಿಕ್ಸ್‌ನಂತಹ ವೈಜ್ಞಾನಿಕ ಕಾರ್ಯಗಳಿಗೆ ಎಫ್‌ಪಿಜಿಎಗಳು ಉತ್ತಮವಾಗಿವೆ. ಮೈಕ್ರೋಸಾಫ್ಟ್ Bing ಹುಡುಕಾಟ ಸೇವೆಯನ್ನು ವೇಗಗೊಳಿಸಲು FPGA ಗಳನ್ನು ದೀರ್ಘಕಾಲ ಬಳಸಿದೆ, ಜೊತೆಗೆ Azure ಕ್ಲೌಡ್‌ನಲ್ಲಿ ಸಾಫ್ಟ್‌ವೇರ್ ಡಿಫೈನ್ಡ್ ನೆಟ್‌ವರ್ಕಿಂಗ್ ಅನ್ನು ಸಂಘಟಿಸಲು ಬಳಸಿದೆ.

ಯಂತ್ರ ಕಲಿಕೆಯ ಉತ್ಕರ್ಷವು FPGA ಗಳನ್ನು ಸಹ ಉಳಿಸಿಲ್ಲ. Xilinx ಮತ್ತು Intel ಆಳವಾದ ನರಮಂಡಲದೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು FPGA-ಆಧಾರಿತ ಸಾಧನಗಳನ್ನು ನೀಡುತ್ತವೆ. Caffe ಮತ್ತು TensorFlow ನಂತಹ ಫ್ರೇಮ್‌ವರ್ಕ್‌ಗಳಿಂದ ನೇರವಾಗಿ ನಿರ್ದಿಷ್ಟ ನೆಟ್‌ವರ್ಕ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ FPGA ಫರ್ಮ್‌ವೇರ್ ಅನ್ನು ಪಡೆಯಲು ಅವು ನಿಮಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಡುತ್ತವೆ.

ಇದಲ್ಲದೆ, ನಿಮ್ಮ ಮನೆಯಿಂದ ಹೊರಹೋಗದೆ ಮತ್ತು ಕ್ಲೌಡ್ ಸೇವೆಗಳನ್ನು ಬಳಸದೆಯೇ ನೀವು ಎಲ್ಲವನ್ನೂ ಪ್ರಯತ್ನಿಸಬಹುದು. ಉದಾಹರಣೆಗೆ, Amazon ನಿಂದ ನೀವು FPGA ಬೋರ್ಡ್ ಮತ್ತು ಯಂತ್ರ ಕಲಿಕೆ ಸೇರಿದಂತೆ ಯಾವುದೇ ಅಭಿವೃದ್ಧಿ ಸಾಧನಗಳಿಗೆ ಪ್ರವೇಶದೊಂದಿಗೆ ವರ್ಚುವಲ್ ಯಂತ್ರವನ್ನು ಬಾಡಿಗೆಗೆ ಪಡೆಯಬಹುದು.

ಅಂಚಿನಲ್ಲಿ FPGA

FPGA ಗಳು ಬೇರೆ ಯಾವ ಆಸಕ್ತಿದಾಯಕ ವಿಷಯಗಳನ್ನು ಮಾಡುತ್ತವೆ? ಅವರು ಏಕೆ ಏನನ್ನೂ ಮಾಡುವುದಿಲ್ಲ! ರೊಬೊಟಿಕ್ಸ್, ಸ್ವಯಂ ಚಾಲಿತ ಕಾರುಗಳು, ಡ್ರೋನ್‌ಗಳು, ವೈಜ್ಞಾನಿಕ ಉಪಕರಣಗಳು, ವೈದ್ಯಕೀಯ ಉಪಕರಣಗಳು, ಗ್ರಾಹಕ ಮೊಬೈಲ್ ಸಾಧನಗಳು, ಸ್ಮಾರ್ಟ್ ಸಿಸಿಟಿವಿ ಕ್ಯಾಮೆರಾಗಳು ಇತ್ಯಾದಿ.

ಸಾಂಪ್ರದಾಯಿಕವಾಗಿ, FPGA ಗಳನ್ನು ರೇಡಾರ್ ಸಾಧನಗಳು, ರೇಡಿಯೋ ಟ್ರಾನ್ಸ್‌ಸಿವರ್‌ಗಳಲ್ಲಿ ಏಕ-ಆಯಾಮದ ಸಂಕೇತಗಳ (ಮತ್ತು DSP ಪ್ರೊಸೆಸರ್‌ಗಳೊಂದಿಗೆ ಸ್ಪರ್ಧಿಸುವ) ಡಿಜಿಟಲ್ ಪ್ರಕ್ರಿಯೆಗೆ ಬಳಸಲಾಗುತ್ತಿತ್ತು. ಹೆಚ್ಚುತ್ತಿರುವ ಚಿಪ್ ಏಕೀಕರಣ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯೊಂದಿಗೆ, ಎಫ್‌ಪಿಜಿಎ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳು ಹೆಚ್ಚಿನ ಕಾರ್ಯಕ್ಷಮತೆಯ ಕಂಪ್ಯೂಟಿಂಗ್‌ಗಾಗಿ ಹೆಚ್ಚಾಗಿ ಬಳಸಲ್ಪಡುತ್ತವೆ, ಉದಾಹರಣೆಗೆ ಕ್ಲೌಡ್‌ನ ಅಂಚಿನಲ್ಲಿರುವ 2 ಡಿ ಸಿಗ್ನಲ್ ಪ್ರೊಸೆಸಿಂಗ್.

ಪರವಾನಗಿ ಪ್ಲೇಟ್ ಗುರುತಿಸುವಿಕೆಯೊಂದಿಗೆ ಟ್ರಾಫಿಕ್ ಕ್ಯಾಮೆರಾವನ್ನು ಉದಾಹರಣೆಯಾಗಿ ಬಳಸಿಕೊಂಡು ಈ ಪರಿಕಲ್ಪನೆಯನ್ನು ಸುಲಭವಾಗಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬಹುದು. ನೀವು ಈಥರ್ನೆಟ್ ಮೂಲಕ ವೀಡಿಯೊವನ್ನು ರವಾನಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಹೊಂದಿರುವ ಕ್ಯಾಮರಾವನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು ಮತ್ತು ರಿಮೋಟ್ ಸರ್ವರ್ನಲ್ಲಿ ಸ್ಟ್ರೀಮ್ ಅನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಬಹುದು. ಕ್ಯಾಮೆರಾಗಳ ಸಂಖ್ಯೆ ಹೆಚ್ಚಾದಂತೆ, ನೆಟ್ವರ್ಕ್ನಲ್ಲಿನ ಲೋಡ್ ಕೂಡ ಹೆಚ್ಚಾಗುತ್ತದೆ, ಇದು ಸಿಸ್ಟಮ್ ವೈಫಲ್ಯಗಳಿಗೆ ಕಾರಣವಾಗಬಹುದು.

ಬದಲಿಗೆ, ವೀಡಿಯೊ ಕ್ಯಾಮೆರಾ ದೇಹದಲ್ಲಿ ನೇರವಾಗಿ ಸ್ಥಾಪಿಸಲಾದ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ಪರವಾನಗಿ ಪ್ಲೇಟ್ ಗುರುತಿಸುವಿಕೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವುದು ಮತ್ತು ಪರವಾನಗಿ ಪ್ಲೇಟ್ ಸಂಖ್ಯೆಗಳನ್ನು ಪಠ್ಯ ಸ್ವರೂಪದಲ್ಲಿ ಕ್ಲೌಡ್‌ಗೆ ರವಾನಿಸುವುದು ಉತ್ತಮ. ಇದನ್ನು ಮಾಡಲು, ನೀವು ಬ್ಯಾಟರಿಯೊಂದಿಗೆ ಮಾಡಲು ಕಡಿಮೆ ವಿದ್ಯುತ್ ಬಳಕೆಯೊಂದಿಗೆ ತುಲನಾತ್ಮಕವಾಗಿ ಅಗ್ಗದ ಎಫ್‌ಪಿಜಿಎಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು. ಅದೇ ಸಮಯದಲ್ಲಿ, FPGA ಯ ಕಾರ್ಯಾಚರಣಾ ತರ್ಕವನ್ನು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿದೆ, ಉದಾಹರಣೆಗೆ, ಪರವಾನಗಿ ಪ್ಲೇಟ್ ಮಾನದಂಡವನ್ನು ಬದಲಾಯಿಸುವಾಗ.

ರೊಬೊಟಿಕ್ಸ್ ಮತ್ತು ಡ್ರೋನ್‌ಗಳಿಗೆ ಸಂಬಂಧಿಸಿದಂತೆ, ಈ ಪ್ರದೇಶದಲ್ಲಿ ಎರಡು ಷರತ್ತುಗಳನ್ನು ಪೂರೈಸುವುದು ಮುಖ್ಯವಾಗಿದೆ - ಹೆಚ್ಚಿನ ಕಾರ್ಯಕ್ಷಮತೆ ಮತ್ತು ಕಡಿಮೆ ಶಕ್ತಿಯ ಬಳಕೆ. FPGA ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಸೂಕ್ತವಾಗಿದೆ ಮತ್ತು ನಿರ್ದಿಷ್ಟವಾಗಿ, ಡ್ರೋನ್‌ಗಳಿಗಾಗಿ ಫ್ಲೈಟ್ ಕಂಟ್ರೋಲರ್‌ಗಳನ್ನು ರಚಿಸಲು ಬಳಸಬಹುದು. ಅವರು ಈಗಾಗಲೇ ಹಾರಾಡುತ್ತ ನಿರ್ಧಾರಗಳನ್ನು ಮಾಡಬಹುದಾದ UAV ಗಳನ್ನು ತಯಾರಿಸುತ್ತಿದ್ದಾರೆ.

FPGA ನಲ್ಲಿ ಪ್ರಾಜೆಕ್ಟ್ ಅಭಿವೃದ್ಧಿ

ವಿನ್ಯಾಸದ ವಿವಿಧ ಹಂತಗಳಿವೆ: ಕಡಿಮೆ, ಬ್ಲಾಕ್ ಮತ್ತು ಹೆಚ್ಚಿನ. ಕಡಿಮೆ ಮಟ್ಟವು ವೆರಿಲಾಗ್ ಅಥವಾ ವಿಎಚ್‌ಡಿಎಲ್‌ನಂತಹ ಭಾಷೆಗಳನ್ನು ಬಳಸುವುದನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ, ಇದರಲ್ಲಿ ನೀವು ರಿಜಿಸ್ಟರ್ ವರ್ಗಾವಣೆ ಮಟ್ಟದಲ್ಲಿ (ಆರ್‌ಟಿಎಲ್) ಅಭಿವೃದ್ಧಿಯನ್ನು ನಿಯಂತ್ರಿಸುತ್ತೀರಿ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ನೀವು ಪ್ರೊಸೆಸರ್‌ನಲ್ಲಿರುವಂತೆ ರೆಜಿಸ್ಟರ್‌ಗಳನ್ನು ರೂಪಿಸುತ್ತೀರಿ ಮತ್ತು ಅವುಗಳ ನಡುವೆ ಡೇಟಾವನ್ನು ಬದಲಾಯಿಸುವ ತಾರ್ಕಿಕ ಕಾರ್ಯಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತೀರಿ.

FPGA ಸರ್ಕ್ಯೂಟ್‌ಗಳು ಯಾವಾಗಲೂ ನಿರ್ದಿಷ್ಟ ಗಡಿಯಾರದ ವೇಗದಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ (ಸಾಮಾನ್ಯವಾಗಿ 100-300 MHz), ಮತ್ತು RTL ಮಟ್ಟದಲ್ಲಿ ನೀವು ಸರ್ಕ್ಯೂಟ್‌ನ ನಡವಳಿಕೆಯನ್ನು ಸಿಸ್ಟಮ್ ಗಡಿಯಾರದ ಆವರ್ತನಕ್ಕೆ ವ್ಯಾಖ್ಯಾನಿಸುತ್ತೀರಿ. ಈ ಶ್ರಮದಾಯಕ ಕೆಲಸವು ಕಾರ್ಯಕ್ಷಮತೆ, ಎಫ್‌ಪಿಜಿಎ ಡೈ ಸಂಪನ್ಮೂಲ ಬಳಕೆ ಮತ್ತು ವಿದ್ಯುತ್ ಬಳಕೆಗೆ ಸಂಬಂಧಿಸಿದಂತೆ ಸಾಧ್ಯವಾದಷ್ಟು ಪರಿಣಾಮಕಾರಿಯಾದ ವಿನ್ಯಾಸಗಳಿಗೆ ಕಾರಣವಾಗುತ್ತದೆ. ಆದರೆ ಇದಕ್ಕೆ ಸರ್ಕ್ಯೂಟ್ ವಿನ್ಯಾಸದಲ್ಲಿ ಗಂಭೀರ ಕೌಶಲ್ಯಗಳು ಬೇಕಾಗುತ್ತವೆ, ಮತ್ತು ಅವರೊಂದಿಗೆ ಸಹ ಪ್ರಕ್ರಿಯೆಯು ನಿಧಾನವಾಗಿರುತ್ತದೆ.

ಬ್ಲಾಕ್ ಮಟ್ಟದಲ್ಲಿ, ನಿಮಗೆ ಅಗತ್ಯವಿರುವ ಸಿಸ್ಟಮ್-ಆನ್-ಚಿಪ್ ಕಾರ್ಯವನ್ನು ಪಡೆಯಲು ಕೆಲವು ಕಾರ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸುವ ಸಿದ್ಧ-ತಯಾರಿಸಿದ ದೊಡ್ಡ ಬ್ಲಾಕ್ಗಳನ್ನು ಸಂಪರ್ಕಿಸುವಲ್ಲಿ ನೀವು ಮುಖ್ಯವಾಗಿ ತೊಡಗಿಸಿಕೊಂಡಿದ್ದೀರಿ.

ಉನ್ನತ ಮಟ್ಟದ ವಿನ್ಯಾಸದಲ್ಲಿ, ನೀವು ಇನ್ನು ಮುಂದೆ ಪ್ರತಿ ಗಡಿಯಾರ ಚಕ್ರದಲ್ಲಿ ಡೇಟಾವನ್ನು ನಿಯಂತ್ರಿಸುವುದಿಲ್ಲ, ಬದಲಿಗೆ ಅಲ್ಗಾರಿದಮ್ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸಿ. C ಮತ್ತು C++ ನಿಂದ RTL ಮಟ್ಟಕ್ಕೆ ಕಂಪೈಲರ್‌ಗಳು ಅಥವಾ ಅನುವಾದಕರು ಇದ್ದಾರೆ, ಉದಾಹರಣೆಗೆ Vivado HLS. ಇದು ಸಾಕಷ್ಟು ಸ್ಮಾರ್ಟ್ ಆಗಿದೆ ಮತ್ತು ಹಾರ್ಡ್‌ವೇರ್ ಮಟ್ಟಕ್ಕೆ ವ್ಯಾಪಕ ವರ್ಗದ ಅಲ್ಗಾರಿದಮ್‌ಗಳನ್ನು ಭಾಷಾಂತರಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.

ಆರ್‌ಟಿಎಲ್ ಭಾಷೆಗಳ ಮೇಲಿನ ಈ ವಿಧಾನದ ಮುಖ್ಯ ಪ್ರಯೋಜನವೆಂದರೆ ಅಭಿವೃದ್ಧಿಯ ವೇಗವರ್ಧನೆ ಮತ್ತು ವಿಶೇಷವಾಗಿ ಅಲ್ಗಾರಿದಮ್‌ನ ಪರೀಕ್ಷೆ: ಸಿ ++ ಕೋಡ್ ಅನ್ನು ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ಚಲಾಯಿಸಬಹುದು ಮತ್ತು ಪರಿಶೀಲಿಸಬಹುದು ಮತ್ತು ಇದು ಆರ್‌ಟಿಎಲ್ ಮಟ್ಟದಲ್ಲಿ ಅಲ್ಗಾರಿದಮ್ ಬದಲಾವಣೆಗಳನ್ನು ಪರೀಕ್ಷಿಸುವುದಕ್ಕಿಂತ ಹೆಚ್ಚು ವೇಗವಾಗಿರುತ್ತದೆ. ಸಹಜವಾಗಿ, ನೀವು ಅನುಕೂಲಕ್ಕಾಗಿ ಪಾವತಿಸಬೇಕಾಗುತ್ತದೆ - ಯೋಜನೆಯು ವೇಗವಾಗಿರುವುದಿಲ್ಲ ಮತ್ತು ಹೆಚ್ಚಿನ ಹಾರ್ಡ್‌ವೇರ್ ಸಂಪನ್ಮೂಲಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ.

ಸಾಮಾನ್ಯವಾಗಿ ನಾವು ಈ ಬೆಲೆಯನ್ನು ಪಾವತಿಸಲು ಸಿದ್ಧರಿದ್ದೇವೆ: ನಾವು ಅನುವಾದಕವನ್ನು ಸರಿಯಾಗಿ ಬಳಸಿದರೆ, ನಂತರ ದಕ್ಷತೆಯು ಹೆಚ್ಚು ಹಾನಿಯಾಗುವುದಿಲ್ಲ ಮತ್ತು ಆಧುನಿಕ FPGA ಗಳು ಸಾಕಷ್ಟು ಸಂಪನ್ಮೂಲಗಳನ್ನು ಹೊಂದಿವೆ. ಮಾರುಕಟ್ಟೆ ಸೂಚಕಕ್ಕೆ ನಿರ್ಣಾಯಕ ಸಮಯವನ್ನು ಹೊಂದಿರುವ ನಮ್ಮ ಜಗತ್ತಿನಲ್ಲಿ, ಇದು ಸಮರ್ಥನೆಯಾಗಿದೆ.

ಆಗಾಗ್ಗೆ ನೀವು ಎಲ್ಲಾ ಮೂರು ಅಭಿವೃದ್ಧಿ ಶೈಲಿಗಳನ್ನು ಒಂದೇ ವಿನ್ಯಾಸದಲ್ಲಿ ಸಂಯೋಜಿಸಬೇಕಾಗುತ್ತದೆ. ನಾವು ರೋಬೋಟ್ ಆಗಿ ನಿರ್ಮಿಸಬಹುದಾದ ಮತ್ತು ವೀಡಿಯೊ ಸ್ಟ್ರೀಮ್‌ನಲ್ಲಿ ವಸ್ತುಗಳನ್ನು ಗುರುತಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ನೀಡುವ ಸಾಧನವನ್ನು ನಾವು ಮಾಡಬೇಕಾಗಿದೆ ಎಂದು ಹೇಳೋಣ - ಉದಾಹರಣೆಗೆ, ರಸ್ತೆ ಚಿಹ್ನೆಗಳು. ನಾವು ವೀಡಿಯೊ ಸಂವೇದಕ ಚಿಪ್ ಅನ್ನು ತೆಗೆದುಕೊಳ್ಳೋಣ ಮತ್ತು ಅದನ್ನು ನೇರವಾಗಿ FPGA ಗೆ ಸಂಪರ್ಕಿಸೋಣ. ಡೀಬಗ್ ಮಾಡಲು ನಾವು HDMI ಮಾನಿಟರ್ ಅನ್ನು ಬಳಸಬಹುದು, ಇದನ್ನು FPGA ಗೆ ಸಹ ಸಂಪರ್ಕಿಸಬಹುದು.

ಸಂವೇದಕ ತಯಾರಕರಿಂದ ಸ್ಪಷ್ಟವಾಗಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ (USB ಇಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವುದಿಲ್ಲ), ಸಂಸ್ಕರಿಸಿದ ಮತ್ತು ಮಾನಿಟರ್‌ನಲ್ಲಿ ಪ್ರದರ್ಶಿಸಲಾದ ಇಂಟರ್ಫೇಸ್ ಮೂಲಕ ಕ್ಯಾಮೆರಾದಿಂದ ಫ್ರೇಮ್‌ಗಳನ್ನು FPGA ಗೆ ರವಾನಿಸಲಾಗುತ್ತದೆ. ಫ್ರೇಮ್‌ಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು, ನಿಮಗೆ ಫ್ರೇಮ್‌ಬಫರ್ ಅಗತ್ಯವಿರುತ್ತದೆ, ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಎಫ್‌ಪಿಜಿಎ ಚಿಪ್‌ನ ಪಕ್ಕದಲ್ಲಿರುವ ಮುದ್ರಿತ ಸರ್ಕ್ಯೂಟ್ ಬೋರ್ಡ್‌ನಲ್ಲಿ ಸ್ಥಾಪಿಸಲಾದ ಬಾಹ್ಯ ಡಿಡಿಆರ್ ಮೆಮೊರಿಯಲ್ಲಿದೆ.


FPGA ವಿನ್ಯಾಸದ ವಿಶಿಷ್ಟ ಬ್ಲಾಕ್ ರೇಖಾಚಿತ್ರ

ವೀಡಿಯೊ ಸಂವೇದಕ ತಯಾರಕರು ನಮ್ಮ ಎಫ್‌ಪಿಜಿಎ ಚಿಪ್‌ಗಾಗಿ ಇಂಟರ್ಫೇಸ್ ಐಪಿಯನ್ನು ಒದಗಿಸದಿದ್ದರೆ, ಡೇಟಾ ವರ್ಗಾವಣೆ ಪ್ರೋಟೋಕಾಲ್ ನಿರ್ದಿಷ್ಟತೆಗೆ ಅನುಗುಣವಾಗಿ ಗಡಿಯಾರ ಚಕ್ರಗಳು, ಬಿಟ್‌ಗಳು ಮತ್ತು ಬೈಟ್‌ಗಳನ್ನು ಎಣಿಸುವ ಆರ್‌ಟಿಎಲ್‌ನಲ್ಲಿ ನಾವೇ ಅದನ್ನು ಬರೆಯಬೇಕಾಗುತ್ತದೆ. ನಾವು ಹೆಚ್ಚಾಗಿ ರೆಡಿಮೇಡ್ ಬ್ಲಾಕ್‌ಗಳನ್ನು ಪ್ರಿಪ್ರೊಸೆಸ್, ಡಿಡಿಆರ್ ಕಂಟ್ರೋಲರ್ ಮತ್ತು ಎಚ್‌ಡಿಎಂಐ ಐಪಿ ತೆಗೆದುಕೊಳ್ಳುತ್ತೇವೆ ಮತ್ತು ಅವುಗಳ ಇಂಟರ್ಫೇಸ್‌ಗಳನ್ನು ಸರಳವಾಗಿ ಸಂಪರ್ಕಿಸುತ್ತೇವೆ. ಮತ್ತು ನಾವು HLS ಬ್ಲಾಕ್ ಅನ್ನು ಬರೆಯಬಹುದು, ಇದು ಒಳಬರುವ ಡೇಟಾವನ್ನು ಹುಡುಕುತ್ತದೆ ಮತ್ತು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುತ್ತದೆ, C++ ನಲ್ಲಿ ಮತ್ತು ಅದನ್ನು Vivado HLS ಬಳಸಿ ಪ್ರಸಾರ ಮಾಡಬಹುದು.

ಹೆಚ್ಚಾಗಿ, ನಮಗೆ ಇನ್ನೂ ಕೆಲವು ರೀತಿಯ ರೆಡಿಮೇಡ್ ಲೈಬ್ರರಿ ಡಿಟೆಕ್ಟರ್ ಮತ್ತು ರಸ್ತೆ ಚಿಹ್ನೆಗಳ ವರ್ಗೀಕರಣದ ಅಗತ್ಯವಿರುತ್ತದೆ, ಇದನ್ನು FPGA ನಲ್ಲಿ ಬಳಸಲು ಅಳವಡಿಸಲಾಗಿದೆ. ಈ ಉದಾಹರಣೆಯಲ್ಲಿ, ಸಹಜವಾಗಿ, ನಾನು ಹೆಚ್ಚು ಸರಳೀಕೃತ ವಿನ್ಯಾಸದ ಫ್ಲೋಚಾರ್ಟ್ ಅನ್ನು ಪ್ರಸ್ತುತಪಡಿಸುತ್ತೇನೆ, ಆದರೆ ಇದು ಕಾರ್ಯಾಚರಣೆಯ ತರ್ಕವನ್ನು ಸರಿಯಾಗಿ ಪ್ರತಿಬಿಂಬಿಸುತ್ತದೆ.

RTL ಕೋಡ್ ಬರೆಯುವುದರಿಂದ ಹಿಡಿದು FPGA ಗೆ ಲೋಡ್ ಮಾಡಲು ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ ಪಡೆಯುವವರೆಗೆ ವಿನ್ಯಾಸದ ಮಾರ್ಗವನ್ನು ನೋಡೋಣ.

ವಿನ್ಯಾಸ ಮಾರ್ಗ

ಆದ್ದರಿಂದ ನೀವು ಬಯಸುವ ಸರ್ಕ್ಯೂಟ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ RTL ಕೋಡ್ ಅನ್ನು ನೀವು ಬರೆಯುತ್ತೀರಿ. ನೈಜ ಯಂತ್ರಾಂಶದಲ್ಲಿ ಅದನ್ನು ಪರೀಕ್ಷಿಸುವ ಮೊದಲು, ಅದು ಸರಿಯಾಗಿದೆ ಮತ್ತು ಅಗತ್ಯವಿರುವ ಸಮಸ್ಯೆಯನ್ನು ಸರಿಯಾಗಿ ಪರಿಹರಿಸುತ್ತದೆ ಎಂದು ನೀವು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಬೇಕು. ಇದನ್ನು ಮಾಡಲು, ಆರ್ಟಿಎಲ್ ಮಾಡೆಲಿಂಗ್ ಅನ್ನು ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ ಸಿಮ್ಯುಲೇಟರ್ನಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ.

ನೀವು ಪ್ರಸ್ತುತ RTL ಕೋಡ್‌ನಲ್ಲಿ ಪ್ರಸ್ತುತಪಡಿಸಿದ ನಿಮ್ಮ ಸರ್ಕ್ಯೂಟ್ ಅನ್ನು ತೆಗೆದುಕೊಂಡು ಅದನ್ನು ವರ್ಚುವಲ್ ಬೆಂಚ್‌ನಲ್ಲಿ ಇರಿಸಿ, ಅಲ್ಲಿ ನೀವು ಸರ್ಕ್ಯೂಟ್‌ನ ಇನ್‌ಪುಟ್‌ಗಳಿಗೆ ಡಿಜಿಟಲ್ ಸಿಗ್ನಲ್‌ಗಳ ಅನುಕ್ರಮವನ್ನು ಅನ್ವಯಿಸುತ್ತೀರಿ, ಔಟ್‌ಪುಟ್ ರೇಖಾಚಿತ್ರಗಳನ್ನು ರೆಕಾರ್ಡ್ ಮಾಡಿ, ಔಟ್‌ಪುಟ್ ಸಿಗ್ನಲ್‌ಗಳ ಸಮಯದ ಅವಲಂಬನೆಗಳನ್ನು ಮತ್ತು ಹೋಲಿಕೆ ಮಾಡಿ ಅವರು ನಿರೀಕ್ಷಿತ ಫಲಿತಾಂಶಗಳೊಂದಿಗೆ. ಸಾಮಾನ್ಯವಾಗಿ ನೀವು ದೋಷಗಳನ್ನು ಕಂಡುಕೊಳ್ಳುತ್ತೀರಿ ಮತ್ತು RTL ಬರೆಯಲು ಹಿಂತಿರುಗಿ.

ಮುಂದೆ, ತಾರ್ಕಿಕವಾಗಿ ಪರಿಶೀಲಿಸಿದ ಕೋಡ್ ಅನ್ನು ಸಿಂಥಸೈಜರ್ ಪ್ರೋಗ್ರಾಂಗೆ ಇನ್ಪುಟ್ ಆಗಿ ನೀಡಲಾಗುತ್ತದೆ. ಇದು ಸರ್ಕ್ಯೂಟ್‌ನ ಪಠ್ಯ ವಿವರಣೆಯನ್ನು ನೀಡಿದ FPGA ಡೈಗಾಗಿ ಲಭ್ಯವಿರುವ ಲೈಬ್ರರಿಯಿಂದ ಡಿಜಿಟಲ್ ಅಂಶಗಳ ಲಿಂಕ್ ಪಟ್ಟಿಗೆ ಪರಿವರ್ತಿಸುತ್ತದೆ. ಈ ಪಟ್ಟಿಯು LUT ಗಳು, ಟ್ರಿಗ್ಗರ್‌ಗಳು ಮತ್ತು ಅವುಗಳ ನಡುವಿನ ಸಂಪರ್ಕಗಳಂತಹ ಐಟಂಗಳನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ. ಈ ಹಂತದಲ್ಲಿ, ಅಂಶಗಳು ಇನ್ನೂ ನಿರ್ದಿಷ್ಟ ಹಾರ್ಡ್‌ವೇರ್ ಸಂಪನ್ಮೂಲಗಳಿಗೆ ಸಂಬಂಧಿಸಿಲ್ಲ. ಇದನ್ನು ಮಾಡಲು, ನೀವು ಸರ್ಕ್ಯೂಟ್‌ನಲ್ಲಿ ನಿರ್ಬಂಧಗಳನ್ನು ವಿಧಿಸಬೇಕಾಗುತ್ತದೆ - ನಿರ್ದಿಷ್ಟವಾಗಿ, FPGA ಚಿಪ್‌ನ ಯಾವ ಭೌತಿಕ I/O ಪಿನ್‌ಗಳಿಗೆ ನಿಮ್ಮ ಸರ್ಕ್ಯೂಟ್‌ನ ತಾರ್ಕಿಕ ಇನ್‌ಪುಟ್‌ಗಳು ಮತ್ತು ಔಟ್‌ಪುಟ್‌ಗಳನ್ನು ಸಂಪರ್ಕಿಸಲಾಗಿದೆ ಎಂಬುದನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ.

ಈ ನಿರ್ಬಂಧಗಳಿಗೆ ಸರ್ಕ್ಯೂಟ್ ಯಾವ ಗಡಿಯಾರದ ವೇಗದಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸಬೇಕು ಎಂಬುದನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವ ಅಗತ್ಯವಿರುತ್ತದೆ. ಸಿಂಥಸೈಜರ್ ಔಟ್‌ಪುಟ್ ಮತ್ತು ನಿರ್ಬಂಧಕ ಫೈಲ್ ಅನ್ನು ಇಂಪ್ಲಿಮೆಂಟೇಶನ್ ಪ್ರೊಸೆಸರ್‌ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ, ಇದು ಇತರ ವಿಷಯಗಳ ಜೊತೆಗೆ, ಪ್ಲೇಸ್ ಮತ್ತು ರೂಟ್ ಅನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ.

ಪ್ಲೇಸ್ ಪ್ರಕ್ರಿಯೆಯು ನೆಟ್‌ಲಿಸ್ಟ್‌ನಿಂದ ಪ್ರತಿ ಅನಾಮಧೇಯ ಅಂಶವನ್ನು FPGA ಚಿಪ್‌ನೊಳಗಿನ ನಿರ್ದಿಷ್ಟ ಅಂಶಕ್ಕೆ ಬಂಧಿಸುತ್ತದೆ. ಮುಂದೆ, ಮಾರ್ಗ ಪ್ರಕ್ರಿಯೆಯು ಅದರ ಕೆಲಸವನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತದೆ, ಇದು FPGA ಸ್ವಿಚಿಂಗ್ ಮ್ಯಾಟ್ರಿಕ್ಸ್ನ ಅನುಗುಣವಾದ ಸಂರಚನೆಗಾಗಿ ಈ ಅಂಶಗಳ ಅತ್ಯುತ್ತಮ ಸಂಪರ್ಕವನ್ನು ಕಂಡುಹಿಡಿಯಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ.

ಸ್ಥಳ ಮತ್ತು ಮಾರ್ಗವು ಸರ್ಕ್ಯೂಟ್‌ನಲ್ಲಿ ನಾವು ಇರಿಸಿರುವ ನಿರ್ಬಂಧಗಳ ಆಧಾರದ ಮೇಲೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ: I/O ಪಿನ್‌ಗಳು ಮತ್ತು ಗಡಿಯಾರದ ವೇಗ. ಗಡಿಯಾರದ ಅವಧಿಯು ಅನುಷ್ಠಾನದ ಮೇಲೆ ಬಹಳ ಬಲವಾದ ಪ್ರಭಾವವನ್ನು ಹೊಂದಿದೆ: ಇದು ಎರಡು ಸತತ ಫ್ಲಿಪ್-ಫ್ಲಾಪ್‌ಗಳ ನಡುವಿನ ನಿರ್ಣಾಯಕ ಸರ್ಕ್ಯೂಟ್‌ನಲ್ಲಿ ಲಾಜಿಕ್ ಗೇಟ್‌ಗಳ ಸಮಯದ ವಿಳಂಬಕ್ಕಿಂತ ಕಡಿಮೆಯಿರಬಾರದು.

ಆಗಾಗ್ಗೆ ಈ ಅಗತ್ಯವನ್ನು ತಕ್ಷಣವೇ ಪೂರೈಸಲು ಸಾಧ್ಯವಿಲ್ಲ, ಮತ್ತು ನಂತರ ನೀವು ಆರಂಭಿಕ ಹಂತಕ್ಕೆ ಹಿಂತಿರುಗಿ ಮತ್ತು RTL ಕೋಡ್ ಅನ್ನು ಬದಲಾಯಿಸಬೇಕಾಗುತ್ತದೆ: ಉದಾಹರಣೆಗೆ, ನಿರ್ಣಾಯಕ ಸರಪಳಿಯಲ್ಲಿ ತರ್ಕವನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ. ಅನುಷ್ಠಾನವು ಯಶಸ್ವಿಯಾಗಿ ಪೂರ್ಣಗೊಂಡ ನಂತರ, ಯಾವ ಅಂಶಗಳು ಎಲ್ಲಿಗೆ ಹೋಗುತ್ತವೆ ಮತ್ತು ಹೇಗೆ ಸಂಪರ್ಕಗೊಂಡಿವೆ ಎಂದು ನಮಗೆ ತಿಳಿದಿದೆ.

ಇದರ ನಂತರವೇ ಬೈನರಿ ಎಫ್‌ಪಿಜಿಎ ಫರ್ಮ್‌ವೇರ್ ಫೈಲ್ ಅನ್ನು ರಚಿಸುವ ಪ್ರಕ್ರಿಯೆಯು ಪ್ರಾರಂಭವಾಗುತ್ತದೆ. ಅದನ್ನು ನೈಜ ಹಾರ್ಡ್‌ವೇರ್‌ಗೆ ಲೋಡ್ ಮಾಡುವುದು ಮತ್ತು ಅದು ನಿರೀಕ್ಷೆಯಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸುವುದು ಮಾತ್ರ ಉಳಿದಿದೆ. ಈ ಹಂತದಲ್ಲಿ ಸಮಸ್ಯೆಗಳು ಉದ್ಭವಿಸಿದರೆ, ಮಾಡೆಲಿಂಗ್ ಅಪೂರ್ಣವಾಗಿದೆ ಮತ್ತು ಈ ಹಂತದಲ್ಲಿ ಎಲ್ಲಾ ದೋಷಗಳು ಮತ್ತು ನ್ಯೂನತೆಗಳನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿಲ್ಲ ಎಂದರ್ಥ.

ನೀವು ಸಿಮ್ಯುಲೇಶನ್ ಹಂತಕ್ಕೆ ಹಿಂತಿರುಗಬಹುದು ಮತ್ತು ತುರ್ತು ಪರಿಸ್ಥಿತಿಯನ್ನು ಅನುಕರಿಸಬಹುದು, ಮತ್ತು ಇದು ಕೆಲಸ ಮಾಡದಿದ್ದರೆ, ಕೊನೆಯ ಉಪಾಯವಾಗಿ, ಡೀಬಗ್ ಮಾಡುವ ಕಾರ್ಯವಿಧಾನವನ್ನು ನೇರವಾಗಿ ಕೆಲಸ ಮಾಡುವ ಯಂತ್ರಾಂಶದಲ್ಲಿ ಒದಗಿಸಲಾಗುತ್ತದೆ. ಕಾಲಾನಂತರದಲ್ಲಿ ನೀವು ಯಾವ ಸಂಕೇತಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲು ಬಯಸುತ್ತೀರಿ ಎಂಬುದನ್ನು ನೀವು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು, ಮತ್ತು ವಿನ್ಯಾಸ ಪರಿಸರವು ನಿಮ್ಮ ವಿನ್ಯಾಸದ ಪಕ್ಕದಲ್ಲಿರುವ ಚಿಪ್‌ನಲ್ಲಿ ಕುಳಿತುಕೊಳ್ಳುವ ಹೆಚ್ಚುವರಿ ಲಾಜಿಕ್ ವಿಶ್ಲೇಷಕ ಸರ್ಕ್ಯೂಟ್ರಿಯನ್ನು ರಚಿಸುತ್ತದೆ, ನೀವು ಆಸಕ್ತಿ ಹೊಂದಿರುವ ಸಂಕೇತಗಳಿಗೆ ಸಂಪರ್ಕಿಸುತ್ತದೆ ಮತ್ತು ಕಾಲಾನಂತರದಲ್ಲಿ ಅವುಗಳ ಮೌಲ್ಯಗಳನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ. . ಬಯಸಿದ ಸಂಕೇತಗಳ ಉಳಿಸಿದ ಸಮಯ ರೇಖಾಚಿತ್ರಗಳನ್ನು ಕಂಪ್ಯೂಟರ್‌ಗೆ ಡೌನ್‌ಲೋಡ್ ಮಾಡಬಹುದು ಮತ್ತು ವಿಶ್ಲೇಷಿಸಬಹುದು.

ಪ್ರೊಗ್ರಾಮೆಬಲ್ ಲಾಜಿಕ್ ಇಂಟಿಗ್ರೇಟೆಡ್ ಸರ್ಕ್ಯೂಟ್‌ಗಳಿಗಾಗಿ (ಎಫ್‌ಪಿಜಿಎ) ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್‌ಗಳಿಗಾಗಿ ಜೊತೆಯಲ್ಲಿರುವ ದಾಖಲಾತಿಗಳ ಸಂಯೋಜನೆಯನ್ನು ನಿರ್ಧರಿಸಲು ಲೇಖನವು ಪ್ರಯತ್ನಿಸುತ್ತದೆ. ಎಫ್‌ಪಿಜಿಎಯಲ್ಲಿ ಡಿಜಿಟಲ್ ಸಾಧನಗಳನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸುವ ಹಂತದಲ್ಲಿ ತಮ್ಮ ಯೋಜನೆಗಳಲ್ಲಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್‌ನ ಯಶಸ್ವಿ ಬಳಕೆಗಾಗಿ ಡೆವಲಪರ್‌ಗಳು ಗ್ರಾಹಕರು/ಗ್ರಾಹಕರಿಗೆ ಈ ದಾಖಲಾತಿಯನ್ನು ಒದಗಿಸಬೇಕು.

ಪರಿಚಯ

ಆದ್ದರಿಂದ, ಗ್ರಾಹಕ ಕಂಪನಿ ಅಥವಾ ಎಂಟರ್‌ಪ್ರೈಸ್ ಅಥವಾ ಇನ್ನೊಂದು ಡೆವಲಪರ್ ತರುವಾಯ ತಮ್ಮ ಯೋಜನೆಗಳಲ್ಲಿ "ವಿದೇಶಿ" ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಸಾಧನವನ್ನು ಬಳಸಿದರೆ ಡೆವಲಪರ್‌ಗೆ ಯಾವ ರೀತಿಯ ವಿನ್ಯಾಸ ದಾಖಲಾತಿಯನ್ನು ಕೇಳಬೇಕು? ಎಫ್‌ಪಿಜಿಎಗಳಿಗಾಗಿ ಡಿಜಿಟಲ್ ಸಾಧನದ ಅಭಿವೃದ್ಧಿಗೆ ತಾಂತ್ರಿಕ ವಿಶೇಷಣಗಳನ್ನು ಮೊದಲು ಸರಿಯಾಗಿ ನೀಡಲು ಈ ಲೇಖನವು “ಚೀಟ್ ಶೀಟ್” ಆಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ನಂತರ ಈಗಾಗಲೇ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಡಿಜಿಟಲ್ ಸಾಧನಕ್ಕಾಗಿ ವಿನ್ಯಾಸ ದಾಖಲಾತಿಗಾಗಿ ಡೆವಲಪರ್ ಅನ್ನು ಕೇಳಿ. ವಿನ್ಯಾಸ ದಾಖಲಾತಿಯೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವ ಹಿಂದಿನ ಅನುಭವದ ಆಧಾರದ ಮೇಲೆ, ಉದ್ಯಮ ಅಥವಾ ಸಂಸ್ಥೆಯು ಸಾಮಾನ್ಯವಾಗಿ ಕೆಳಗಿನ ಮಾನದಂಡಗಳು ಮತ್ತು ನಿಯಂತ್ರಕ ದಾಖಲೆಗಳನ್ನು ಬಳಸುತ್ತದೆ:

  • GOST 2.102-68 ESKD. ವಿನ್ಯಾಸ ದಾಖಲೆಗಳ ವಿಧಗಳು ಮತ್ತು ಸಂಪೂರ್ಣತೆ.
  • GOST 15.101-98. ಉತ್ಪಾದನೆಯಲ್ಲಿ ಉತ್ಪನ್ನಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ಮತ್ತು ಪ್ರಾರಂಭಿಸುವ ವ್ಯವಸ್ಥೆ. ಸಂಶೋಧನಾ ಕಾರ್ಯವನ್ನು ನಿರ್ವಹಿಸುವ ವಿಧಾನ.
  • GOST R 15.201-20-00. ಉತ್ಪಾದನೆಯಲ್ಲಿ ಉತ್ಪನ್ನಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ಮತ್ತು ಪ್ರಾರಂಭಿಸುವ ವ್ಯವಸ್ಥೆ. ಕೈಗಾರಿಕಾ ಮತ್ತು ತಾಂತ್ರಿಕ ಉದ್ದೇಶಗಳಿಗಾಗಿ ಉತ್ಪನ್ನಗಳು. ಉತ್ಪನ್ನಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ಮತ್ತು ಉತ್ಪಾದನೆಗೆ ಹಾಕುವ ವಿಧಾನ.

ನಿಯಮದಂತೆ, ಇವು ಫರ್ಮ್‌ವೇರ್ ಫೈಲ್‌ಗಳು ಮತ್ತು ಪ್ರೋಗ್ರಾಂ (ವಿಎಚ್‌ಡಿಎಲ್/ವೆರಿಲಾಗ್‌ನಲ್ಲಿ ಡಿಜಿಟಲ್ ಸಾಧನದ ವಿವರಣೆ ಅಥವಾ ಫ್ಲಿಪ್-ಫ್ಲಾಪ್‌ಗಳು, ರೆಜಿಸ್ಟರ್‌ಗಳು, ಕೌಂಟರ್‌ಗಳು, ಡಿಕೋಡರ್‌ಗಳಂತಹ ಡಿಜಿಟಲ್ ಲಾಜಿಕ್‌ನ ಲೈಬ್ರರಿ ಅಂಶಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಸರ್ಕ್ಯೂಟ್ ಸಂಪಾದಕದಲ್ಲಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಡಿಜಿಟಲ್ ಸರ್ಕ್ಯೂಟ್‌ಗಳ ಸೆಟ್. , ಇತ್ಯಾದಿ) CD ಅಥವಾ DVD ಮತ್ತು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಸೂಚನೆಗಳಲ್ಲಿ. ಅಷ್ಟೇ.

ಲೇಖಕ, ಉದಾಹರಣೆಗೆ, ಈ ಕೆಳಗಿನ ಸಮಸ್ಯೆಯನ್ನು ಎದುರಿಸಿದರು. ಉದ್ಯೋಗಿಗಳಲ್ಲಿ ಒಬ್ಬರು ಸಂಕೀರ್ಣ ಬಹು-ಮಾಡ್ಯೂಲ್ ಡಿಜಿಟಲ್ ಸಾಧನವನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಿದರು. ನಾನು VHDL ನಲ್ಲಿನ ಎಲ್ಲಾ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ವಿವರಿಸಿದ್ದೇನೆ ಮತ್ತು ಈ ಮಾಡ್ಯೂಲ್‌ಗಳ ಕಾರ್ಯಾಚರಣೆಯ ಸೈಕ್ಲೋಗ್ರಾಮ್‌ಗಳನ್ನು ಮತ್ತು ಒಟ್ಟಾರೆಯಾಗಿ ಡಿಜಿಟಲ್ ಸಾಧನವನ್ನು ಉತ್ತಮ ಮತ್ತು ದುಬಾರಿ ಆಸಿಲ್ಲೋಸ್ಕೋಪ್‌ನಲ್ಲಿ ನೋಡಿದೆ. ಟೆಸ್ಟ್ ಬೆಂಚ್ ಫೈಲ್‌ಗಳು ಮತ್ತು ಸಿಮ್ಯುಲೇಶನ್‌ಗಳನ್ನು ನಡೆಸುವ ಸಾಧ್ಯತೆಯ ಬಗ್ಗೆ ಅವರಿಗೆ ತಿಳಿದಿರಲಿಲ್ಲ ಅಥವಾ ಅವುಗಳನ್ನು ಹೇಗೆ ಬರೆಯಬೇಕೆಂದು ತಿಳಿದಿರಲಿಲ್ಲ; ಅಂದಹಾಗೆ, ಯೋಜನೆಯಲ್ಲಿ ಮತ್ತು ಮಾಡ್ಯೂಲ್ ವಿವರಣೆಗಳಲ್ಲಿ ಯಾವುದೇ ಕಾಮೆಂಟ್‌ಗಳಿಲ್ಲ. ಲೈಬ್ರರಿ ಅಂಶಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಸರ್ಕ್ಯೂಟ್ ಎಡಿಟರ್‌ನಲ್ಲಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ ಡಿಜಿಟಲ್ ಸರ್ಕ್ಯೂಟ್‌ಗಳಿಂದ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಪ್ರತಿನಿಧಿಸಿದರೆ ಪರಿಸ್ಥಿತಿ ಇನ್ನೂ ಕೆಟ್ಟದಾಗಿರುತ್ತದೆ. ಇಲ್ಲಿ ಪ್ರಮುಖ ನ್ಯೂನತೆಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ: ಡೆವಲಪರ್ ಸ್ವತಃ ಹೊರತುಪಡಿಸಿ, ಈ ಡಿಜಿಟಲ್ ಸಾಧನವನ್ನು ಬೇರೆಯವರು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವ ಸಾಧ್ಯತೆಯಿಲ್ಲ, ವಿಶೇಷವಾಗಿ ಯೋಜನೆಯು ಬಹು-ಮಾಡ್ಯೂಲ್ ಆಗಿದ್ದರೆ ಮತ್ತು ಪ್ರತಿ ಮಾಡ್ಯೂಲ್ನ ವಿವರಣೆಯು 100 ಕ್ಕಿಂತ ಹೆಚ್ಚು ಸಾಲುಗಳು ಅಥವಾ ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಮಾನಿಟರ್ ಆಗಿದ್ದರೆ. ಪರದೆಯ. ಇದರರ್ಥ ಇನ್ನೊಬ್ಬ ಡೆವಲಪರ್ FPGA ಗಾಗಿ ಈಗಾಗಲೇ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಡಿಜಿಟಲ್ ಸಾಧನವನ್ನು ಹೊಸ ಅಭಿವೃದ್ಧಿ ಅಥವಾ ಯೋಜನೆಗೆ ಪರಿಚಯಿಸಲು ಬಯಸಿದರೆ, ಅವನು ಮತ್ತೆ ಈ ಡಿಜಿಟಲ್ ಸಾಧನವನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಸಮಯವನ್ನು ಕಳೆಯಬೇಕಾಗುತ್ತದೆ.

FPGA ಗಳಿಗೆ ವಿನ್ಯಾಸ ಸಮಸ್ಯೆಯ ಇತಿಹಾಸ

ಪ್ರಸ್ತುತ, FPGA ಮಾರುಕಟ್ಟೆಯು ಅತ್ಯಂತ ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಅಭಿವೃದ್ಧಿ ಹೊಂದುತ್ತಿದೆ. FPGA ಗಳನ್ನು ಅನೇಕ ಕೈಗಾರಿಕೆಗಳಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ. ಈ ಸಮಯದಲ್ಲಿ, ಸಿಸ್ಟಮ್ ಮಟ್ಟದಲ್ಲಿ ಸಾಧನದ ಕ್ರಿಯಾತ್ಮಕ ಮಾದರಿಯ ಆಧಾರದ ಮೇಲೆ FPGA ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಪಡೆಯಲು ಎಲ್ಲಾ ಹಾರ್ಡ್‌ವೇರ್ ಡೆವಲಪರ್‌ಗಳನ್ನು ತೃಪ್ತಿಪಡಿಸುವ ಯಾವುದೇ ನಿಸ್ಸಂದಿಗ್ಧವಾದ ವಿಧಾನವಿಲ್ಲ. ಈ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸುವ ಅತ್ಯಂತ ಜನಪ್ರಿಯ ವಿಧಾನವೆಂದರೆ ಐಪಿ ಕೋರ್ ತಂತ್ರಜ್ಞಾನದ ಬಳಕೆಯಾಗಿದೆ (ಬೌದ್ಧಿಕ ಆಸ್ತಿ ಕೋರ್ಗಳು). ಐಪಿ ಕೋರ್ಗಳು ಸಿದ್ಧ-ಸಿದ್ಧ ಘಟಕಗಳಾಗಿವೆ, ಅದು ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾದ ವ್ಯವಸ್ಥೆಯನ್ನು ರಚಿಸಲು ಅವುಗಳನ್ನು ನಿಮ್ಮ ಸ್ವಂತ ಯೋಜನೆಯಲ್ಲಿ ಅಳವಡಿಸಲು ಸುಲಭಗೊಳಿಸುತ್ತದೆ. ಈ ವಿಧಾನವು ಒಂದು ಗಮನಾರ್ಹ ನ್ಯೂನತೆಯನ್ನು ಹೊಂದಿದೆ - ಐಪಿ ನ್ಯೂಕ್ಲಿಯಸ್ಗಳನ್ನು ಧಾತುರೂಪದ ಆಧಾರಕ್ಕೆ ಜೋಡಿಸುವುದು. ಪ್ರತಿ ಐಪಿ ಕೋರ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟ ತಯಾರಕರಿಂದ ನಿರ್ದಿಷ್ಟ ಸರಣಿಯ ಚಿಪ್‌ಗಳಿಗೆ ಹೊಂದುವಂತೆ ಮಾಡಲಾಗಿದೆ, ಇದು ಈಗಾಗಲೇ ರಚಿಸಲಾದ ಸಾಧನಗಳನ್ನು ಒಂದು ಅಂಶದ ನೆಲೆಯಿಂದ ಇನ್ನೊಂದಕ್ಕೆ ವರ್ಗಾಯಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಗಮನಾರ್ಹವಾಗಿ ದುರ್ಬಲಗೊಳಿಸುತ್ತದೆ. ವಾಣಿಜ್ಯ CAD ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಳ ಮುಚ್ಚಿದ ಸ್ವಭಾವವು ನಿಮ್ಮ ಸ್ವಂತ ಕ್ರಿಯಾತ್ಮಕ ಸಾಧನದ ಮಾದರಿಗಳನ್ನು ಸಿಸ್ಟಮ್ ಮಟ್ಟದಲ್ಲಿ ಸೇರಿಸಲು ಅಸಾಧ್ಯವಾಗಿಸುತ್ತದೆ, ಅವುಗಳ ಆಧಾರದ ಮೇಲೆ ರಿಜಿಸ್ಟರ್ ವರ್ಗಾವಣೆ ಮಟ್ಟದಲ್ಲಿ (RTL) ಸಾಧನ ಮಾದರಿಗಳನ್ನು ಪಡೆಯುತ್ತದೆ. ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್‌ನ ಅಭಿವೃದ್ಧಿಯನ್ನು ಡಿಜಿಟಲ್ ಸರ್ಕ್ಯೂಟ್ ರೂಪದಲ್ಲಿ ಸರ್ಕ್ಯೂಟ್ ಸಂಪಾದಕದಲ್ಲಿ ಚಿತ್ರಿಸಲಾಗಿದೆ, ತಯಾರಕರ ಅಂತರ್ನಿರ್ಮಿತ CAD ಲೈಬ್ರರಿ ಮೂಲ ಸರ್ಕ್ಯೂಟ್ ಅಂಶಗಳಾದ ಫ್ಲಿಪ್-ಫ್ಲಾಪ್‌ಗಳು, ಡಿಕೋಡರ್‌ಗಳು, ಕೌಂಟರ್‌ಗಳು, ಆಡ್ಡರ್‌ಗಳು ಇತ್ಯಾದಿ.

ಸಿಸ್ಟಂ ಮಟ್ಟದಲ್ಲಿ ಕ್ರಿಯಾತ್ಮಕ ಮಾದರಿಯಿಂದ ರಿಜಿಸ್ಟರ್ ವರ್ಗಾವಣೆ ಹಂತದಲ್ಲಿ ಸಾಧನ ಮಾದರಿಗೆ ಪರಿವರ್ತನೆಯನ್ನು ಅನುಮತಿಸುವ ಮತ್ತೊಂದು ಜನಪ್ರಿಯ ವಿಧಾನವೆಂದರೆ ಸಿಸ್ಟಮ್-ಮಟ್ಟದ ವಿನ್ಯಾಸ ಭಾಷೆಗಳ (SLDL ಗಳು). ಇಂತಹ ಭಾಷೆಗಳಲ್ಲಿ SystemC, Handel-C, VHDL, Verilog, System Verilog ಸೇರಿವೆ. ಸಾಧನವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಹಾರ್ಡ್‌ವೇರ್ ಬೇಸ್‌ನಿಂದ ಸ್ವಾತಂತ್ರ್ಯವು ಮುಖ್ಯ ಪ್ರಯೋಜನವಾಗಿದೆ.

ಹೀಗಾಗಿ, ಒಂದೆಡೆ, ಐಪಿ ಕೋರ್ ತಂತ್ರಜ್ಞಾನವನ್ನು ಬಳಸುವಾಗ, ಹಾರ್ಡ್‌ವೇರ್ ಡೆವಲಪರ್ ಉತ್ತಮ-ಗುಣಮಟ್ಟದ ಪರಿಹಾರವನ್ನು ಪಡೆಯುತ್ತಾನೆ, ಆದರೆ ಸಾಧನವನ್ನು ಅಳವಡಿಸಲಾಗಿರುವ ಹಾರ್ಡ್‌ವೇರ್ ಆಧಾರದ ಮೇಲೆ ಕಟ್ಟುನಿಟ್ಟಾಗಿ ಕಟ್ಟಲಾಗುತ್ತದೆ. ಮತ್ತೊಂದೆಡೆ, ಸಿಸ್ಟಮ್ ಮಟ್ಟದಲ್ಲಿ ಹಾರ್ಡ್‌ವೇರ್ ವಿವರಣೆ ಭಾಷೆಗಳನ್ನು ಬಳಸುವಾಗ, ಸಾಧನದ ಅನುಷ್ಠಾನವು ಹಾರ್ಡ್‌ವೇರ್ ಸ್ವತಂತ್ರವಾಗಿರುತ್ತದೆ. ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್‌ಗಳ ವಿನ್ಯಾಸ ಪ್ರಕ್ರಿಯೆಯನ್ನು ವೇಗಗೊಳಿಸಲು ತಯಾರಕರು (Xilinx, Altera, Actel, ಇತ್ಯಾದಿ) ಮತ್ತು ಥರ್ಡ್-ಪಾರ್ಟಿ ಡೆವಲಪ್‌ಮೆಂಟ್ ಕಂಪನಿಗಳ ಹಾರ್ಡ್‌ವೇರ್ ವಿವರಣೆ ಭಾಷೆ ಮತ್ತು IP ಕೋರ್‌ಗಳನ್ನು ಜಂಟಿಯಾಗಿ ಬಳಸುವುದು ಪ್ರಸ್ತುತ ಮುಖ್ಯವಾಗಿದೆ ಎಂದು ಮೇಲಿನಿಂದ ಅನುಸರಿಸುತ್ತದೆ. ಮೂರನೇ ವ್ಯಕ್ತಿಯ ತಯಾರಕರಿಂದ ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್ಗಳನ್ನು ಬಳಸುವಾಗ, ಕೆಲವೊಮ್ಮೆ ಅದರ ಜೊತೆಗಿನ ದಾಖಲಾತಿಯಲ್ಲಿ ಮಾಹಿತಿಯ ಕೊರತೆ ಇರುತ್ತದೆ.

FPGA ಗಾಗಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ಒದಗಿಸುವುದು

ಸಿಸ್ಟಮ್ ಮಟ್ಟದಲ್ಲಿ ಸಾಧನದ ಕ್ರಿಯಾತ್ಮಕ ಮಾದರಿಯ ಆಧಾರದ ಮೇಲೆ FPGA ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಪಡೆಯುವ ವಿಧಾನವನ್ನು ಅವಲಂಬಿಸಿ, ಡೆವಲಪರ್ FPGA ಗಾಗಿ ಕೆಳಗಿನ ರೀತಿಯ ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಪ್ರತ್ಯೇಕಿಸಬಹುದು:

  • ಸಾಫ್ಟ್ವೇರ್ - ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್, ಹಾರ್ಡ್‌ವೇರ್ ವಿವರಣೆ ಭಾಷೆಯಲ್ಲಿ (ವಿಹೆಚ್‌ಡಿಎಲ್, ವೆರಿಲಾಗ್) ವಿವರಣೆಯ ರೂಪದಲ್ಲಿ ಗ್ರಾಹಕರಿಗೆ ರವಾನೆಯಾಗುತ್ತದೆ ಮತ್ತು/ಅಥವಾ ಲಾಜಿಕ್ ಸರ್ಕ್ಯೂಟ್‌ಗಳ ಸ್ವಯಂಚಾಲಿತ ಸಂಶ್ಲೇಷಣೆಗಾಗಿ ಪ್ರೋಗ್ರಾಂಗಳಲ್ಲಿ ಹೆಚ್ಚಿನ ಬಳಕೆಗಾಗಿ ಸ್ಕೀಮ್ಯಾಟಿಕ್ ಎಡಿಟರ್‌ನಲ್ಲಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗಿದೆ ಮತ್ತು ಕ್ರಿಯಾತ್ಮಕ ನಿಯತಾಂಕಗಳಿಗೆ ಹೊಂದುವಂತೆ ಮಾಡಲಾಗಿದೆ .
  • ಫರ್ಮ್ವೇರ್ - ಮೂರನೇ ವ್ಯಕ್ತಿಯ ಡೆವಲಪರ್ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್, IP ಕೋರ್ ಎಂದು ಕರೆಯಲ್ಪಡುತ್ತದೆ, FPGA ತಯಾರಕರ ಲಾಜಿಕಲ್ ಎಲಿಮೆಂಟ್ ಲೈಬ್ರರಿಯನ್ನು ಆಧರಿಸಿ ಲಾಜಿಕಲ್ ಸರ್ಕ್ಯೂಟ್ (ನೆಟ್‌ಲಿಸ್ಟ್) ರೂಪದಲ್ಲಿ ಗ್ರಾಹಕರಿಗೆ ರವಾನಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಕ್ರಿಯಾತ್ಮಕ ಮತ್ತು ವಿದ್ಯುತ್ ನಿಯತಾಂಕಗಳಿಗೆ ಹೊಂದುವಂತೆ ಮಾಡಲಾಗಿದೆ.

ದಸ್ತಾವೇಜನ್ನು ಅಭಿವೃದ್ಧಿಯ ಹಂತದಲ್ಲಿ, ವೈಯಕ್ತಿಕ ಅನುಭವದ ಆಧಾರದ ಮೇಲೆ, GOST 15.101, GOST 15.201, GOST 2.102, GOST 2.114, ಎಲ್ಲಾ ರೀತಿಯ ದಾಖಲಾತಿಗಳಿಗೆ ಅನುಗುಣವಾಗಿ ನಡೆಸಲಾದ ಸಾಮಾನ್ಯ ವಿನ್ಯಾಸ ದಸ್ತಾವೇಜನ್ನು ಮತ್ತು ವಿಶೇಷಣಗಳ ಜೊತೆಗೆ ರಚಿಸುವುದು ಅವಶ್ಯಕ. FPGA ಗಳಲ್ಲಿ ಡಿಜಿಟಲ್ ಸಾಧನಗಳನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸುವ ಹಂತಗಳಲ್ಲಿ ರಚಿಸಲಾದ ಮಾದರಿಗಳು (ಸಿಸ್ಟಮ್, ಲಾಜಿಕಲ್, ಸರ್ಕ್ಯೂಟ್ ಎಂಜಿನಿಯರಿಂಗ್).

ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಹೇಳುವುದಾದರೆ, ಫರ್ಮ್‌ವೇರ್ ಫೈಲ್, ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಸೂಚನೆಗಳು ಮತ್ತು CD/DVD ಯಲ್ಲಿ ರೆಕಾರ್ಡ್ ಮಾಡಲಾದ ಪ್ರಾಜೆಕ್ಟ್‌ಗೆ ಹೆಚ್ಚುವರಿಯಾಗಿ FPGA ಗಳಿಗಾಗಿ ಡಿಜಿಟಲ್ ಸಾಧನಕ್ಕಾಗಿ ವಿನ್ಯಾಸದ ದಸ್ತಾವೇಜನ್ನು ಸಹ ಒಳಗೊಂಡಿರಬೇಕು.

ಟೇಬಲ್.ಜೊತೆಯಲ್ಲಿರುವ ದಸ್ತಾವೇಜನ್ನು ವಿಭಾಗಗಳ ಪಟ್ಟಿ

ವಿಭಾಗದ ಶೀರ್ಷಿಕೆ ನೋಟ
ಸಾಫ್ಟ್ವೇರ್ ಫರ್ಮ್ವೇರ್
ಸಾಮಾನ್ಯ ಮಾಹಿತಿ
ಉದ್ದೇಶ ಮತ್ತು ವ್ಯಾಪ್ತಿ ಬಗ್ಗೆ ಆರ್
ವಿಶೇಷಣಗಳು ಬಗ್ಗೆ ಬಗ್ಗೆ
ಮರುಹೊಂದಿಸುವ ಸಂಕೇತಗಳ ವಿವರಣೆ ಬಗ್ಗೆ ಬಗ್ಗೆ
ಸಿಂಕ್ರೊನೈಸೇಶನ್ ಸಂಕೇತಗಳ ವಿವರಣೆ ಬಗ್ಗೆ ಬಗ್ಗೆ
ಇಂಟರ್ಫೇಸ್ಗಳ ವಿವರಣೆ ಬಗ್ಗೆ ಆರ್
ಸಮಯ ರೇಖಾಚಿತ್ರಗಳು ಆರ್ ಬಗ್ಗೆ
ನಿಯಂತ್ರಣ ರೆಜಿಸ್ಟರ್ಗಳ ವಿವರಣೆ ಬಗ್ಗೆ ಬಗ್ಗೆ
ರಚನಾತ್ಮಕ (ಕ್ರಿಯಾತ್ಮಕ) ರೇಖಾಚಿತ್ರ ಆರ್ ಆರ್
ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಗೈಡ್ ಬಗ್ಗೆ ಬಗ್ಗೆ
FPGA ಮಾದರಿ ಅಥವಾ ಕುಟುಂಬ,
ಕಂಪನಿ ತಯಾರಕ
ಆರ್ ಬಗ್ಗೆ
ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್ ಪ್ರಸ್ತುತಿ
FPGA ನಲ್ಲಿ ತರ್ಕ ವಿನ್ಯಾಸಕ್ಕಾಗಿ
RTL ಮಾದರಿ ಬಗ್ಗೆ ಸಂ
ತರ್ಕ ಮಾದರಿ ಸಂ ಬಗ್ಗೆ
ವಿನ್ಯಾಸ ನಿರ್ಬಂಧಗಳು ಬಗ್ಗೆ ಬಗ್ಗೆ

ಎಫ್‌ಪಿಜಿಎಗಳಿಗಾಗಿ ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್ ಪ್ರಾಜೆಕ್ಟ್‌ಗಾಗಿ ಜತೆಗೂಡಿದ ದಾಖಲಾತಿಯಲ್ಲಿ ಸೇರಿಸಬೇಕಾದ ವಿಭಾಗಗಳ (ಟೇಬಲ್) ಪಟ್ಟಿ ಇಲ್ಲಿದೆ. ಪ್ರತಿ ವಿಭಾಗಕ್ಕೆ, ದಾಖಲೆಗಳ ಗುಂಪಿನಲ್ಲಿ ವಿಭಾಗವನ್ನು ಸೇರಿಸುವ ಅಗತ್ಯತೆಯ ಚಿಹ್ನೆಗಳನ್ನು ತೋರಿಸಲಾಗಿದೆ:

  • "O" ಒಂದು ಅಗತ್ಯವಿರುವ ವಿಭಾಗವಾಗಿದೆ;
  • "P" ಎಂಬುದು ವಿತರಣೆಗೆ ಶಿಫಾರಸು ಮಾಡಲಾದ ವಿಭಾಗವಾಗಿದೆ.

ಪೋಷಕ ದಾಖಲೆಗಳನ್ನು ಸಲ್ಲಿಸಲು ಶಿಫಾರಸು ಮಾಡಲಾದ ಫೈಲ್ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳೆಂದರೆ MS Word, PDF (ಅತ್ಯುತ್ತಮ ಸ್ವರೂಪ), HTML. ಹಾರ್ಡ್‌ವೇರ್ ವಿವರಣೆ ಭಾಷೆಯಲ್ಲಿನ ವಿವರಣೆ ಫೈಲ್‌ಗಳು (VHDL, ವೆರಿಲಾಗ್) ಮತ್ತು/ಅಥವಾ ಸ್ಕೀಮ್ಯಾಟಿಕ್ ಎಡಿಟರ್‌ನಲ್ಲಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗಿದೆ ಅಭಿವೃದ್ಧಿಗಾಗಿ CAD ಸಾಫ್ಟ್‌ವೇರ್‌ನಿಂದ ಅಗತ್ಯವಿರುವ ರೂಪದಲ್ಲಿ ಒದಗಿಸಲಾಗಿದೆ. ಸ್ಕೀಮ್ಯಾಟಿಕ್ ಎಡಿಟರ್‌ನಲ್ಲಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾದ ಡಿಜಿಟಲ್ ಸರ್ಕ್ಯೂಟ್ ಫೈಲ್‌ಗಳ ಗ್ರಾಫಿಕ್ ಫಾರ್ಮ್ಯಾಟ್‌ನಲ್ಲಿ (JPEG, BMP) ಹೆಚ್ಚುವರಿ ನಿಬಂಧನೆಯು ಒಂದು ವಿನಾಯಿತಿಯಾಗಿರಬಹುದು.

ಸಾಮಾನ್ಯ ಮಾಹಿತಿ

ಈ ವಿಭಾಗವು ಅಭಿವೃದ್ಧಿ ಹೊಂದಿದ ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್ ಬಗ್ಗೆ ಸಾಮಾನ್ಯ ಮಾಹಿತಿಯನ್ನು ವಿವರಣೆಯ ರೂಪದಲ್ಲಿ ವಿವರಿಸುತ್ತದೆ:

  • ಕ್ರಿಯಾತ್ಮಕ ರೇಖಾಚಿತ್ರ ಮತ್ತು ಅದರ ಘಟಕ ಬ್ಲಾಕ್ಗಳು ​​/ ಭಾಗಗಳು;
  • ಸಂಕೇತಗಳನ್ನು ಮರುಹೊಂದಿಸಿ, ಸಿಂಕ್ರೊನೈಸೇಶನ್;
  • ಅನ್ವಯಿಕ ಇಂಟರ್ಫೇಸ್ಗಳು;
  • ನಿಯಂತ್ರಣ ರೆಜಿಸ್ಟರ್ಗಳು;
  • ಸಮಯ ರೇಖಾಚಿತ್ರ;
  • ಪ್ರೋಗ್ರಾಮಿಂಗ್.

ಉದ್ದೇಶ ಮತ್ತು ವ್ಯಾಪ್ತಿ

ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್‌ನ ಉದ್ದೇಶ ಮತ್ತು ಅದರ ಅನ್ವಯದ ಪ್ರದೇಶಗಳನ್ನು ನಿರ್ಧರಿಸಲಾಗುತ್ತದೆ.

ವಿಶೇಷಣಗಳು

ಕಾರ್ಯಕ್ಷಮತೆ, ನಿರ್ದಿಷ್ಟ ಎಫ್‌ಪಿಜಿಎ ಚಿಪ್‌ಗೆ ವಿದ್ಯುತ್ ಬಳಕೆ, ಆಕ್ರಮಿತ ಗೇಟ್‌ಗಳ ಸಂಖ್ಯೆ ಮತ್ತು ಬಳಸಿದ ಎಫ್‌ಪಿಜಿಎ ಚಿಪ್‌ನಂತಹ ಅದರ ಮುಖ್ಯ ತಾಂತ್ರಿಕ ಗುಣಲಕ್ಷಣಗಳ ವಿವರಣೆಯನ್ನು ಒದಗಿಸಲಾಗಿದೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್‌ನ ಅಭಿವೃದ್ಧಿಯಲ್ಲಿ ಬಳಸಲಾದ FPGA ತಯಾರಕರ CAD ಸಾಫ್ಟ್‌ವೇರ್ ಮತ್ತು ಮಾಡೆಲಿಂಗ್ ಮತ್ತು ಪರಿಶೀಲನೆಗಾಗಿ ಬಳಸುವ ಸಾಫ್ಟ್‌ವೇರ್ ಅನ್ನು ಸೂಚಿಸಲಾಗುತ್ತದೆ. ಬಳಸಿದ ಎಲ್ಲಾ ಪ್ರೋಗ್ರಾಂಗಳಿಗೆ, ಆವೃತ್ತಿ ಮತ್ತು ಸ್ಥಾಪಿಸಲಾದ ನವೀಕರಣಗಳನ್ನು ಸೂಚಿಸಲಾಗುತ್ತದೆ. "ಕಪ್ಪು ಪೆಟ್ಟಿಗೆ" ರೂಪದಲ್ಲಿ ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್ನ ಚಿತ್ರಾತ್ಮಕ ನಿರೂಪಣೆಯನ್ನು ಬಾಹ್ಯ ಒಳಹರಿವು/ಔಟ್ಪುಟ್ಗಳ ಪದನಾಮದೊಂದಿಗೆ ಒದಗಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಅವುಗಳ ಉದ್ದೇಶದ ಸಂಕ್ಷಿಪ್ತ ವಿವರಣೆಯನ್ನು ನೀಡಲಾಗುತ್ತದೆ.

ಮರುಹೊಂದಿಸುವ ಸಂಕೇತಗಳ ವಿವರಣೆ

ಮರುಹೊಂದಿಸುವ ಸಂಕೇತಗಳ ವಿವರಗಳನ್ನು ಕೆಳಗೆ ನೀಡಲಾಗಿದೆ:

  • ಬಾಹ್ಯ ಮತ್ತು ಆಂತರಿಕ ಮರುಹೊಂದಿಸುವ ಸಂಕೇತಗಳ ಪಟ್ಟಿ.
  • ರೀಸೆಟ್ ಸಿಗ್ನಲ್‌ಗಳ ಟೈಮಿಂಗ್ ಪ್ಯಾರಾಮೀಟರ್‌ಗಳು ಮತ್ತು ಟೈಮಿಂಗ್ ರೇಖಾಚಿತ್ರಗಳು.
  • ಆಂತರಿಕ ಮರುಹೊಂದಿಸುವ ಸಂಕೇತಗಳನ್ನು ಉತ್ಪಾದಿಸುವ ಸರ್ಕ್ಯೂಟ್‌ಗಳು, ಯಾವುದಾದರೂ ಇದ್ದರೆ, ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್‌ನ ಭಾಗವಾಗಿದೆ.
  • ಇತರ ಸಂಕೇತಗಳೊಂದಿಗೆ ಸಂಬಂಧಗಳು (ವಿಶೇಷವಾಗಿ ಸಿಂಕ್ರೊನೈಸೇಶನ್ ಸಂಕೇತಗಳು).

ಸಿಂಕ್ರೊನೈಸೇಶನ್ ಸಂಕೇತಗಳ ವಿವರಣೆ

ಸಿಂಕ್ರೊನೈಸೇಶನ್ ಸಿಗ್ನಲ್‌ಗಳ ಕುರಿತು ವಿವರಗಳು ಇಲ್ಲಿವೆ:

  • ಬಾಹ್ಯ ಸಿಂಕ್ರೊನೈಸೇಶನ್ ಸಂಕೇತಗಳ ವಿವರಣೆ;
  • ಸಿಂಕ್ರೊನೈಸೇಶನ್ ಸಿಗ್ನಲ್ಗಳ ಸಮಯದ ನಿಯತಾಂಕಗಳು;
  • ಆಂತರಿಕ ಸಿಂಕ್ರೊನೈಸೇಶನ್ ಸಂಕೇತಗಳ ವಿವರಣೆ ಮತ್ತು ಅವುಗಳ ಪೀಳಿಗೆಯ ಯೋಜನೆ;
  • ವಿವಿಧ ಮೂಲಗಳಿಂದ ಸಿಂಕ್ರೊನೈಸೇಶನ್ ಸಿಗ್ನಲ್ಗಳ ನಡುವಿನ ಸಮಯದ ಸಂಬಂಧಗಳು;

ಇಂಟರ್ಫೇಸ್ಗಳ ವಿವರಣೆ

ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್‌ನಲ್ಲಿ ಸೇರಿಸಲಾದ ಎಲ್ಲಾ ಇಂಟರ್ಫೇಸ್‌ಗಳ ಬಳಕೆಯ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ನೀಡಲಾಗಿದೆ, ಚಿಪ್‌ನಲ್ಲಿ ಸಿಸ್ಟಮ್‌ನ ಇತರ ನೋಡ್‌ಗಳೊಂದಿಗೆ ಪರಸ್ಪರ ಕ್ರಿಯೆಯನ್ನು ಸಂಘಟಿಸಲು ಆದ್ಯತೆ ಏಕೀಕೃತವಾಗಿದೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಇಂಟರ್ಫೇಸ್ನ ಸಂಪೂರ್ಣ ವಿವರಣೆಗೆ ಇಂಟರ್ನೆಟ್ ಲಿಂಕ್ ಅನ್ನು ಒದಗಿಸಲಾಗಿದೆ ಅಥವಾ ಇಂಟರ್ಫೇಸ್ನ ವಿವರಣೆಯನ್ನು ಒದಗಿಸಲಾಗಿದೆ. ಈ ಸಮಯದಲ್ಲಿ, AMBA, PLB ಮತ್ತು ವಿಶ್ಬೋನ್ ಬಸ್ ಇಂಟರ್ಫೇಸ್ಗಳನ್ನು ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್ಗಳಿಗಾಗಿ ಏಕೀಕೃತ ಇಂಟರ್ಫೇಸ್ಗಳಾಗಿ ಸ್ವೀಕರಿಸಲಾಗಿದೆ.

ಸಮಯ ರೇಖಾಚಿತ್ರಗಳು

ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್‌ನ ಇಂಟರ್ಫೇಸ್‌ಗಳು ಮತ್ತು ಇತರ ಇನ್‌ಪುಟ್‌ಗಳು/ಔಟ್‌ಪುಟ್‌ಗಳ ಮೂಲಕ ಡೇಟಾ ವಿನಿಮಯವನ್ನು ಸಂಘಟಿಸಲು ಅಗತ್ಯವಾದ ಮಾಹಿತಿಯನ್ನು ಒದಗಿಸಲಾಗಿದೆ: ಸಮಯ ರೇಖಾಚಿತ್ರಗಳ ಚಿತ್ರಾತ್ಮಕ ಪ್ರಾತಿನಿಧ್ಯ, ಡೇಟಾ ವರ್ಗಾವಣೆ ಪ್ರೋಟೋಕಾಲ್‌ಗಳ ವಿವರಣೆ, ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್‌ಗೆ ಒದಗಿಸಲಾದ ಬಾಹ್ಯ ಸಂಕೇತಗಳ ಅವಶ್ಯಕತೆಗಳು (ಅವಧಿ, ಆವರ್ತನ, ಇತ್ಯಾದಿ) , ಮತ್ತು ಇತರ ಮಾಹಿತಿ.

ನಿಯಂತ್ರಣ ರೆಜಿಸ್ಟರ್ಗಳ ವಿವರಣೆ

ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್ನ ಎಲ್ಲಾ ನಿಯಂತ್ರಣ ರೆಜಿಸ್ಟರ್ಗಳ ವಿವರಣೆಯನ್ನು ಒದಗಿಸಲಾಗಿದೆ. ಒಂದು ವಿಶಿಷ್ಟವಾದ ನಿಯಂತ್ರಣ ರಿಜಿಸ್ಟರ್ ವಿವರಣೆಯು ರಿಜಿಸ್ಟರ್ ಹೆಸರು, ಆಂತರಿಕ ವಿಳಾಸ ಜಾಗದಲ್ಲಿ ರಿಜಿಸ್ಟರ್ ವಿಳಾಸ, ಮರುಹೊಂದಿಸುವ ಸಂಕೇತವನ್ನು ತೆಗೆದುಹಾಕಿದ ನಂತರ ಆರಂಭಿಕ ಮೌಲ್ಯ, ಪ್ರವೇಶ ಪ್ರಕಾರ (ಓದಲು/ಬರೆಯಲು) ಮತ್ತು ಆಂತರಿಕ ಕ್ಷೇತ್ರಗಳ ವಿವರಣೆಯನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ.

ರಚನಾತ್ಮಕ (ಕ್ರಿಯಾತ್ಮಕ) ರೇಖಾಚಿತ್ರ

ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್ನ ಮುಖ್ಯ ಆಂತರಿಕ ನೋಡ್ಗಳು / ಬ್ಲಾಕ್ಗಳ ಸಂಪರ್ಕಗಳ ಆಂತರಿಕ ರಚನೆಯ ಚಿತ್ರಣವನ್ನು ಒದಗಿಸಲಾಗಿದೆ, ಜೊತೆಗೆ ಅವುಗಳ ಸಂಕ್ಷಿಪ್ತ ಪಠ್ಯ ವಿವರಣೆಯನ್ನು ಒದಗಿಸಲಾಗಿದೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್ನ ಮುಖ್ಯ ಆಂತರಿಕ ಬ್ಲಾಕ್ಗಳ ವಿವರಣೆಯನ್ನು ನೀಡಲಾಗಿದೆ. ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್ನ ಕಾರ್ಯಾಚರಣೆಯ ತತ್ವಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಅಗತ್ಯವಾದ ಮಾಹಿತಿಯನ್ನು ಗ್ರಾಹಕರಿಗೆ ಒದಗಿಸುವುದು ಈ ಡಾಕ್ಯುಮೆಂಟ್ನ ಉದ್ದೇಶವಾಗಿದೆ.

ವಿವರಿಸಿದ ಬ್ಲಾಕ್‌ಗಳ ಸಂಖ್ಯೆ ಮತ್ತು ವಿವರಣೆಯ ವ್ಯಾಪ್ತಿಯನ್ನು ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್‌ನ ಡೆವಲಪರ್ ನಿರ್ಧರಿಸುತ್ತಾರೆ. ವಿವರಿಸಿದ ಮಾಡ್ಯೂಲ್‌ಗಳ ಕನಿಷ್ಠ ಸಂಖ್ಯೆಯು ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್‌ನ ರಚನಾತ್ಮಕ (ಕ್ರಿಯಾತ್ಮಕ) ರೇಖಾಚಿತ್ರದ ಅಂಶಗಳ ಸಂಖ್ಯೆಗೆ ಅನುಗುಣವಾಗಿರುವುದು ಯೋಗ್ಯವಾಗಿದೆ.

ಒಳಾಂಗಣ ಘಟಕದ ವಿಶಿಷ್ಟ ವಿವರಣೆಯು ಒಳಗೊಂಡಿದೆ:

  • ಬ್ಲಾಕ್ನ ಉದ್ದೇಶ;
  • ಬ್ಲಾಕ್ನ ರಚನಾತ್ಮಕ (ಕ್ರಿಯಾತ್ಮಕ) ರೇಖಾಚಿತ್ರ (ಅಗತ್ಯವಿದ್ದರೆ);
  • ಕಾರ್ಯ ವಿಧಾನಗಳು ಮತ್ತು ಕ್ರಮಾವಳಿಗಳು;
  • ಕೆಲಸದ ಸಮಯದ ರೇಖಾಚಿತ್ರಗಳು;
  • ಬ್ಲಾಕ್ ನಿರ್ವಹಣೆಯ ಸಂಘಟನೆ;
  • ಇತರ ಬ್ಲಾಕ್ಗಳೊಂದಿಗೆ ಸಂವಹನದ ಸಂಘಟನೆ;
  • ಯಾವುದೇ ಇತರ ಮಾಹಿತಿ.

ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಗೈಡ್

ಎಫ್‌ಪಿಜಿಎಯಲ್ಲಿ ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್‌ನ ತಯಾರಕರ ಸಿಎಡಿ ಸಾಫ್ಟ್‌ವೇರ್, ಸಾಫ್ಟ್‌ವೇರ್ ಅಭಿವೃದ್ಧಿ ಮತ್ತು ಡೀಬಗ್ ಮಾಡಲು ಅಗತ್ಯವಿರುವ ಉಪಕರಣಗಳು ಮತ್ತು ಸಾಫ್ಟ್‌ವೇರ್ ಲೈಬ್ರರಿಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಪ್ರಕ್ರಿಯೆಯ ಕುರಿತು ಅಗತ್ಯವಿರುವ ಎಲ್ಲಾ ಮಾಹಿತಿಯನ್ನು ಒದಗಿಸುತ್ತದೆ.

FPGA ಮಾದರಿ ಅಥವಾ ಕುಟುಂಬ, ತಯಾರಕ

ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್ನ ಫರ್ಮ್ವೇರ್ಗಾಗಿ, FPGA ತಯಾರಕ, ಮಾದರಿ ಅಥವಾ FPGA ಯ ಕುಟುಂಬ ಮತ್ತು ಅದರ ವೇಗ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಸೂಚಿಸಲಾಗುತ್ತದೆ. ಸಾಫ್ಟ್‌ವೇರ್ ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್‌ಗಾಗಿ, ಆಕ್ರಮಿಸಿಕೊಂಡಿರುವ ಸಂಪನ್ಮೂಲಗಳ ಪ್ರಮಾಣ ಮತ್ತು ಬಳಸಿದ FPGA ಗಾಗಿ ಅಗತ್ಯತೆಗಳ ಕುರಿತು ಮಾಹಿತಿಯನ್ನು ಒದಗಿಸಲಾಗುತ್ತದೆ.

ತರ್ಕ ವಿನ್ಯಾಸಕ್ಕಾಗಿ ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್ನ ಪ್ರಾತಿನಿಧ್ಯ

VHDL ನಲ್ಲಿ "ವಿದೇಶಿ" ಯೋಜನೆಯನ್ನು ಬಳಸುವಲ್ಲಿನ ತೊಂದರೆಗಳನ್ನು ಲೇಖನವು ಚರ್ಚಿಸಿದೆ - ಹೆಸರಿಸಲು ಸೂಕ್ತವಾದ ಮಾರ್ಗಸೂಚಿಗಳ ಕೊರತೆ ಮತ್ತು ಕಾರ್ಯಕ್ರಮಗಳನ್ನು ಬರೆಯಲು ನಿಯಮಗಳು. ಹೆಸರುಗಳ ಬಗ್ಗೆ ಸಾಮಾನ್ಯ ಮಾರ್ಗಸೂಚಿಗಳು, ಕಾರ್ಯಕ್ರಮಗಳನ್ನು ಬರೆಯಲು ಉತ್ತಮ ನಡವಳಿಕೆಗಳು ಮತ್ತು ಸಂಶ್ಲೇಷಣೆಗಾಗಿ ಮಾರ್ಗಸೂಚಿಗಳನ್ನು ಸಹ ನೀಡಲಾಗಿದೆ. ಭವಿಷ್ಯದಲ್ಲಿ ನೀವು ಎಫ್‌ಪಿಜಿಎಯಲ್ಲಿ ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್‌ನ ಆರ್‌ಟಿಎಲ್ ಮಾದರಿಯನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು ಡೆವಲಪರ್‌ನೊಂದಿಗೆ ಈ ಸಮಸ್ಯೆಗಳನ್ನು ಸಾಧ್ಯವಾದಷ್ಟು ವಿವರವಾಗಿ ಚರ್ಚಿಸಬೇಕು. ಇದು ವಿಶೇಷವಾಗಿ FPGA ನಲ್ಲಿರುವ ಸಾಫ್ಟ್‌ವೇರ್ ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್ ಪ್ರಕಾರಕ್ಕೆ ಅನ್ವಯಿಸುತ್ತದೆ. ಲೇಖನದ ಈ ಭಾಗವು ಎಫ್‌ಪಿಜಿಎಯಲ್ಲಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್‌ನ ಸಂಪೂರ್ಣ ಯೋಜನೆಗೆ ಸಾಮಾನ್ಯ ಅವಶ್ಯಕತೆಗಳನ್ನು ವಿವರಿಸುತ್ತದೆ. ಎಫ್‌ಪಿಜಿಎಯಲ್ಲಿ ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್ ಅಭಿವೃದ್ಧಿಗೆ ತಾಂತ್ರಿಕ ವಿಶೇಷಣಗಳನ್ನು ರಚಿಸುವಾಗ ನೀವು ಗಮನ ಹರಿಸಬೇಕಾದ ಸಮಸ್ಯೆಗಳು ಇಲ್ಲಿವೆ, ಮತ್ತು ಇದು ವಿಶೇಷವಾಗಿ ಕೆಲಸದ ಫಲಿತಾಂಶಗಳ ವರ್ಗಾವಣೆಗೆ ಸಂಬಂಧಿಸಿದೆ.

RTL ಮಾದರಿ

ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್, ವೆರಿಲಾಗ್ ಅಥವಾ ವಿಎಚ್‌ಡಿಎಲ್ ಭಾಷೆಯ ಸಂಶ್ಲೇಷಿತ ಉಪವಿಭಾಗದಲ್ಲಿ ವಿವರಿಸಲಾಗಿದೆ ಮತ್ತು/ಅಥವಾ ಸ್ಕೀಮ್ಯಾಟಿಕ್ ಎಡಿಟರ್‌ನಲ್ಲಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗಿದೆ, ಇದನ್ನು ಎಫ್‌ಪಿಜಿಎ ಲಾಜಿಕ್ ಸಿಂಥೆಸಿಸ್‌ನ ಹಂತದಲ್ಲಿ ಬಳಸಲು ಉದ್ದೇಶಿಸಲಾಗಿದೆ. FPGA ತಯಾರಕರ CAD ಸಾಫ್ಟ್‌ವೇರ್‌ನಲ್ಲಿ ಜೋಡಿಸಲಾದ ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್ ಯೋಜನೆಯ ರೂಪದಲ್ಲಿ ಸಾಫ್ಟ್‌ವೇರ್‌ಗೆ ತಲುಪಿಸಲಾಗಿದೆ. ಡಿಜಿಟಲ್ ಫರ್ಮ್‌ವೇರ್ ಮಾಡ್ಯೂಲ್‌ಗಾಗಿ, RTL ಮಾದರಿಯನ್ನು ಪ್ರತ್ಯೇಕ ಒಪ್ಪಂದದ ಅಡಿಯಲ್ಲಿ ಒದಗಿಸಲಾಗಿದೆ.

RTL ಮಾದರಿ ಫೈಲ್‌ಗಳ ಜೊತೆಗೆ, ಕೆಳಗಿನವುಗಳನ್ನು ರವಾನಿಸಲಾಗುತ್ತದೆ:

  • ಮಾದರಿಯನ್ನು ಬಳಸುವ ಸೂಚನೆಗಳು.
  • ಮೆಮೊರಿ ಪ್ರಕಾರ, ಗಾತ್ರ, ಮೆಮೊರಿ ಬ್ಲಾಕ್‌ಗಳ ಸಂಖ್ಯೆ, ಮೆಮೊರಿ ಬ್ಲಾಕ್‌ನ ಕ್ರಮಾನುಗತ ಹೆಸರು ಸೇರಿದಂತೆ ಮಾದರಿಯಲ್ಲಿ ಒಳಗೊಂಡಿರುವ ಮೆಮೊರಿ ಬ್ಲಾಕ್‌ಗಳ ವಿವರಣೆ.
  • ಅವುಗಳನ್ನು ರಚಿಸಲು ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಸಿದ್ದವಾಗಿರುವ ಕರ್ನಲ್‌ಗಳನ್ನು ರಚಿಸುವ ಪ್ರಕ್ರಿಯೆಯ ವಿವರಣೆ (ಉದಾಹರಣೆಗೆ, Xilinx ISE ಗಾಗಿ CoreGenerator). ವಿವರಣೆಗಳ ಅನುಪಸ್ಥಿತಿಯಲ್ಲಿ, ತಂತ್ರಜ್ಞಾನ ಮತ್ತು ತಯಾರಕರ ಅವಲಂಬನೆಯಿಂದಾಗಿ ಮರು-ವಿನ್ಯಾಸ ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಮಿತಿಗಳು ಇರಬಹುದು.
  • ತಯಾರಕರಿಂದ ಮೈಕ್ರೊಪ್ರೊಸೆಸರ್ ಅನ್ನು ಬಳಸುವ ಸಂದರ್ಭದಲ್ಲಿ (ಉದಾಹರಣೆಗೆ, ಆಲ್ಟೆರಾ - ನಿಯೋಸ್ ಪ್ರೊಸೆಸರ್; Xilinx - ಮೈಕ್ರೋಬ್ಲೇಜ್, ಪವರ್ಪಿಸಿ ಮೈಕ್ರೊಪ್ರೊಸೆಸರ್ಗಳಿಂದ), ಪ್ರೊಸೆಸರ್ ಕೋರ್ ಮತ್ತು ಅದರ ಪೆರಿಫೆರಲ್ಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುವ ಪ್ರಕ್ರಿಯೆಯ ವಿವರಣೆಯ ಅಗತ್ಯವಿದೆ.
  • ವೆರಿಲಾಗ್ ಮತ್ತು/ಅಥವಾ ವಿಎಚ್‌ಡಿಎಲ್ ಮತ್ತು/ಅಥವಾ ಸಿಸ್ಟಮ್ ವೆರಿಲಾಗ್‌ನಲ್ಲಿ ಬರೆಯಲಾದ ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್‌ನ ಪರಿಶೀಲನೆ ಮತ್ತು ಸಿಮ್ಯುಲೇಶನ್‌ಗಾಗಿ ಪರೀಕ್ಷೆಗಳ ಒಂದು ಸೆಟ್ (ಟೆಸ್ಟ್ ಬೆಂಚ್ ಫೈಲ್‌ಗಳು).
  • ಯಾವುದೇ ಇತರ ಹೆಚ್ಚುವರಿ ಮಾಹಿತಿ.

ತರ್ಕ ಮಾದರಿ

ಮಾದರಿಯು FPGA ತಯಾರಕರ ಲೈಬ್ರರಿಯ ಆಧಾರದ ಮೇಲೆ ವೆರಿಲಾಗ್ ಅಥವಾ VHDL ಭಾಷೆಗಳನ್ನು ಬಳಸಿಕೊಂಡು ವಿವರಿಸಿದ ಸರ್ಕ್ಯೂಟ್‌ಗಳ ಪಟ್ಟಿಯಾಗಿದೆ ಮತ್ತು ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್‌ನ ಫರ್ಮ್‌ವೇರ್‌ಗೆ ಸರಬರಾಜು ಮಾಡಲಾಗುತ್ತದೆ.

ತಾರ್ಕಿಕ ಮಾದರಿ ಫೈಲ್‌ಗಳ ಜೊತೆಗೆ, ಈ ಕೆಳಗಿನವುಗಳನ್ನು ರವಾನಿಸಲಾಗುತ್ತದೆ:

  • ಈ ಮಾದರಿಯನ್ನು ಬಳಸಲು ಸೂಚನೆಗಳು.
  • ವೆರಿಲಾಗ್ ಮತ್ತು/ಅಥವಾ ವಿಎಚ್‌ಡಿಎಲ್ ಮತ್ತು/ಅಥವಾ ಸಿಸ್ಟಮ್ ವೆರಿಲಾಗ್‌ನಲ್ಲಿ ಬರೆಯಲಾದ ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್‌ನ ಪರಿಶೀಲನೆ ಮತ್ತು ಸಿಮ್ಯುಲೇಶನ್‌ಗಾಗಿ ಪರೀಕ್ಷೆಗಳ ಒಂದು ಸೆಟ್ (ಟೆಸ್ಟ್ ಬೆಂಚ್ ಫೈಲ್‌ಗಳು).
  • ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್ನ ಮಾಡೆಲಿಂಗ್ ಮತ್ತು ಪರಿಶೀಲನೆಗಾಗಿ ಪರೀಕ್ಷೆಗಳ ಸೆಟ್ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಮಾರ್ಗದರ್ಶಿ.
  • ಯಾವುದೇ ಇತರ ಹೆಚ್ಚುವರಿ ಮಾಹಿತಿ.

ವಿನ್ಯಾಸ ನಿರ್ಬಂಧಗಳು

ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಸಿಸ್ಟಮ್-ಆನ್-ಚಿಪ್ ಲಾಜಿಕ್ ಮಾದರಿಯಲ್ಲಿ ಸೇರಿಸಿದಾಗ ಅದರ ಮೇಲೆ ಹೇರಲಾದ ನಿರ್ಬಂಧಗಳ ಗುಂಪನ್ನು ವಿವರಿಸುವ ಫೈಲ್‌ನಂತೆ ವಿನ್ಯಾಸ ನಿರ್ಬಂಧಗಳನ್ನು ಒದಗಿಸಲಾಗುತ್ತದೆ. ಈ ಸೆಟ್ ಗಡಿಯಾರದ ನಿರ್ಬಂಧಗಳು, ಸಮಯದ ನಿರ್ಬಂಧಗಳು, ಇತರ ಮಾಡ್ಯೂಲ್‌ಗಳೊಂದಿಗೆ ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್‌ನ ಪರಸ್ಪರ ಕ್ರಿಯೆಯ ಮೇಲಿನ ನಿರ್ಬಂಧಗಳು ಮತ್ತು ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್‌ಗಾಗಿ ಆಪರೇಟಿಂಗ್ ಷರತ್ತುಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. ಸಾರಾಂಶ ವಿನ್ಯಾಸ ನಿರ್ಬಂಧಗಳು (SDC) ಫಾರ್ಮ್ಯಾಟ್ ಅಥವಾ FPGA ತಯಾರಕರ CAD ಸ್ವರೂಪಕ್ಕೆ ಆದ್ಯತೆ ನೀಡಲಾಗುತ್ತದೆ.

ಸಿಂಕ್ರೊನೈಸೇಶನ್ ಸಿಗ್ನಲ್‌ಗಳಿಗಾಗಿ ನಿರ್ಬಂಧಗಳ ಮಾದರಿ ಪಟ್ಟಿ:

  • ಸಮಯ ರೇಖಾಚಿತ್ರ (ಗಡಿಯಾರ ತರಂಗ ರೂಪ);
  • ಗಡಿಯಾರದ ಆವರ್ತನ ಅಸ್ಥಿರತೆ (ಜಿಟ್ಟರ್);
  • ಗಡಿಯಾರದ ಆವರ್ತನ ಹಂತವನ್ನು ಬದಲಾಯಿಸುವುದು;
  • ಸ್ವಿಚಿಂಗ್ ಸಮಯದ ಅವಧಿ (ಪರಿವರ್ತನೆಯ ಸಮಯ);
  • ಪಡೆದ ಗಡಿಯಾರ ತರಂಗ ರೂಪಗಳ ಸಮಯ ರೇಖಾಚಿತ್ರಗಳು;
  • ಯಾವುದೇ ಇತರ ಹೆಚ್ಚುವರಿ ಮಾಹಿತಿ.

ಸಾಫ್ಟ್‌ವೇರ್ ಮತ್ತು ಫರ್ಮ್‌ವೇರ್ ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್‌ಗಳಿಗೆ ಸಿಂಕ್ರೊನೈಸೇಶನ್ ಸಿಗ್ನಲ್‌ಗಳಿಗೆ ನಿರ್ಬಂಧಗಳ ಒಂದು ಸೆಟ್ ಅಗತ್ಯವಿದೆ.

ಸಮಯದ ನಿರ್ಬಂಧಗಳ ಮಾದರಿ ಪಟ್ಟಿ:

  • ಇನ್‌ಪುಟ್‌ಗಳಲ್ಲಿ ಆಗಮನದ ಸಮಯಗಳು;
  • ಔಟ್‌ಪುಟ್‌ಗಳಲ್ಲಿ ಸಿಗ್ನಲ್‌ಗಳ ಗೋಚರಿಸುವಿಕೆಯ ಸಮಯ (ಔಟ್‌ಪುಟ್‌ಗಳಲ್ಲಿ ಅಗತ್ಯವಿರುವ ಸಮಯ);
  • ಬಹು-ಚಕ್ರ ಮಾರ್ಗಗಳು;
  • ಸುಳ್ಳು ಮಾರ್ಗಗಳು;
  • ಡೇಟಾ ಸಿಗ್ನಲ್ ಸ್ವಿಚಿಂಗ್ ಸಮಯಗಳ ಅವಧಿ (ಡೇಟಾ ಸಿಗ್ನಲ್ ಪರಿವರ್ತನೆ ಸಮಯ);
  • ಯಾವುದೇ ಇತರ ಹೆಚ್ಚುವರಿ ಮಾಹಿತಿ.

ತೀರ್ಮಾನ

ಎಫ್‌ಪಿಜಿಎಗಳಿಗಾಗಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾದ ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್‌ಗಳಿಗೆ ಕೆಳಗಿನ ದಾಖಲಾತಿಗಳ ಜೊತೆಯಲ್ಲಿ ಗ್ರಾಹಕ ಮತ್ತು ಡೆವಲಪರ್ ನಡುವಿನ ಒಪ್ಪಂದದ ಮೂಲಕ ಒದಗಿಸಲಾಗಿದೆ. ಹೆಚ್ಚಾಗಿ, ಡೆವಲಪರ್ ಸರಳವಾಗಿ ವಿಎಚ್‌ಡಿಎಲ್, ವೆರಿಲಾಗ್, ಸಿಸ್ಟಮ್ ವೆರಿಲಾಗ್ ಮತ್ತು/ಅಥವಾ ಸರ್ಕ್ಯೂಟ್ ಎಡಿಟರ್‌ನಲ್ಲಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಒದಗಿಸುತ್ತದೆ. ಹೆಚ್ಚುವರಿ ದಾಖಲಾತಿಗೆ ಸಂಬಂಧಿಸಿದಂತೆ, ಡೆವಲಪರ್‌ನ ಉತ್ತರವು ಹೆಚ್ಚಾಗಿ ಈ ಕೆಳಗಿನಂತಿರುತ್ತದೆ: “ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಅದನ್ನು ತೆಗೆದುಕೊಂಡು ಅದನ್ನು ಬಳಸಿ. ಹಾರ್ಡ್‌ವೇರ್ ಭಾಷೆಯಲ್ಲಿ ಸರ್ಕ್ಯೂಟ್ ಅನ್ನು ವಿವರಿಸುವಲ್ಲಿ ಸಂಕೀರ್ಣವಾದ ಏನೂ ಇಲ್ಲ: ನೀವೇ ಅದನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಬಹುದು.

ಲೇಖಕರ ಅಭಿಪ್ರಾಯದಲ್ಲಿ, ನೀವು ಏನನ್ನಾದರೂ ಲೆಕ್ಕಾಚಾರ ಮಾಡಬಹುದು, ಇದು ಎಲ್ಲಾ ಆಸೆ ಮತ್ತು ಸಮಯವನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ ಮತ್ತು ಈಗಾಗಲೇ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್ಗಾಗಿ "ಬೇರೊಬ್ಬರ" ಯೋಜನೆಯನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಖರ್ಚು ಮಾಡುವ ಸಮಯವು VHDL ನಲ್ಲಿ ಉಪಕರಣಗಳನ್ನು ವಿವರಿಸುವ ಅನುಭವಕ್ಕೆ ನೇರವಾಗಿ ಅನುಪಾತದಲ್ಲಿರುತ್ತದೆ. ವೆರಿಲಾಗ್ ಮತ್ತು ಜ್ಞಾನ ಡಿಜಿಟಲ್ ಮತ್ತು ಮೈಕ್ರೊಪ್ರೊಸೆಸರ್ ಸರ್ಕ್ಯೂಟ್ರಿ. ಜೊತೆಯಲ್ಲಿರುವ ದಸ್ತಾವೇಜನ್ನು ಸಂಯೋಜನೆಯ ಕುರಿತು ನೀವು ಆರಂಭದಲ್ಲಿ ಡೆವಲಪರ್‌ನೊಂದಿಗೆ ಒಪ್ಪಿಕೊಂಡರೆ ಇದನ್ನು ತಪ್ಪಿಸಬಹುದು, ನಂತರ ನಿಮ್ಮ ಯೋಜನೆಯಲ್ಲಿ ಡಿಜಿಟಲ್ ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಬಳಸುವುದು ಸುಲಭವಾಗುತ್ತದೆ ಮತ್ತು ಅದರ ಅನುಷ್ಠಾನವು ವೇಗವಾಗಿ ಸಂಭವಿಸುತ್ತದೆ.

ಸಂಕ್ಷಿಪ್ತವಾಗಿ ಹೇಳುವುದಾದರೆ, ಎಫ್‌ಪಿಜಿಎಯಲ್ಲಿ ಡಿಜಿಟಲ್ ಸಾಧನವನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ಕಾರ್ಯವನ್ನು ರೂಪಿಸುವಾಗ, ಲೇಖನದಲ್ಲಿ ನೀಡಲಾದ ಶಿಫಾರಸುಗಳಿಗೆ ಬದ್ಧರಾಗಿರಬೇಕು ಎಂದು ಲೇಖಕರು ಗಮನಿಸಲು ಬಯಸುತ್ತಾರೆ, ನಂತರ ಹಿಂದೆ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಡಿಜಿಟಲ್ ಸಾಧನವನ್ನು ಮರುಬಳಕೆ ಮಾಡುವಾಗ ಅಥವಾ ನವೀಕರಿಸುವಾಗ ಸಮಸ್ಯೆಗಳು ಉದ್ಭವಿಸುವುದಿಲ್ಲ.

ಸಾಹಿತ್ಯ

  1. Denisov A. FPGAs // ಘಟಕಗಳು ಮತ್ತು ತಂತ್ರಜ್ಞಾನಗಳಿಗಾಗಿ VHDL ನಲ್ಲಿ ಡಿಜಿಟಲ್ ಸಾಧನಗಳನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಲು ಕೆಲವು ಸಲಹೆಗಳು. 2009. ಸಂ. 12.
  2. GOST 2.102-68 ESKD. ವಿನ್ಯಾಸ ದಾಖಲೆಗಳ ವಿಧಗಳು ಮತ್ತು ಸಂಪೂರ್ಣತೆ.
  3. GOST 2.114-95 ESKD. ತಾಂತ್ರಿಕ ಪರಿಸ್ಥಿತಿಗಳು.
  4. GOST 15.101-98. ಉತ್ಪಾದನೆಯಲ್ಲಿ ಉತ್ಪನ್ನಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ಮತ್ತು ಪ್ರಾರಂಭಿಸುವ ವ್ಯವಸ್ಥೆ. ವೈಜ್ಞಾನಿಕ ಸಂಶೋಧನಾ ಕಾರ್ಯಗಳನ್ನು ಕೈಗೊಳ್ಳುವ ವಿಧಾನ.
  5. GOST R 15.201-20-00. ಉತ್ಪಾದನೆಯಲ್ಲಿ ಉತ್ಪನ್ನಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ಮತ್ತು ಪ್ರಾರಂಭಿಸುವ ವ್ಯವಸ್ಥೆ. ಕೈಗಾರಿಕಾ ಮತ್ತು ತಾಂತ್ರಿಕ ಉದ್ದೇಶಗಳಿಗಾಗಿ ಉತ್ಪನ್ನಗಳು. ಉತ್ಪನ್ನಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ಮತ್ತು ಉತ್ಪಾದನೆಗೆ ಹಾಕುವ ವಿಧಾನ.

ಆಧುನಿಕ ಸಾಧನಗಳಲ್ಲಿ FPGA ಗಳನ್ನು ಬಳಸುವುದು

ತುಪಿಕೋವ್ ಪಾವೆಲ್ ಆಂಡ್ರೆವಿಚ್

5 ನೇ ವರ್ಷದ ವಿದ್ಯಾರ್ಥಿ, ART ಇಲಾಖೆ, ಓಮ್ಸ್ಕ್ ಸ್ಟೇಟ್ ಟೆಕ್ನಿಕಲ್ ಯೂನಿವರ್ಸಿಟಿ, ರಷ್ಯನ್ ಒಕ್ಕೂಟ, ಓಮ್ಸ್ಕ್

ಇಂದು, ಪ್ರೊಗ್ರಾಮೆಬಲ್ ಲಾಜಿಕ್ ಇಂಟಿಗ್ರೇಟೆಡ್ ಸರ್ಕ್ಯೂಟ್‌ಗಳನ್ನು (ಎಫ್‌ಪಿಜಿಎ) ವಿವಿಧ ಆಧುನಿಕ ಸಾಧನಗಳಲ್ಲಿ ಹೆಚ್ಚಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ, ಸಾಂಪ್ರದಾಯಿಕ ಡಿಜಿಟಲ್ ಚಿಪ್‌ಗಳಿಗಿಂತ ಎಫ್‌ಪಿಜಿಎಗಳು ಗಮನಾರ್ಹ ಪ್ರಯೋಜನಗಳನ್ನು ಹೊಂದಿವೆ. ಈ ಅನುಕೂಲಗಳು ಸೇರಿವೆ:

· ಉತ್ಪನ್ನದ ತಾತ್ಕಾಲಿಕ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಸುಧಾರಿಸಲಾಗಿದೆ.

· ಉತ್ಪನ್ನದ ಬೆಲೆ ಕಡಿಮೆಯಾಗುತ್ತದೆ.

· ಉತ್ಪನ್ನದ ಆಯಾಮಗಳು ಕಡಿಮೆಯಾಗುತ್ತವೆ.

· ಉತ್ಪನ್ನದ ವಿಶ್ವಾಸಾರ್ಹತೆ ಹೆಚ್ಚಾಗುತ್ತದೆ (ವಿವಿಧ ಚಿಪ್ಸ್ ಸಂಖ್ಯೆ ಕಡಿಮೆಯಾಗುತ್ತದೆ)

ಉತ್ಪನ್ನ ನಮ್ಯತೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ (ಎಫ್‌ಪಿಜಿಎಗಳನ್ನು ಯಾವಾಗಲೂ ರಿಪ್ರೊಗ್ರಾಮ್ ಮಾಡಬಹುದು)

FPGA ಆರ್ಕಿಟೆಕ್ಚರ್ ಸಂಕೀರ್ಣ ರಚನೆಯನ್ನು ಹೊಂದಿದೆ (ಚಿತ್ರ 1)

ಚಿತ್ರ 1. FPGA ಯ ಆಂತರಿಕ ರಚನೆ

ಚಿತ್ರ 1 ರಿಂದ ನೋಡಬಹುದಾದಂತೆ, ಎಫ್‌ಪಿಜಿಎಯ ಮುಖ್ಯ ಭಾಗವು ಪ್ರೊಗ್ರಾಮೆಬಲ್ ಲಾಜಿಕ್ ಬ್ಲಾಕ್‌ಗಳು ಮತ್ತು ಪ್ರೊಗ್ರಾಮೆಬಲ್ ಆಂತರಿಕ ಸಂಪರ್ಕಗಳನ್ನು ಒಳಗೊಂಡಿದೆ.

FPGA ಯ ಪ್ರೋಗ್ರಾಮಿಂಗ್ (ಫರ್ಮ್‌ವೇರ್) ಪ್ರಕ್ರಿಯೆಯು ಸಾಧನದ ಒಳಹರಿವು ಮತ್ತು ಔಟ್‌ಪುಟ್‌ಗಳ ನಡುವೆ ಅಗತ್ಯ ಸಂಪರ್ಕಗಳನ್ನು ರೂಪಿಸುವುದನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ.

ಇಂದು FPGA ಗಳ ಉತ್ಪಾದನೆಯಲ್ಲಿ ಇಬ್ಬರು ವಿಶ್ವ ನಾಯಕರು ಇದ್ದಾರೆ. ಇವು ಅಮೇರಿಕನ್ ಕಂಪನಿಗಳು Xilinx ಮತ್ತು Altera.

ಪ್ರತಿ ಕಂಪನಿಯು FPGAಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ತನ್ನದೇ ಆದ CAD ಸಾಫ್ಟ್‌ವೇರ್ ಅನ್ನು ನೀಡುತ್ತದೆ. Xilinx Xilinx ಸಾಫ್ಟ್‌ವೇರ್ ಡೆವಲಪ್‌ಮೆಂಟ್ ಕಿಟ್ (SDK) ಅನ್ನು ನೀಡುತ್ತದೆ. ಆಲ್ಟೆರಾ ಮ್ಯಾಕ್ಸ್+ಪ್ಲಸ್ II ಮತ್ತು ಕ್ವಾರ್ಟಸ್ II, ಹಾಗೆಯೇ ಮಾಡೆಲ್‌ಸಿಮ್ ಮಾಡೆಲಿಂಗ್ ವ್ಯವಸ್ಥೆಯನ್ನು ನೀಡುತ್ತದೆ.

ಫರ್ಮ್‌ವೇರ್ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ರಚಿಸಲು, ಹಾರ್ಡ್‌ವೇರ್ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ವಿವರಿಸುವ ಭಾಷೆಗಳನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ; ಇಂದು ಸಾಮಾನ್ಯ ಭಾಷೆಗಳು ಈ ಕೆಳಗಿನಂತಿವೆ:

ವೆರಿಲೋಗ್ ಎಚ್ಡಿಎಲ್.

VHDL ಭಾಷೆ ಕಲಿಯಲು ಅತ್ಯಂತ ಕಷ್ಟಕರವಾಗಿದೆ, ಆದರೆ ಅದೇ ಸಮಯದಲ್ಲಿ ಇದು ಅಮೂರ್ತತೆಯ ಕ್ರಿಯಾತ್ಮಕ ಮತ್ತು ನಡವಳಿಕೆಯ ಮಟ್ಟಗಳಲ್ಲಿ ಹೆಚ್ಚಿನ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಹೊಂದಿದೆ, ಆದರೆ ವೆರಿಲಾಗ್ HDL ಗೆ ಹೋಲಿಸಿದರೆ ಅಮೂರ್ತತೆಯ ರಚನಾತ್ಮಕ ಮಟ್ಟದಲ್ಲಿ ಕಡಿಮೆ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಹೊಂದಿದೆ; VITAL ಲೈಬ್ರರಿಯನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗಿದೆ VHDL ಭಾಷೆಯ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ವಿಸ್ತರಿಸಿ (Fig. 2).


ಚಿತ್ರ 2. ಅಮೂರ್ತತೆಯ ಮಟ್ಟಗಳು ವೆರಿಲೋಗ್ ಮತ್ತು VHDL

ವೆರಿಲಾಗ್ ಎಚ್‌ಡಿಎಲ್ ಭಾಷೆಯ ಕೆಲಸದ ಉದಾಹರಣೆಯೆಂದರೆ ಮಿನಿ-ಡಿಲ್ಯಾಬ್ ಸ್ಟ್ಯಾಂಡ್‌ನ ಎಫ್‌ಪಿಜಿಎ ಸೈಕ್ಲೋನ್ III ಇಪಿ3ಸಿ5ಇ1444 ಸಿ8ಎನ್‌ನಲ್ಲಿ ಅಳವಡಿಸಲಾದ ಪ್ರೋಗ್ರಾಂ, ಇದರ ಸಾಮಾನ್ಯ ನೋಟವನ್ನು ಅಂಜೂರದಲ್ಲಿ ತೋರಿಸಲಾಗಿದೆ. 3.


ಚಿತ್ರ 3. ಮಂಡಳಿಯ ಸಾಮಾನ್ಯ ನೋಟ ಮಿನಿ - ದಿಲ್ಯಾಬ್

ಈ ಪ್ರೋಗ್ರಾಂ led0-led7 LED ಗಳ ಅನುಕ್ರಮ ಸ್ವಿಚಿಂಗ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ, pba ಮತ್ತು pbb ಬಟನ್‌ಗಳನ್ನು ಬಳಸಿಕೊಂಡು "ಬೆಳಕಿನ" ಚಲನೆಯನ್ನು ಹೆಚ್ಚಿಸುವ ಆಯ್ಕೆಯೊಂದಿಗೆ, ಹಾಗೆಯೇ sw0, sw1 ಸ್ವಿಚ್‌ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಸ್ವಿಚಿಂಗ್ ವೇಗವನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ.

//ಕಾರ್ಯಕ್ರಮದ ಪಠ್ಯ

ಘಟಕಯೋಜನೆ ( ಔಟ್ಪುಟ್ಎಲ್ ಇ ಡಿ, ಇನ್ಪುಟ್ clk_25mhz, ಇನ್ಪುಟ್ pba ಇನ್ಪುಟ್ pbb

ಇನ್ಪುಟ್ sw);

// ಆಂತರಿಕ ಯೋಜನೆಯ ಸಂಪರ್ಕಗಳ ಉದ್ದೇಶ

ತಂತಿ s1;

ತಂತಿ s2;

ತಂತಿ s3;

// ಯೋಜನೆಗೆ ಸಂಪರ್ಕಗೊಂಡಿರುವ ಇತರ ಫೈಲ್‌ಗಳಿಗೆ (ಸಬ್ರೂಟಿನ್‌ಗಳು) ಕರೆ ಮಾಡಿ

Tr tr_1 (.out(s2), .set(pba), .res(pbb));

ಕೌಂಟರ್ ಕೌಂಟರ್_1 (.q(s1), .clk(clk_25mhz), .up(s2));

Mx mx_1 (.a(s3), .in(s1), .load(sw));

Dc3_8 dc3_8_1 (.out(led), .in(s3));

ಎಂಡ್ ಮಾಡ್ಯೂಲ್// ಕಾರ್ಯಕ್ರಮದ ಅಂತ್ಯ

ಸಬ್ರುಟೀನ್ ಟಿಆರ್

ಘಟಕ tr (ಔಟ್, ಸೆಟ್, ರೆಸ್); // ಪ್ರೋಗ್ರಾಂ ರಚಿಸಿ

// ಒಳಹರಿವು/ಔಟ್‌ಪುಟ್‌ಗಳ ನಿಯೋಜನೆ

ಔಟ್ಪುಟ್ರೆಗ್ಹೊರಗೆ;

ಇನ್ಪುಟ್ಸೆಟ್;

ಇನ್ಪುಟ್ರೆಸ್;

// ಪ್ರಾರಂಭ

ಆರಂಭಿಕ

ಆರಂಭಿಸಲು

ಔಟ್<= 1"d0;

// ಮುಖ್ಯ ಪ್ರೋಗ್ರಾಂ ಕೋಡ್

ಯಾವಾಗಲೂ @(ನೆಗೆಜ್ಸೆಟ್ ಅಥವಾ ನೆಗೆಜ್ರೆಸ್)

ಆರಂಭಿಸಲು

ಒಂದು ವೇಳೆ(~(ಸೆಟ್))

ಔಟ್<= 1"d1;

ಬೇರೆ

ಔಟ್<= 1"d0;

ಎಂಡ್ ಮಾಡ್ಯೂಲ್ //ಕಾರ್ಯಕ್ರಮದ ಅಂತ್ಯ

ಸಬ್ರುಟೀನ್ ಕೌಂಟರ್

ಘಟಕಕೌಂಟರ್ (ಕಾನ್, ಕ್ಯೂ, ಕ್ಲೆಕ್, ಅಪ್); // ಕಾರ್ಯಕ್ರಮದ ಪ್ರಾರಂಭ

ಔಟ್ಪುಟ್ರೆಗ್ಕಾನ್;

ಔಟ್ಪುಟ್ q = ಕಾನ್;

ಇನ್ಪುಟ್ಅಪ್, clk;

// ಮುಖ್ಯ ಪ್ರೋಗ್ರಾಂ ಕೋಡ್

ಯಾವಾಗಲೂ @(ಭಂಗಿ clk)

ಆರಂಭಿಸಲು

ಒಂದು ವೇಳೆ(clk)

ಒಂದು ವೇಳೆ(ಮೇಲಕ್ಕೆ)

ಕಾನ್<= con - 1"d1;

ಬೇರೆ

ಕಾನ್<= con + 1"d1;

ಎಂಡ್ ಮಾಡ್ಯೂಲ್//ಕಾರ್ಯಕ್ರಮದ ಅಂತ್ಯ

ಸಬ್ರುಟೀನ್ mx(ಮಲ್ಟಿಪ್ಲೆಕ್ಸರ್)

ಘಟಕ mx ( ಔಟ್ಪುಟ್ ರೆಗ್ a, ಇನ್ಪುಟ್ಒಳಗೆ, ಇನ್ಪುಟ್ಲೋಡ್);

// ಮುಖ್ಯ ಪ್ರೋಗ್ರಾಂ ಕೋಡ್

ಯಾವಾಗಲೂ @*

ಆರಂಭಿಸಲು

ಪ್ರಕರಣ(ಲೋಡ್)

2"b00: a = in;

2"b01: a = in;

2"b10: a = in;

2"b11: a = in;

ಎಂಡ್ಕೇಸ್

ಎಂಡ್ ಮಾಡ್ಯೂಲ್ // ಕಾರ್ಯಕ್ರಮದ ಅಂತ್ಯ

ಸಬ್ರುಟೀನ್ dc3_8 (ಮಲ್ಟಿಪ್ಲೆಕ್ಸರ್)

ಘಟಕ dc3_8(ಔಟ್, ಇನ್); // ಕಾರ್ಯಕ್ರಮದ ಪ್ರಾರಂಭ

// ಒಳಹರಿವು/ಔಟ್‌ಪುಟ್‌ಗಳ ನಿಯೋಜನೆ

ಔಟ್ಪುಟ್ ರೆಗ್ಹೊರಗೆ;

ಇನ್ಪುಟ್ ತಂತಿರಲ್ಲಿ;

// ಮುಖ್ಯ ಪ್ರೋಗ್ರಾಂ ಕೋಡ್

ಯಾವಾಗಲೂ @*

ಆರಂಭಿಸಲು

ಪ್ರಕರಣ(ಇನ್)

3"d0: ಔಟ್ = 8"b11111110;

3"d1: ಔಟ್ = 8"b11111101;

3"d2: ಔಟ್ = 8"b11111011;

3"d3: ಔಟ್ = 8"b11110111;

3"d4: ಔಟ್ = 8"b11101111;

3"d5: ಔಟ್ = 8"b11011111;

3"d6: ಔಟ್ = 8"b10111111;

3"d7: ಔಟ್ = 8"b01111111;

ಎಂಡ್ಕೇಸ್

ಎಂಡ್ ಮಾಡ್ಯೂಲ್ // ಕಾರ್ಯಕ್ರಮದ ಅಂತ್ಯ

ಕಾರ್ಯಕ್ರಮವನ್ನು ಕ್ವಾರ್ಟಸ್ II CAD ಸಾಫ್ಟ್‌ವೇರ್‌ನಲ್ಲಿ ಅಳವಡಿಸಲಾಗಿದೆ.

ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಕಂಪೈಲ್ ಮಾಡಿದ ನಂತರ, ಕಂಪೈಲರ್ ಪ್ರೋಗ್ರಾಂನ ವಿಶ್ಲೇಷಣೆ ಮತ್ತು ಸಿಂಟ್ಯಾಕ್ಸ್ಗೆ ಸಂಬಂಧಿಸಿದ ಪ್ರೋಗ್ರಾಂನಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಕಾಮೆಂಟ್ಗಳನ್ನು ರಚಿಸಲಿಲ್ಲ (ಚಿತ್ರ 4).


ಚಿತ್ರ 4. ಪ್ರಾಜೆಕ್ಟ್ ಸಂದೇಶ ವಿಂಡೋ

ಕಂಪೈಲರ್ ಮಾಡಿದ ಕಾಮೆಂಟ್‌ಗಳು ಕ್ವಾರ್ಟಸ್ II ಗೆ ಯಾವುದೇ ಪರವಾನಗಿ ಇಲ್ಲ (ಪ್ರೋಗ್ರಾಂನ ಉಚಿತ ಆವೃತ್ತಿಯನ್ನು ತರಬೇತಿಗಾಗಿ ಬಳಸಲಾಗಿದೆ) ಮತ್ತು ಯೋಜನೆಯನ್ನು ಮಾಡೆಲಿಂಗ್ ಮಾಡಲು ಅಗತ್ಯವಾದ ಫೈಲ್‌ಗಳ ಅನುಪಸ್ಥಿತಿಯನ್ನು ಸೂಚಿಸುತ್ತದೆ.

RTL ಈ ಯೋಜನೆಯ ರಚನೆಯನ್ನು ಅಂಜೂರದಲ್ಲಿ ತೋರಿಸಲಾಗಿದೆ. 5.


ಚಿತ್ರ 5. ಯೋಜನೆಯ ಅನುಷ್ಠಾನ ( RTL ರಚನೆ)

ಅಂಜೂರದಲ್ಲಿ ತೋರಿಸಿರುವಂತೆ. 6 ಈ ಪ್ರೋಗ್ರಾಂನಲ್ಲಿ ಈ FPGA ಯ ಸಾಮರ್ಥ್ಯಗಳ ಒಂದು ಸಣ್ಣ ಭಾಗವನ್ನು ಮಾತ್ರ ಬಳಸಲಾಗುತ್ತದೆ.

ಚಿತ್ರ 6. ಯೋಜನೆಯಲ್ಲಿ ಒಳಗೊಂಡಿರುವ FPGA ಯ ಭಾಗ

ತೀರ್ಮಾನಗಳು:ಪ್ರೋಗ್ರಾಮೆಬಲ್ ಲಾಜಿಕ್ ಇಂಟಿಗ್ರೇಟೆಡ್ ಸರ್ಕ್ಯೂಟ್‌ಗಳನ್ನು ಅನೇಕ ಸಾಧನಗಳಲ್ಲಿ ಬಳಸಬಹುದು. ಅವರೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಕಲಿಯಲು, ಎಲೆಕ್ಟ್ರಾನಿಕ್ ಉಪಕರಣಗಳ ವಿನ್ಯಾಸ ಮತ್ತು ನಿರ್ಮಾಣಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ವಿಶೇಷತೆಗಳ ಶೈಕ್ಷಣಿಕ ಕಾರ್ಯಕ್ರಮದಲ್ಲಿ ಹಾರ್ಡ್‌ವೇರ್ ವಿವರಣೆ ಭಾಷೆಗಳ (ವೆರಿಲೋಗ್ ಎಚ್‌ಡಿಎಲ್ ಮತ್ತು ವಿಎಚ್‌ಡಿಎಲ್) ಪರಿಚಿತತೆಯನ್ನು ಪರಿಚಯಿಸಬೇಕು.

ಗ್ರಂಥಸೂಚಿ:

1. ಗ್ರುಶೆವಿಟ್ಸ್ಕಿ ಆರ್.ಐ. ಪ್ರೋಗ್ರಾಂ ಲಾಜಿಕ್ ಚಿಪ್ಸ್ / R.I ನಲ್ಲಿ ಸಿಸ್ಟಮ್ಗಳ ವಿನ್ಯಾಸ. ಗ್ರುಶೆವಿಟ್ಸ್ಕಿ, A.X. ಮುರ್ಸೇವ್, ಇ.ಪಿ. ಕತ್ತಲೆಯಾದ. ಸೇಂಟ್ ಪೀಟರ್ಸ್ಬರ್ಗ್: BHV ಪೀಟರ್ಸ್ಬರ್ಗ್, 2002. - 608 ಪು.

2. ಕೊಲೊಮೊವ್ ಡಿ.ಎ. Altra MAX+plus II ಮತ್ತು ಕ್ವಾರ್ಟಸ್ II ಕಂಪ್ಯೂಟರ್ ನೆರವಿನ ವಿನ್ಯಾಸ ವ್ಯವಸ್ಥೆಗಳು. ಸಂಕ್ಷಿಪ್ತ ವಿವರಣೆ ಮತ್ತು ಟ್ಯುಟೋರಿಯಲ್ / ಡಿ.ಎ. ಕೊಲೊಮೊವ್, ಆರ್.ಎ. ಮೈಲ್ಕ್, ಎ.ಎ. ಝೋಬೆಂಕೊ, ಎ.ಎಸ್. ಫಿಲಿಪ್ಪೋವ್. ಎಂ.: IP ರೇಡಿಯೊಸಾಫ್ಟ್, 2002. - 126 ಪು.

3. ಎಫ್‌ಪಿಜಿಎಯಲ್ಲಿ ಮ್ಯಾಕ್ಸ್‌ಫೀಲ್ಡ್ ಕೆ. ವಿನ್ಯಾಸ. ಯುವ ಹೋರಾಟಗಾರನಿಗೆ ಕೋರ್ಸ್./ ಕೆ. ಮ್ಯಾಕ್ಸ್‌ಫೀಲ್ಡ್. ಎಂ.: ಪಬ್ಲಿಷಿಂಗ್ ಹೌಸ್ "ಡೋಡೆಕಾ-XXI", 2007. - 408 ಪು. (ಇಂಗ್ಲಿಷ್ ನಿಂದ ಅನುವಾದ).