พอร์ทัลใหม่และการวิเคราะห์ "ชั่วโมงของอุปกรณ์อิเล็กทรอนิกส์" วิธีตั้งโปรแกรม FPGA บน SystemVerilog ใช้การออกแบบโปรเจ็กต์ fpga ที่ยอดเยี่ยม

โกลอฟนา / Korisne PZ

65 นาโนเมตร - เมตาที่น่ารังเกียจของโรงงาน Zelenograd "Angstrem-T" ด้วยราคา 300-350 ล้านยูโร องค์กรได้ยื่นคำขอถอนเงินกู้นำร่องเพื่อความทันสมัยของเทคโนโลยีการผลิตไปยัง Zovnishekonombank (ZEB) ซึ่งเรียกว่า Vidomosti ซึ่งถูกส่งไปยังหัวหน้าเพื่อประโยชน์ของผู้อำนวยการโรงงาน Leonid Reiman ในขณะเดียวกัน Angstrem-T ก็พร้อมที่จะเปิดตัวสายการผลิตไมโครเซอร์กิตจากโทโพโลยีขนาด 90 นาโนเมตร จ่ายเงินกู้ครั้งสุดท้ายให้กับ WEBU ซึ่งได้รับรางวัลจากการอาบน้ำเพื่อเติบโตในกลางปี ​​​​2560

ปักกิ่งถล่มวอลล์สตรีท

ดัชนีที่สำคัญของอเมริกาถือเป็นวันแรกของ New Rock ที่มีสถิติตกต่ำ มหาเศรษฐี George Soros ได้แซงหน้าบรรดาผู้ที่อยู่ในภาวะตื่นตัวสำหรับการเกิดซ้ำของวิกฤตการณ์หินในปี 2008

โปรเซสเซอร์รัสเซียตัวแรก Baikal-T1 ในราคา 60 ดอลลาร์เปิดตัวในการผลิตจำนวนมาก

บริษัท "Baikal Electronics" เมื่อต้นปี 2559 ประกาศเปิดตัวโปรเซสเซอร์ Baikal-T1 ของรัสเซียในราคาประมาณ 60 ดอลลาร์ สิ่งที่แนบมาจะเป็นแม่ที่จะดื่มราวกับว่ารัฐจะดื่มผู้เข้าร่วมของตลาดดูเหมือนจะเป็น

MTS และ Ericsson จะขยายและใช้งาน 5G ในรัสเซียพร้อมกัน

PJSC "Mobile TeleSystems" และ บริษัท Ericsson ได้วางรากฐานสำหรับ spivpratsy ในแกลเลอรีและส่งเสริมเทคโนโลยี 5G ในรัสเซีย ในโครงการนำร่อง ในช่วงเวลาทำการของ ES-2018 MTS อาจประท้วงการพัฒนาผู้ขายชาวสวีเดน ท่ามกลางชะตากรรมที่น่ารังเกียจ ผู้ดำเนินการมีการเจรจา rozpochne จากกระทรวงคมนาคมและการจัดหาการสนับสนุนทางเทคนิคให้กับการสื่อสารเคลื่อนที่รุ่นที่ห้า

Sergiy Chemezov: Rostec เป็นหนึ่งในสิบบริษัทผลิตเครื่องจักรที่ใหญ่ที่สุดในโลก

หัวหน้า Rostec Sergii Chemezov ใน іnterva'yu RBC Vidpoviv บน Goster Pannnya: เกี่ยวกับระบบ Plato, ปัญหาของ AvtoVAZ, INNITERES ของ MARMBISHICHA, ROZPOVIV เกี่ยวกับเหมืองของ St. ชั่วโมง

Rostec "zagorodzhuetsya" และปล้นชิงเกียรติยศของ Samsung และ General Electric

Naglyadova Rada แห่ง Rostec อนุมัติกลยุทธ์การพัฒนาจนถึงปี 2025 งานหลักคือการเพิ่มส่วนหนึ่งของผลิตภัณฑ์โยธาที่มีเทคโนโลยีสูง และติดตาม General Electric และ Samsung สำหรับตัวชี้วัดทางการเงินที่สำคัญ

PLIS (Programmed Logical Integrated Circuit) - วงจรรวมที่รู้จักในการกระตุ้นภาษาดิจิทัลพร้อมคำอธิบายเกี่ยวกับการเขียนโปรแกรมพิเศษของฉัน มิฉะนั้น ดูเหมือนว่า FPGA จะเป็นชิพ เป็นการดีที่จะแก้แค้นด้วยตัวคุณเองสำหรับองค์ประกอบมากมายบน 74HCxx kshtalt ชอบมากที่สุดจะเป็นองค์ประกอบเชิงตรรกะเช่นระหว่างพวกเขาจะมีการเชื่อมโยงและการเชื่อมโยงเหมือนจะเป็นแบบแผน zvishnіshnіm svіtom, ระบุไว้ในขั้นตอนการเขียนโปรแกรม FPGA

บันทึก:สำหรับตอนนี้ในภาษารัสเซีย ในวันนี้ คำว่า FPGA และ FPGA (Field-Programmable Gate Array, Programmed by Koristuvach Gate Matrix) ได้รับการยอมรับว่าใช้แทนกันได้ ซึ่งจะระบุไว้หลังข้อความ Prote varto รู้เกี่ยวกับพื้นฐานของจุดทางเลือกนั้นไปยังช่องว่าง zgidno กับ FPGA (FPGA) ใดๆ ก็ตาม - หนึ่งใน PLIS (PLD, Programmable Logic Device)

ข้อมูลพื้นฐานเกี่ยวกับ FPGA

สำหรับการเขียนโปรแกรม FPGA ภาษาคำอธิบายฮาร์ดแวร์ของภาพยนตร์ (HDL, ภาษาคำอธิบายฮาร์ดแวร์) จะถูกเขียนขึ้น ในหมู่พวกเขาที่นิยมมากที่สุดคือ Verilog (ภาษาถิ่นของโยคะนั้น รหัส SystemVerilog) เช่นเดียวกับ VHDL ภาพยนตร์มีเนื้อหาที่หลากหลาย แต่มีรูปแบบที่แตกต่างกันและรายละเอียดบางอย่างแตกต่างกัน เช่นเดียวกับที่ Verilog เป็นคำอธิบายของอุปกรณ์ในโลก C ดังนั้น VHDL จึงเป็น Pascal อย่างเห็นได้ชัด ค่อนข้างเป็นที่นิยมน้อยกว่า VHDL ไม่ค่อยได้รับความนิยม แต่อิงจากความสมบูรณ์ของ yogo เมื่อเทียบกับ Verilog ข้อดี 3 VHDL (มิฉะนั้นnedolіkіvซึ่งจามรี) สามารถเรียกได้ อย่างเคร่งครัด การพิมพ์แบบคงที่. บางครั้ง Verilog สามารถร่ายประเภทโดยปริยายได้ เพื่อดำเนินการต่อการเปรียบเทียบกับ C และ Pascal ภาพยนตร์ไม่แข็งแกร่งนักเพื่อไม่ให้ขุ่นเคือง

ในขณะนี้ ผู้สร้าง FPGA ชั้นนำ ได้แก่ Altera (ร่วมกับ Intel) และ Xilinx สำหรับข้อมูลของ dzherels ต่างๆ ทันทีที่กลิ่นเหม็นถูกควบคุมโดยอย่างน้อย 80% ของตลาด กรวดอีกสามชนิด ได้แก่ Actel (ซื้อโดย Microsemi), Lattice Semiconductor, Quicklogic และ SiliconBlue จากทางเข้า Xilinx คุณสามารถทำงานได้จากตรงกลางของช่องเปิดไปยัง Xilinx (เรียกว่า Vivado) และตรงกลางของช่องเปิดถึง Altra (เรียกว่า Quartus) สามารถทำได้จากตรงกลางช่องเปิดถึง Altera เท่านั้น . ดังนั้นการล็อกผู้ขายล่าสุด และเลือก FPGA เฉพาะสำหรับโครงการของคุณ คุณจะเลือกสิ่งนั้นโดยอัตโนมัติ การสนับสนุนทางเทคนิค, เอกสาร , ล้างซอฟต์แวร์ลิขสิทธิ์ , นโยบายวิธีการสมัครขอรับการสนับสนุน , แล้ว

FPGA ส่วนใหญ่มักจะ zastosovuyut ที่ zavdannyah, deyaki deyaki ต้องการเร่งการคำนวณให้เร็วขึ้นโดยตระหนักว่าอยู่ที่ประตู ตัวอย่างเช่น FPGA ใช้กันอย่างแพร่หลายในด้านการประมวลผลสัญญาณ เช่น ในออสซิลโลสโคป เครื่องวิเคราะห์สเปกตรัม เครื่องวิเคราะห์ลอจิก เครื่องกำเนิดสัญญาณ วิทยุที่กำหนดโดยซอฟต์แวร์ และจอภาพอื่นๆ Zokrema, LimeSDR vikoristovuetsya Altera Cyclone IV และในออสซิลโลสโคป Rigol DS1054Z ราคา Xilinx Spartan-6 และ ProASIC 3 จาก Actel เพิ่มเติมจาก zastosuvan เกี่ยวกับyakіที่ฉันรู้สึก ฉันสามารถตั้งชื่อวิทยาการคอมพิวเตอร์ การจดจำภาพยนตร์และชีวสารสนเทศได้ Є y іnshіโครงการ การพัฒนาเว็บเซิร์ฟเวอร์และ DBMS ซึ่งทำงานบน FPGA เท่าที่ฉันรู้ เบียร์ทั้งหมดก็ยังล้นไปด้วยของทดลองอีกมากมาย

Xilinx ไค Altera?

ดูเหมือนว่าลินุกซ์ที่ดีที่สุดจะเหมือนกับกูรูลินุกซ์ที่คุณรู้จัก

กูรู FPGA ที่รู้จักกันดีของผม โดยเฉพาะ Dmitry Oleksyuk พอใจกับบอร์ดพัฒนา Arty Artix-7 เกือบทั้งหมดจาก Digilent FPGA ซึ่งชนะคือ Artix-7 ใน Xilinx Digilent เองไม่ได้ให้บริการจัดส่งไปยังรัสเซีย แต่มีให้ใน AliExpress หากคุณต้องการและมีสัญชาติพิเศษ (ราคาอย่างเป็นทางการคือ $ 99) คุณยังสามารถขายโยคะบนอีเบย์ได้อีกด้วย การจ่ายค่าธรรมเนียมแพงๆ นั้นคุ้มค่า แต่อย่างไรก็ตาม คุณต้องใช้เงินจำนวนมากพอสมควร

ข้อเท็จจริงสนุก!หากคุณต้องการเขียนโปรแกรมบน Verilog หรือ VHDL ดูเหมือนว่าคุณไม่จำเป็นต้องซื้อบอร์ด FPGA อย่างเคร่งครัด ที่ด้านหลัง คุณสามารถล้อมรอบตัวคุณด้วยเครื่องจำลอง โดยหุ่นยนต์จะถูกมองจากระยะไกล

W tsіkavih idiosyncrasiesการชำระเงินสามารถเรียกได้ว่าเป็นการขยายซ็อกเก็ตในลักษณะเดียวกับ Arduino-shields นอกจากนี้ ชุดอุปกรณ์ที่มีบอร์ดยังมีแท็บ ซึ่งคุณสามารถถอดใบอนุญาตสำหรับ Vivado ซึ่งแสดงความเป็นไปได้ทั้งหมด ใบอนุญาตมีอายุหนึ่งวันนับจากวันที่เปิดใช้งาน และยังผูกไว้กับคอมพิวเตอร์หนึ่งเครื่องต่อ OS และที่อยู่ MAC

เมื่อส่งมอบ. ฉันรู้สึกว่าไฟล์แนบ FPGA บนเครื่องมีโอกาสสูงที่จะไม่ผ่านการทดสอบ ร้านค้าใน AliExpress ซึ่งส่งไปยังประเทศอื่น ๆ ชำระเงินไปยังรัสเซียผ่านบริการจัดส่งของ SPSR สำหรับการผ่าน mitnitsa จำเป็นต้องกรอกแบบฟอร์มออนไลน์พร้อมข้อมูลหนังสือเดินทาง (เฉพาะข้อมูลไม่มีรูปถ่าย) และ โทรศัพท์ติดต่อเราจะช่วยให้กฎหมายของรัสเซียแม่นยำยิ่งขึ้นได้อย่างไร วันรุ่งขึ้น คนส่งเงินส่งเงินไปที่ประตูโดยไม่มีอาหาร

ติดตั้ง Vivado

สภาพแวดล้อมการแจกจ่าย Vivado สามารถซื้อได้ที่เว็บไซต์ Xilinx เตรียมความพร้อมด้านจิตใจก่อนทำการลงทะเบียนและกรอกแบบฟอร์มรายงานตัวก่อนนัดหมาย เก็บถาวรภายใต้ชื่อ Vivado HLx 2017.2: ดาวน์โหลดไฟล์ Single-File ของตัวติดตั้งระบบปฏิบัติการทั้งหมด อย่าสับสนระหว่าง vipadkovo กับ Vivado Lab Solutions ที่ถูกกล่าวหา เพราะไม่ใช่สิ่งที่คุณต้องการ ไฟล์เก็บถาวรควรมีขนาดเกิน 20 GB ดังนั้นโปรดอดใจรอ

คลายไฟล์เก็บถาวร เรียกใช้ตัวติดตั้ง เราใส่ Vivado HL System Edition เวอร์ชันใหม่ของเงินกู้อยู่ในดิสก์ 47 GB ฉันยกเลิกการเลือกช่องทำเครื่องหมาย Software Development Kit โดยเฉพาะ และสนับสนุนส่วนเสริม 7 Series เท่านั้น ซึ่งเปลี่ยนขนาดเป็น 12 GB ก้าวไปข้างหน้าสองสามก้าวฉันจะบอกว่าการกำหนดค่าดังกล่าวค่อนข้างเพียงพอ

ก่อนเปิดตัว Vivado จำเป็นต้องเพิ่ม Arty Artix-7 ในการสนับสนุนใหม่ เพราะฉันไม่รู้อะไรเกี่ยวกับบอร์ดนี้มาก่อนเลย ดังก้องเช่นนี้:

cd ~/ opt/ xilinx/ Vivado/ 2017.2 / data/ boards/ board_files
wget https:// github.com/ Digilent/ vivado-boards/ archive/ master.zip
เปิดเครื่องรูด master.zip
mv vivado-boards-master/new/board_files/*./
rm -r vivado-boards-master
rmmaster.zip

นอกจากนี้ ให้นำไฟล์ Arty_Master.xdc ไปไว้ที่ใดที่หนึ่ง ไวน์เป็นสิ่งจำเป็นเพิ่มเติม ไฟล์นี้มีคำอธิบายเกี่ยวกับแหล่งกำเนิดแสง สวิตช์ และอื่นๆ มันจะไม่ง่ายเลยที่จะกะพริบด้วยไดโอดแสงบน Verilog หากไม่มีตัวใหม่

โครงการแรกบน SystemVerilog

Vivado กล่าวว่า File → New Project ... ตามประเภทโครงการ ให้เลือกโครงการ RTL ทำเครื่องหมายที่ช่อง ไม่ต้องระบุแหล่งที่มา ในขณะนี้ สำหรับ dialos ทางเลือกของประเภทการชำระเงินเป็นที่รู้จักในรายการ Arty

เราจะเพิ่มข้อเสนอโครงการก่อนไฟล์ XDC คัดลอกโยคะไปยังแคตตาล็อกจากโครงการ จากนั้นเราจะบอกว่าไฟล์ → เพิ่มแหล่งที่มา… → เพิ่มหรือสร้างข้อจำกัด → เพิ่มไฟล์ เรารู้สำเนาของไฟล์หรือเสร็จสิ้น โครงสร้างไฟล์ของโปรเจ็กต์ (แหล่งที่มา) ของกลุ่มข้อจำกัดจะมีไฟล์ Arty_Master.xdc มิฉะนั้น จะมีการตั้งชื่อสำเนาไว้ที่นั่น คุณสามารถดูและแสดงความคิดเห็นในทุกแถวในกลุ่ม สัญญาณนาฬิกา สวิตช์และไฟ LED

ต่อไป เราพูดว่า ไฟล์ → เพิ่มแหล่งที่มา… → เพิ่มหรือสร้างแหล่งที่มาของการออกแบบ → สร้างไฟล์ สำหรับประเภทไฟล์ ให้เลือก SystemVerilog ในชื่อไฟล์ ให้ป้อนตัวอักษรสวัสดี เราว่าจบ ถัดไป กล่องโต้ตอบกำหนดโมดูลจะปรากฏขึ้น ซึ่งแจ้งให้คุณคลิกที่อินเทอร์เฟซของโมดูล บทสนทนาเพื่อจบเครื่องหมายให้กับผู้ที่ประสบความสำเร็จมากที่สุดในการเขียนโดยตรงในรหัสจึงนูนยกเลิก

ที่ต้นไม้แห่ง vih_dniki เรารู้ ไฟล์ใหม่ hello.sv จะอยู่ในกลุ่ม Design Sources มาดูและเขียนโค้ดต่อไปนี้กัน:

`มาตราส่วนเวลา 1ns/1ps

โมดูล สวัสดี (
อินพุตลอจิก CLK100MHZ,
ตรรกะอินพุต [3:0] sw,
ลอจิกเอาต์พุต [ 3 : 0] led
) ;

เสมอ@(วาง CLK100MHZ)
เริ่ม
ถ้า (sw[0] == 0)
เริ่ม
นำ<= 4"b0001 ;
จบ
อื่น
เริ่ม
นำ<= 4"b0000 ;
จบ
จบ

โมดูลปลาย

หากทุกอย่างลงตัวแล้ว Vivado ระยะใดที่คุณจะมีลักษณะเช่นนี้ (คลิกได้, PNG, 71 Kb):

การรวบรวมโปรแกรมเกิดขึ้นในสองขั้นตอน - การสังเคราะห์และการนำไปใช้ ในขั้นตอนของการสังเคราะห์ โปรแกรมจะได้รับการแปลเป็นภาษานามธรรมจากลอจิกเกทและองค์ประกอบอื่นๆ ในขั้นตอนของการดำเนินการจะมีการตัดสินใจเกี่ยวกับวิธีการเย็บมีดหมอบนขนตาเฉพาะ

เรียกใช้การสังเคราะห์โดยพูดว่า Flow → Run Synthesis หรือเพียงแค่กด F11 ที่มุมบนขวา คุณจะเห็นการบ่งชี้ว่ากระบวนการกำลังทำงาน คุณอาจต้องใช้เวลามากในการดำเนินการ ทั้งนี้ขึ้นอยู่กับคอมพิวเตอร์ของคุณและความซับซ้อนของโปรแกรม บนแล็ปท็อปของฉัน การสังเคราะห์ที่เกิดจากโปรแกรมอื่นนั้นเสร็จสิ้นภายในสิบวินาทีใน 10 ตอนนี้ ถ้าคุณพูดว่า Flow → Open Synthesized Design คุณสามารถสร้างภาพเช่นนี้:

ชั่วโมงได้มาถึงแฟลชกระดานของเรา เราพูดว่า Flow → Run Imlementation จากนั้น Flow → Generate Bitstream เราเชื่อมต่อบอร์ดกับคอมพิวเตอร์ผ่าน USB Vivado กล่าวว่า Flow → Open Hardware Manager → Open target → Auto Connect →อุปกรณ์โปรแกรม คุณต้องระบุพาธไปยังไฟล์บิต วินของฉันเป็นแบบนี้:

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

เราว่าโปรแกรม ตอนนี้ไฟ LD4 อยู่บนบอร์ด ซึ่งหมายความว่าสวิตช์ SW0 ของการละเว้นเปิดอยู่ (div ฉันจะแสดงรูปถ่ายของบอร์ดให้คุณดู) ราวกับว่าสวิตช์ถูกยกขึ้น แสงไม่ควรไหม้ ชัดเจน แต่ "สวัสดีชาวโลก" คุณได้อะไร? :)

การจำลอง

การจำลองคือโค้ดเวอร์ชันเสมือนจริงบน Verilog หรือ VHDL บนคอมพิวเตอร์ของคุณโดยตรง โดยไม่ต้องใช้ PLICIT นี่เป็นเครื่องมือรายชั่วโมงและยืดหยุ่น และเป็นกรอบงานสำหรับครอบคลุมโค้ดด้วยการทดสอบ

เมื่อฉันรู้การจำลองก่อน สิ่งที่ฉันเปิดเผย มีคนที่ไม่ได้ผล บันทึกมีความเรียบง่าย:

ข้อผิดพลาด: ข้ามก่อนที่จะรวบรวมไฟล์ C ที่สร้าง [...]xsim_1.c.

Google z cієїขอโทษที่รู้ว่าเป็นเพียงnієїnіtnitsaในรูปแบบของ "ลองเปิดโปรแกรมป้องกันไวรัส" ในผลลัพธ์ ปัญหาได้รับการแก้ไขโดยการเพิ่ม ensign -v 2 ให้กับสคริปต์ ~/opt/xilinx/Vivado/2017.2/bin/xelab ฉันจะช่วยให้คุณรู้ว่า Clang ซึ่งเป็นเลขฐานสองของ Vivado กำลังดึงคุณตามไปด้วยความเมตตา:

/a/long/path/to/clang: เกิดข้อผิดพลาดขณะโหลดไลบรารีที่แชร์:
libncurses.so.5: ไม่สามารถเปิดไฟล์อ็อบเจ็กต์ที่แชร์ได้: ไม่มีไฟล์ดังกล่าวหรือ
ไดเรกทอรี

และการให้อภัยนี้มีอธิบายไว้แล้วใน Arch Wiki โดยเฉพาะอย่างยิ่ง ฉันเพิ่งคัดลอกไฟล์อ้างอิงจากไดเรกทอรี 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

... หลังจากที่ทุกอย่างเป็นไปด้วยดี Otzhe ตอนนี้ vlasne ตัวอย่างของการจำลอง

เมื่อเปรียบเทียบกับสิ่งนี้ เมื่อเราสร้าง hello.sv เราสร้างไฟล์ใหม่ hello_sim.sv ในกลุ่มแหล่งที่มาของการจำลอง เราเขียนรหัสถัดไปสำหรับไฟล์:

`มาตราส่วนเวลา 1ns/1ps

โมดูล hello_sim();
ตรรกะ clck_t;
ตรรกะ[3:0] sw_t;
ตรรกะ[3:0] led_t;

สวัสดี hello_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);

Sw_t<= 4"b0001 ; # 1 ; clck_t <= 1 ; # 1 ; clck_t <= 0 ; # 1 ;
ยืนยัน (led_t === 4"b0000);
จบ

โมดูลปลาย

คลิกขวาที่ไฟล์ในมุมมองแบบต้นไม้ เลือก Source Node Properties ในส่วน "ใช้แล้ว" ให้เลือกช่องทำเครื่องหมาย "การสังเคราะห์และการนำไปใช้" ฉันไม่ต้องการถ้าผู้ทดสอบที่นั่นเยาะเย้ยเรื่อง FPGA ของเราที่ห่างไกลจากมนุษย์?

ตอนนี้เราพูดว่า Flow → Run Simulation → Run Behavioral Simulation เป็นผลให้คุณจะได้รับบางอย่างเช่นแผนนี้:

คุณสามารถ bachiti ถ้า sw เท่ากับศูนย์ led จะเท่ากับ 1 และ navpak ณ จุดนี้ การเปลี่ยนแปลงทั้งหมดเกิดขึ้นที่ด้านหน้าของสัญญาณนาฬิกา ดูเหมือนว่าโปรแกรมทำงานอย่างถูกต้อง ไม่มีอะไรตกลงมาไม่ว่าจะเกิดอะไรขึ้น

วิสโนวอค

สามารถรับไฟล์เก็บถาวรกับโครงการที่อธิบายไว้ข้างต้นได้ ในฐานะแหล่งข้อมูลเพิ่มเติม ฉันขอแนะนำสองขั้นตอน:

  • ชอบให้คุณร้องเจี๊ยก ๆ รายละเอียดของห้องโถงให้ความเคารพ

การดำเนินโครงการบนFPGA

หลังจากการพัฒนาโครงร่างเชิงตรรกะด้วยแบบจำลองการทำงานที่แตกต่างกัน จำเป็นต้องวางลงบนคริสตัล จากนั้นเราจะจำลองวงจรด้วยการปรับปรุงส่วนควบขององค์ประกอบที่เกิดขึ้นจริง นำออกไปหลังจากวางวงจรบนคริสตัลแล้ว หากจำเป็น ให้แก้ไขวิธีแก้ไข หากมีเหตุผลสำหรับโครงการที่จะเข้าไปพัวพันกับ PLIS ก็ให้นำไปปฏิบัติบนอัฒจันทร์

ข้าว. 82.ขั้นตอนของการออกแบบส่วนเสริมดิจิทัลบน PLIS

ขั้นตอนหลักของการออกแบบ FPGA (พร้อมการบรรยาย):

    เลย์เอาต์ของไฟล์แนบกำลังได้รับการพัฒนาและป้อนลงใน XILINX

    การดำเนินการได้รับชัยชนะ (การแพร่ภาพ, การสร้างโครงร่างด้วยเส้นทางขององค์ประกอบห้องสมุด, การเพิ่มประสิทธิภาพ, การจัดวางบนคริสตัล)

    การเขียนโปรแกรม

  1. หน่วยความจำเชื่อมโยง องค์กร วิธีการเลือก บน vіdmіnu กับที่อยู่ za

การเข้าถึงแบบเชื่อมโยงใช้การค้นหาข้อมูลสำหรับสัญญาณบางอย่างและไม่ใช่สำหรับ її roztashuvannyam ในหน่วยความจำ (ด้วยที่อยู่หรือข้อความในใจ) ในเวอร์ชันล่าสุด คำทั้งหมดที่เก็บไว้ในหน่วยความจำจะถูกแปลงทันทีเป็นสัญญาณที่แยกแยะได้ ตัวอย่างเช่น ไปยังช่องของคำzbіg (แท็ก - เช่นแท็กคำภาษาอังกฤษ) ด้วยเครื่องหมายที่ได้รับจากอินพุต คำ (ที่อยู่แท็ก) คำพูดภายนอกดูเหมือนเป็นสัญญาณ วินัยในการเขียนคำและวินัยในการบันทึกข้อมูลใหม่อาจแตกต่างกัน พื้นที่หลักของการเก็บรักษาหน่วยความจำแบบเชื่อมโยงใน EOM สมัยใหม่คือหน่วยความจำของข้อมูล

ในเอกสารแนบที่เชื่อมโยงซึ่งจำได้ การค้นหาข้อมูลจะดำเนินการหลังเครื่องหมายเชื่อมโยง ซึ่งบันทึกไว้ในสกินของกล่องหน่วยความจำ

ที่ลงทะเบียนของหน้ากากมีการเขียนคำที่ช่วยให้คุณสามารถขอทุกอย่างหรือเฉพาะกับเครื่องหมายเชื่อมโยงบางประเภทเท่านั้น

การค้นหาข้อมูลจะดำเนินการคู่ขนานไปตามเส้นทางสายกลางทั้งหมดตามเครื่องหมายเชื่อมโยงของศูนย์ผิวหนัง

ผลลัพธ์ของการค้นหาเป็นรูปแบบการผสมผสานพิเศษที่สั่นสัญญาณที่บอกเกี่ยวกับจำนวนคำที่ทำให้จิตใจพอใจด้วยเรื่องตลกเกี่ยวกับการมีอยู่ของคำเพียงคำเดียวเกี่ยวกับการมีอยู่ของคำสองสามคำซึ่งอาจมีดังกล่าว เครื่องหมายเชื่อมโยง

หลังจากสร้างและประมวลผลสัญญาณแจ้งเตือนแล้ว วงจรควบคุมจะอ่านข้อมูลที่จำเป็น เมื่อทำการบันทึก ฉันรู้ตรงกลางที่ถูกต้องสำหรับหมวดหมู่การจ้างงาน ครั้งแรกที่ฉันพบตรงกลางด้านขวาสำหรับการบันทึกข้อมูล

การตรวจสอบประเภทการจ้างงานใหม่จะดำเนินการในขณะที่ทำการติดตั้งประเภทที่ n (หมวดการจ้างงาน) ของหน้ากาก เมื่อเปลี่ยนรูปแบบการรวมกันเพิ่มเติมในหน่วยความจำที่เชื่อมโยง คุณสามารถเลือกการดำเนินการทางตรรกะที่แตกต่างกัน เลือกจำนวนสูงสุดและต่ำสุด จำนวนคำ ซึ่งสามารถเป็นเครื่องหมายเชื่อมโยงเดียวกันเท่านั้น หน่วยความจำระดับกลางของไฟล์แนบที่เชื่อมโยงนั้นเกิดจากองค์ประกอบของหน่วยความจำแบบคงที่ ในหน่วยความจำที่เชื่อมโยงนั้น หน่วยความจำจะถูกดำเนินการจนกว่าตัวกลางทั้งหมดในคราวเดียว และจะไม่มีความผิดที่จะถูกขัดจังหวะด้วยวงจรการสร้างใหม่ หน่วยความจำเชื่อมโยงเป็นสิ่งที่พบได้บ่อยที่สุด แต่มีราคาแพงกว่าเพราะต้องมีการแนะนำรูปแบบการจัดตำแหน่งเพิ่มเติม ซึ่งช่วยให้คุณส่งคำขอหน่วยความจำกลางของสกินได้ ดังนั้น ความทรงจำดังกล่าวจึงฟังดูไม่บริสุทธิ์ แต่ความทรงจำที่เคลื่อนไหวเร็วอย่าง Kesh ฟังดูเหมือนมักจะเชื่อมโยงกัน

ที่เชื่อมโยงกันมากขึ้น ข้อมูลที่ถูกเก็บไว้ (FACM, Fully Associated Cache Memory) สกินตรงกลางรับข้อมูล และช่อง "tag" ซึ่งเป็นที่อยู่จริงของข้อมูล ซึ่งสำเนาของข้อมูลจะถูกบันทึกไว้ เมื่อใดก็ตามที่มีการแลกเปลี่ยนที่อยู่ทางกายภาพของข้อมูลที่ร้องขอ มันจะเปรียบเทียบกับฟิลด์ "แท็ก" ของตัวกลางทั้งหมด และเมื่อตัวเลขเปลี่ยนไป สัญญาณ Hit จะถูกตั้งค่าไว้ที่ตรงกลาง

เมื่ออ่านค่าของสัญญาณ Hit = 1 ข้อมูลจะถูกส่งไปยังบัสข้อมูลเพราะไม่มีหน่วยความจำ (Hit = 0) จากนั้นเมื่ออ่านจากหน่วยความจำหลักข้อมูลพร้อมที่อยู่จะถูกวางไว้ที่ ที่อยู่หรืออย่างอื่นที่ไม่ได้อ่านเป็นเวลานาน 'yati' หน่วยความจำแคช

เมื่อเขียนข้อมูลพร้อมกันด้วยที่อยู่ของโฟลเดอร์ ตามกฎแล้ว ข้อมูลเหล่านั้นจะถูกวางไว้ในหน่วยความจำแคช (โฟลเดอร์จะแสดงเมื่อ Hit = 1 และไม่ถูกต้องเมื่อ Hit = 0) การคัดลอกข้อมูลลงในหน่วยความจำหลักจะเสร็จสมบูรณ์ภายใต้การดูแลของตัวควบคุมพิเศษ หากไม่มีหน่วยความจำในหน่วยความจำ

ประเภทหน่วยความจำ FACM єแม้กระทั่งส่วนขยายที่พับได้และvikoristovuєtsyaสำหรับพื้นที่ขนาดเล็กเท่านั้นซึ่งเป็นอันดับหลักของการเพิ่มพิเศษ ในขณะเดียวกัน หน่วยความจำแคชประเภทนี้ให้ความยืดหยุ่นในการใช้งานมากที่สุดและที่อยู่ที่ไม่มีข้อขัดแย้ง ดังนั้นหากสามารถบันทึกข้อมูลเพียงชิ้นเดียวในคอมโบหน่วยความจำแคช

3 การบรรยาย:

ส่วนขยายที่เกี่ยวข้องที่ต้องจำ

อำนาจหลักคือระบบที่ระบบการเลือกข้อมูลจากพวกเขาไม่ได้จัดตั้งขึ้นสำหรับที่อยู่ข้อมูลเฉพาะ แต่สำหรับสัญญาณเป็นส่วนหนึ่งของข้อมูล shukano ตามความเป็นจริง

ข้อมูล

แท็กเป็นสัญลักษณ์ของเครื่องหมายสำหรับzbіg z yakim มีข้อมูลอยู่บ้าง

โครงร่างของการเชื่อมโยง RFP ได้ถูกทำให้ง่ายขึ้น:

พื้นที่เก็บข้อมูล - ระบุที่อยู่หน่วยความจำพร้อมหมายเลขกลาง รวบรวมข้อมูลและแท็ก

สำหรับการดึงข้อมูลไปยังหน่วยความจำที่เชื่อมโยงของรีจิสเตอร์ จดหมายของแท็กโจ๊กจะถูกลบออก รูปแบบการชำระเงิน zbіgถูกติดตั้งบนการลงทะเบียนzbіgіv, de zbіg tag จากหน่วยความจำจากที่โล่ง ปฏิกิริยาที่เป็นไปได้ (ไม่มีzbіgіv; єต้องการเพียงหนึ่งzbіg - สำหรับความรู้ประเภทใด ๆ ความรู้ตรงกลางควรอยู่ในการลงทะเบียนของข้อมูล หลาย zbіg - COP สามารถตัดสินใจได้ดังนั้นจึงเพียงพอสำหรับ กำลังประมวลผล).

Zastosuvannya: DB, ความรู้พื้นฐาน, PC จามรีแคช

ควรสังเกตว่าโปรเซสเซอร์เข้ามาแทนที่ความจำเป็นในการกรอกชุดคำสั่งชุดแรก ใช้โปรแกรมสกินอีกครั้ง และสร้างอัลกอริทึมใหม่โดยตรงไปยัง "salize" นี่คือวิธีที่คุณฝึก FPG ในบทความของวันนี้ ฉันจะบอกคุณว่ามันเป็นไปได้อย่างไร และฉันจะแจ้งให้คุณทราบเกี่ยวกับวิธีการออกแบบ FPGA ต่างๆ

สำหรับ cob นั้นจำเป็นต้องเข้าใจตรรกะทางดิจิทัลของหุ่นยนต์ไมโครชิป ASIC แต่การเริ่มต้นด้วยพวกมันนั้นซับซ้อนและมีราคาแพงกว่า และการเริ่มต้นด้วย FPGA จะสั้นกว่า

FPGA คืออะไร?

FPGAถอดรหัสเป็นอาร์เรย์เกทที่ตั้งโปรแกรมได้ภาคสนาม (อาร์เรย์เกทที่ตั้งโปรแกรมได้, FPGA) กลิ่นเหม็นนี้เรียกว่า PLIS - การเขียนโปรแกรมวงจรรวมเชิงตรรกะ

สำหรับความช่วยเหลือจาก FPGA คุณสามารถออกแบบไมโครเซอร์กิตดิจิทัลโดยอาศัยคำพูดที่ดึงดูดใจโดยตรง นั่งอยู่ที่บ้านด้วยเงินเดือนที่ไม่แพงบนโต๊ะและผู้จำหน่ายซอฟต์แวร์ในราคาพันรูเบิลสีเขียว ตัวเลือก Ale และbezkoshtovnі ให้ความเคารพ: ออกแบบด้วยตัวเองและไม่ต้องตั้งโปรแกรม ในตอนท้าย เราใช้วงจรดิจิทัลทางกายภาพ ซึ่งจะสร้างอัลกอริธึมเพลงในระดับฮาร์ดแวร์ ไม่ใช่โปรแกรมสำหรับหุ่นยนต์

ปฏิบัติในลักษณะนี้ บอร์ดพร้อมชุดอินเทอร์เฟซพร้อมแล้ว ราวกับว่าเชื่อมต่อกับไมโครเซอร์กิต FPGA ที่ติดตั้งบนบอร์ด เช่น บอร์ดเจ๋งๆ สำหรับศูนย์ข้อมูล หรือการชำระภาษีสำหรับการฝึกอบรม

จนกว่าเราจะบรรลุ FPGA ก็ไม่มีตรรกะใด ๆ อยู่ตรงกลางของไมโครเซอร์กิตสำหรับการประมวลผลข้อมูลจากอินเทอร์เฟซ และแน่นอนว่าจะไม่มีอะไรทำงาน เอลอันเป็นผลมาจากการออกแบบเฟิร์มแวร์จะถูกสร้างขึ้นทันทีที่มีการสร้าง FPGA เพื่อสร้างวงจรดิจิทัลที่จำเป็น ด้วยวิธีนี้ คุณสามารถสร้างตัวควบคุมอีเทอร์เน็ต 100G ซึ่งจะสามารถประมวลผลแพ็กเก็ตแบบเมชได้

คุณลักษณะที่สำคัญของ FPGA คือความสามารถในการกำหนดค่าใหม่ อนุญาตให้เราต้องใช้ตัวควบคุมอีเทอร์เน็ต 100G ในแต่ละครั้ง และหลังจากนั้นไม่นาน ตัวบอร์ดเองก็สามารถทดสอบการใช้งานอินเทอร์เฟซอีเทอร์เน็ต 25G อิสระบางตัวได้

มีผู้นำสองรายในผู้ผลิตชิป FPGA ในตลาด: Intel และ Xilinx กลิ่นเหม็นควบคุม 58 และ 42% ของตลาด ชิป FPGA ตัวแรกของเรา ผู้ก่อตั้ง Xilinx เกิดในปี 1985 Intel ออกสู่ตลาดเมื่อไม่นานมานี้ - ในปี 2558 บริษัท ที่เลิกใช้ Altera ก่อตั้งขึ้นพร้อมกับ Xilinx เทคโนโลยีของ Altera และ Xilinx มีความคล้ายคลึงกันมากในหลายประการ เนื่องจากเป็นเทคโนโลยีที่อยู่ตรงกลางของการพัฒนา ส่วนใหญ่ฉันได้ทำงานกับผลิตภัณฑ์ Xilinx ดังนั้นไม่ต้องแปลกใจที่โพสต์ของโพสต์

FPGA ใช้กันอย่างแพร่หลายในด้านต่างๆ: อิเล็กทรอนิกส์, โทรคมนาคม, แผงจัดเก็บข้อมูลสำหรับศูนย์ข้อมูล, วิทยาการหุ่นยนต์, การสร้างต้นแบบ ASIC ฉันจะจัดเรียง troch ด้านล่าง

มาดูเทคโนโลยีที่ช่วยให้แน่ใจในการกำหนดค่าฮาร์ดแวร์ใหม่ เรียนรู้จากกระบวนการออกแบบ และค้นหาตัวอย่างง่ายๆ ของการใช้งานตัวล้างฮาร์ดแวร์ Verilog ของฉัน หากคุณมีบอร์ด FPGA แบบกำหนดเอง คุณสามารถทำซ้ำได้ด้วยตัวเอง ถ้าคุณไม่ต้องจ่าย คุณยังสามารถเรียนรู้ Verilog ได้โดยการจำลองวงจรบนคอมพิวเตอร์ของคุณ

หลักการทำงานของ FPGA

ชิป FPGA เป็นชิป ASIC ตัวเดียวกัน ซึ่งประกอบด้วยทรานซิสเตอร์ตัวเดียวกัน ซึ่งเลือกทริกเกอร์ รีจิสเตอร์ มัลติเพล็กเซอร์ และองค์ประกอบลอจิกอื่นๆ สำหรับวงจรที่ใหญ่ที่สุด เห็นได้ชัดว่าไม่สามารถเปลี่ยนลำดับการเชื่อมต่อของทรานซิสเตอร์เหล่านี้ได้ แต่ในทางสถาปัตยกรรม ไมโครเซอร์กิตได้รับแรงบันดาลใจจากกลอุบายอันชาญฉลาดที่สามารถเปลี่ยนการสลับสัญญาณระหว่างบล็อกขนาดใหญ่ได้ เรียกว่า CLB - การเขียนโปรแกรมลอจิกบล็อก

คุณยังเปลี่ยนฟังก์ชันตรรกะได้ เช่น การแทนที่ CLB เข้าถึง tse zavdyaki ถึงความจริงที่ว่า microcircuit ทั้งหมดเต็มไปด้วยแกนของหน่วยความจำการกำหนดค่า Static RAM บิตสกินของหน่วยความจำจะควบคุมคีย์การสลับสัญญาณ หรือตารางความจริงบางส่วนของฟังก์ชันลอจิคัลที่ใช้ CLB

เนื่องจากหน่วยความจำการกำหนดค่าเกิดขึ้นจากเทคโนโลยี Static RAM ดังนั้น เมื่อเปิดใช้งาน FPGA live จึงต้องกำหนดค่าชิปภาษา และในอีกทางหนึ่ง ไมโครเซอร์กิตสามารถกำหนดค่าใหม่ได้หลายครั้ง

โครงสร้าง 2D ของไมโครเซอร์กิตยังถูกทำให้ง่ายขึ้นโดยไม่มีการกำหนดค่าหน่วยความจำ

บล็อก CLB อยู่ในเมทริกซ์สวิตชิ่ง ซึ่งเป็นฟังก์ชันของอินพุตและเอาต์พุตของบล็อก CLB

แบบแผนของการสลับเมทริกซ์

มีปุ่มทั้งหมดหกปุ่มบนเว็บผิวหนังของตัวนำซึ่งกะพริบ เคราติไนซ์โดยแกนหน่วยความจำการกำหนดค่า ด้วยเส้นโค้งเดียวหรืออีกเส้นหนึ่ง ทำให้แน่ใจได้ว่ามีการสลับสัญญาณระหว่าง CLB ที่แตกต่างกัน

CLB

CLB ถูกซ้อนกันในบล็อกที่กำหนดฟังก์ชันบูลีนพร้อมอาร์กิวเมนต์จำนวนหนึ่ง (เรียกว่าตารางค้นหา, LUT) และทริกเกอร์ (flip-flop, FF) FPGA LUT สมัยใหม่มีอินพุต 6 ตัว แต่สำหรับความเรียบง่าย มีการแสดงสามรายการเพื่อความเรียบง่าย เอาต์พุต LUT ใช้กับเอาต์พุต CLB แบบอะซิงโครนัส (ไม่มีตรงกลาง) หรือแบบซิงโครนัส (ผ่านทริกเกอร์ FF ซึ่งทำงานที่ความถี่สัญญาณนาฬิกาของระบบ)

หลักการดำเนินการ LUT

Tsіkavoประหลาดใจกับหลักการของการใช้งาน LUT ให้เรามีฟังก์ชันบูลีน y = (a & b) | ~ ค. Їїการออกแบบวงจรและตารางความจริงแสดงให้เห็นเล็กน้อย ฟังก์ชันนี้มีอาร์กิวเมนต์สามตัว ดังนั้นจึงมีค่า 2^3 = 8 ค่า สกินของพวกเขาช่วยให้สัญญาณอินพุตรวมกันได้ ค่าคำนวณโดยโปรแกรมขยายเฟิร์มแวร์ FPGA และบันทึกในหน่วยความจำการกำหนดค่าพิเศษ

ค่าสกินของค่ากลางจะถูกส่งไปยังอินพุตของมัลติเพล็กเซอร์เอาต์พุต LUT และอาร์กิวเมนต์อินพุตของฟังก์ชันบูลีนจะถูกเลือกเพื่อเลือกค่าอื่นของฟังก์ชัน CLB เป็นทรัพยากรฮาร์ดแวร์ FPGA ที่สำคัญที่สุด ปริมาณของ CLB ในผลึก FPGA ในปัจจุบันอาจแตกต่างกันและเกิดขึ้นได้ขึ้นอยู่กับชนิดและความจุของคริสตัล Xilinx อาจมีคริสตัลที่มีปริมาณ CLB อยู่ระหว่างประมาณสี่พันถึงสามล้าน

Crim CLB, FPGA ระดับกลางยังคงเป็นทรัพยากรฮาร์ดแวร์ที่สำคัญต่ำ ตัวอย่างเช่น บล็อกฮาร์ดแวร์เป็นบล็อกสะสมหรือบล็อก DSP หลายบล็อก สกินของพวกมันสามารถใช้ในการคูณและพับตัวเลข 18 บิตของวัฏจักรสกินได้ สำหรับคริสตัลชั้นยอด จำนวนบล็อก DSP สามารถเกิน 6000

ทรัพยากรที่สองคือบล็อกของหน่วยความจำภายในทั้งหมด (Block RAM, BRAM) บล็อคสกินสามารถบันทึกได้ 2 KB Povna єmnіstหน่วยความจำดังกล่าวร่วงหล่นในคริสตัลสามารถเข้าถึงได้จาก 20 Kbytes ถึง 20 Mbytes เช่นเดียวกับ CLB, BRAM และ DSP-blocks เชื่อมต่อกันด้วยสวิตชิ่งเมทริกซ์และแทรกซึมคริสตัลทั้งหมด ด้วยการเชื่อมโยงบล็อค CLB, DSP และ BRAM คุณสามารถใช้แผนการประมวลผลข้อมูลที่มีประสิทธิภาพยิ่งขึ้น

ข้อดีของ FPGA

ชิป FPGA ตัวแรกที่สร้างขึ้นโดย Xilinx ในปี 1985 มีมากกว่า 64 CLB ในขณะนั้น การรวมทรานซิสเตอร์บนไมโครเซอร์กิตลดลงอย่างมาก ลดลงในแต่ละครั้ง และในอุปกรณ์ดิจิทัล ไมโครเซอร์กิตของ "ลอจิกหลวม" มักจะได้รับชัยชนะ นอกจากนี้ยังมีวงจรขนาดเล็กของรีจิสเตอร์, ลิชิลนิก, มัลติเพล็กเซอร์, ตัวคูณ โดยเฉพาะอย่างยิ่ง สิ่งที่แนบมาถูกสร้างขึ้นโดยบอร์ดของพวกเขาเอง ซึ่งมีการติดตั้งไมโครวงจรรวมต่ำ

Wikoristannya FPGA อนุญาตให้ปฏิบัติตามแนวทางนี้ Navit FPGA บน 64 CLB ช่วยประหยัดพื้นที่บนบอร์ดอื่นๆ ได้อย่างมาก และความพร้อมใช้งานของการกำหนดค่าใหม่ทำให้สามารถอัปเกรดฟังก์ชันการทำงานของไฟล์แนบได้หลังจากเตรียมใช้งานหนึ่งชั่วโมง ดูเหมือนว่า "ในฟิลด์" (ชื่อและชื่อ - ตั้งโปรแกรมฟิลด์ได้ ประตูอาร์เรย์)

ด้วยเหตุผลที่ว่าในช่วงกลางของ FPGA คุณสามารถสร้างวงจรดิจิทัลของฮาร์ดแวร์ได้ (สิ่งที่สำคัญที่สุดคือการหาทรัพยากร) หนึ่งในโครงการที่สำคัญที่สุดของ PLIC คือการสร้างต้นแบบของชิป ASIC

การพัฒนา ASIC นั้นซับซ้อนและมีราคาแพงกว่า ค่าอภัยโทษยิ่งสูงขึ้น และพลังของการทดสอบตรรกะก็เป็นสิ่งสำคัญ ดังนั้นหนึ่งในขั้นตอนของการพัฒนางานเกี่ยวกับโทโพโลยีทางกายภาพของวงจรจนถึงจุดเริ่มต้นคือการสร้างต้นแบบบนคริสตัล FPGA หนึ่งอันหรือมากกว่า

สำหรับการขยาย ASIC จะมีการออกบอร์ดพิเศษเพื่อให้ครอบคลุม FPGA จำนวนมากที่เชื่อมต่อถึงกัน ต้นแบบของไมโครเซอร์กิตทำงานที่ความถี่ต่ำลงอย่างเห็นได้ชัด (อาจถึงสิบเมกะเฮิรตซ์) แต่ยังช่วยให้คุณประหยัดปัญหาและจุดบกพร่องที่ระบุได้

อย่างไรก็ตามในความคิดของฉัน іsnuyut cіkavіshi zastosuvannya PLIS โครงสร้างที่ยืดหยุ่นของ FPGA ช่วยให้สามารถใช้วงจรฮาร์ดแวร์สำหรับการประมวลผลข้อมูลที่มีความกว้างสูงและแบบขนานพร้อมความสามารถในการเปลี่ยนอัลกอริทึม


การจับคู่แพลตฟอร์มฮาร์ดแวร์

ลองคิดดูว่าพื้นฐานของ CPU, GPU, FPGA และ ASIC คืออะไร CPU เป็นแบบสากล โดยคุณสามารถเรียกใช้อัลกอริธึมใดๆ ก็ได้ แบบที่ยืดหยุ่นที่สุด และทำให้บรรลุโปรแกรมและมิดเดิลแวร์จำนวนมากได้ง่ายขึ้น

ในกรณีนี้ ด้วยความสามารถรอบด้านและคำสั่ง CPU สุดท้าย ผลผลิตจะลดลงและแหล่งจ่ายไฟของวงจรเพิ่มขึ้น เป็นที่น่าสังเกตว่าบนสกินของการคำนวณทางคณิตศาสตร์ของ CPU มีการดำเนินการเพิ่มเติมมากมายที่เกี่ยวข้องกับการอ่านคำสั่ง การย้ายข้อมูลระหว่างรีจิสเตอร์และแคชและการเปลี่ยนแปลงอื่นๆ ของร่างกาย

อีกด้านหนึ่งมี ASIC บนแพลตฟอร์มนี้ อัลกอริธึมที่จำเป็นจะถูกนำไปใช้ในฮาร์ดแวร์สำหรับการเชื่อมต่อโดยตรงของทรานซิสเตอร์ การดำเนินการทั้งหมดเกี่ยวข้องกับอัลกอริธึมเท่านั้น และไม่มีความเป็นไปได้ที่จะเปลี่ยนแปลงได้ ดูประสิทธิภาพสูงสุดสำหรับแพลตฟอร์มที่ประหยัดพลังงานน้อยที่สุด และแกน ASIC ไม่สามารถตั้งโปรแกรมใหม่ได้

ทางด้านขวาของ CPU คือ GPU ไมโครเซอร์กิตถูกแยกออกเพื่อประมวลผลกราฟิก แต่ในขณะเดียวกันก็ถูกแฮ็กและสำหรับการขุด โดยคำนวณคุณสมบัติหลัก กลิ่นเหม็นประกอบด้วยนิวเคลียสการนับขนาดเล็กนับพันและการนับในการดำเนินการคู่ขนานบนอาร์เรย์ของข้อมูล

หากอัลกอริธึมสามารถขนานกันได้บน GPU คุณสามารถเร่งความเร็วได้อย่างมากเมื่อเทียบกับ CPU ในทางกลับกัน อัลกอริธึมต่อไปนี้จะถูกนำมาใช้เร็วขึ้น ดังนั้นแพลตฟอร์มจึงดูมีความยืดหยุ่นน้อยลงและมี CPU ที่ต่ำกว่า นอกจากนี้ สำหรับการพัฒนา GPU คุณต้องมีทักษะพิเศษ ความรู้เกี่ยวกับ OpenCL และ CUDA

ซเรชทอย, FPGA. แพลตฟอร์มนี้จะปรับปรุงประสิทธิภาพของ ASIC เนื่องจากความสามารถในการเปลี่ยนโปรแกรม PLIS ไม่ได้เป็นสากล แต่ใช้ชั้นของอัลกอริทึมและงาน เพื่อให้สามารถแสดงประสิทธิภาพการทำงานที่ดีขึ้น ลด CPU และบน GPU ความสามารถในการพับของการกระจายสำหรับ FPGA นั้นมากกว่า prote novі zasobi rozrobki rozroby tsei rozryv ที่เล็กกว่า

จุดสำคัญของ FPGA คือความจำเป็นในการประมวลผลข้อมูลตามที่คุณต้องการโดยมีการตอบสนองล่าช้าน้อยที่สุด ตัวอย่างเช่น คุณสามารถเปิดเผยเราเตอร์ที่เชื่อมต่ออัจฉริยะที่มีพอร์ตจำนวนมาก: หากคุณต้องการแพ็คเก็ตอีเทอร์เน็ตบนพอร์ตใดพอร์ตหนึ่ง คุณต้องย้อนกลับกฎที่ไม่ระบุตัวตน ให้เลือกพอร์ตขาออกก่อน เป็นไปได้ที่จะเปลี่ยนฟิลด์จริงของแพ็คเกจหรือเพิ่มฟิลด์ใหม่หากจำเป็น

ตัวแปร FPGA ช่วยให้สามารถเปลี่ยนแปลงงานได้: ไบต์ของแพ็กเก็ตเพิ่งเริ่มเข้าสู่ microcircuit ของอินเทอร์เฟซสื่อ และกำลังวิเคราะห์ส่วนหัวของแพ็กเก็ต ตัวเลือกโปรเซสเซอร์ที่นี่สามารถเพิ่มความเร็วในการประมวลผลการรับส่งข้อมูลได้อย่างมาก เป็นที่ชัดเจนว่าชิป ASIC ที่แนะนำสามารถใช้กับเราเตอร์ได้ ซึ่งเป็นวิธีที่มีประสิทธิภาพมากที่สุด แต่ทำไมกฎการประมวลผลแพ็กเก็ตจึงควรเปลี่ยนไป บรรลุความยืดหยุ่นที่จำเป็นในอนาคตด้วยผลผลิตสูงเพื่อช่วย FPGA เท่านั้น

ในอันดับนี้ FPGA ชนะ โดยต้องการประสิทธิภาพการประมวลผลข้อมูลสูง ชั่วโมงของปฏิกิริยาน้อยที่สุด และใช้พลังงานต่ำด้วย

FPGA ในคลาวด์

ในการเรียกเก็บเงิน FPGA ที่มืดมน จำเป็นต้องมีบัญชีด่วน เร่งการรับส่งข้อมูลและเข้าถึงอาร์เรย์ข้อมูล ที่นี่คุณสามารถดูสวิตช์บอร์ด FPGA สำหรับการซื้อขายแลกเปลี่ยนความถี่สูง ที่เซิร์ฟเวอร์ บอร์ด FPGA พร้อม PCI Express และอินเทอร์เฟซแบบออปติคัลของ Intel (Altera) หรือ Xilinx ถูกเสียบเข้าไป

อัลกอริธึมการเข้ารหัสส่งผลกระทบโดยตรงต่อ FPGA โดยจัดลำดับ DNA และงานทางวิทยาศาสตร์ให้สอดคล้องกับแนวไดนามิกของโมเลกุล Microsoft ชนะ FPGA มานานแล้วในการเร่งบริการ Bing jockey รวมถึงการจัดระเบียบ Software Defined Networking กลาง Azure

ความเจริญในการเรียนรู้ของเครื่องไม่ได้ข้าม FPGA Xilinx และ Intel กำลังเสนอชิปที่ใช้ FPGA เพื่อทำงานร่วมกับสารสื่อประสาทในระดับลึก สิ่งเหล่านี้ช่วยให้คุณใช้เฟิร์มแวร์ FPGA ได้ ดังนั้นคุณจึงสามารถใช้สิ่งเดียวกันได้โดยไม่ต้องใช้เฟรมเวิร์กตัวกลางสำหรับ Caffe และ TensorFlow

ยิ่งกว่านั้นคุณสามารถลองทุกอย่างโดยไม่ต้องออกจากบ้านและบริการมืดมนของผู้ชนะ ตัวอย่างเช่น Amazon สามารถเช่าเครื่องเสมือนที่สามารถเข้าถึงบอร์ด FPGA และเครื่องมือในการพัฒนาประเภทใดก็ได้ รวมถึงการเรียนรู้ของเครื่อง

FPGA บนขอบ

จั๊กจั่นสามารถทำอะไรกับ FPGA ได้บ้าง? ที่ scho ไม่อายไป! วิทยาการหุ่นยนต์, ยานยนต์ไร้คนขับ, โดรน, อุปกรณ์วิทยาศาสตร์, อุปกรณ์ทางการแพทย์, อุปกรณ์พกพาสำหรับคอรีสตูวัล, กล้องวงจรปิดอัจฉริยะ ฯลฯ

ตามเนื้อผ้า FPGA ถูกใช้สำหรับการประมวลผลแบบดิจิทัลของสัญญาณโหมดเดียว (และแข่งขันกับโปรเซสเซอร์ DSP) ในสิ่งที่แนบมากับเรดาร์ โดยรับสัญญาณวิทยุ ด้วยการผสานรวมที่เพิ่มขึ้นของไมโครเซอร์กิตและผลผลิตที่เพิ่มขึ้นของแพลตฟอร์ม FPGA การคำนวณประสิทธิภาพสูงจึงหยุดนิ่งมากขึ้นเรื่อยๆ เช่น การประมวลผลสัญญาณสองโลก "บนขอบของความมืดมน" (ขอบ การคำนวณ)

แนวคิดนี้เข้าใจง่ายขึ้นโดยใช้กล้องวิดีโอสำหรับวิเคราะห์ปริมาณการใช้รถด้วยฟังก์ชันการจดจำหมายเลขรถ คุณสามารถใช้กล้องที่มีความสามารถในการส่งวิดีโอผ่านอีเทอร์เน็ตและประมวลผลบนเซิร์ฟเวอร์ระยะไกล ด้วยจำนวนกล้องที่เพิ่มขึ้น จำนวนกล้องจะเพิ่มขึ้น ซึ่งอาจนำไปสู่ความล้มเหลวของระบบได้

การนำการจดจำตัวเลขบนตัวเข้ารหัสที่ติดตั้งโดยตรงไปที่ตัวกล้องวิดีโอจะมีประสิทธิภาพมากกว่า และถ่ายโอนจำนวนรถยนต์ในความมืดไปยังรูปแบบข้อความ เพื่อจุดประสงค์นี้ คุณสามารถใช้ FPGA ที่มีราคาไม่แพงเท่าๆ กันโดยสิ้นเปลืองพลังงานน้อยเพื่อใช้แบตเตอรี่ ด้วยเหตุนี้จึงเป็นไปไม่ได้ที่จะเปลี่ยนตรรกะของหุ่นยนต์ FPGA เช่น เมื่อเปลี่ยนมาตรฐานหมายเลขรถ

เมื่อพูดถึงวิทยาการหุ่นยนต์และโดรน ในพื้นที่นี้ สิ่งสำคัญอย่างยิ่งคือการเอาชนะใจสองใจ - ผลผลิตสูงและพลังงานต่ำ แพลตฟอร์ม FPGA เหมาะสมกว่าและสามารถได้รับชัยชนะมากกว่า zocrema สำหรับการสร้างตัวควบคุมภาคสนามสำหรับโดรน ในขณะเดียวกัน UAV ก็ส่งเสียงคำรามเพราะพวกเขาสามารถชื่นชมวิธีแก้ปัญหาได้มากมาย

การพัฒนาโครงการบน FPGA

Іsnuyet raznііvnіออกแบบ: ต่ำบล็อกและสูง ระดับการถ่ายโอนระดับต่ำของประเภทที่พบบ่อยที่สุดไปยังประเภท Verilog หรือ VHDL ซึ่งคุณสามารถใช้ได้เฉพาะในระดับการถ่ายโอนการลงทะเบียน (RTL - ระดับการถ่ายโอนการลงทะเบียน) ด้วยวิธีนี้ คุณสร้างรีจิสเตอร์ เช่นเดียวกับตัวประมวลผล คุณกำหนดฟังก์ชันทางลอจิคัลที่เปลี่ยนแปลงข้อมูลระหว่างกัน

วงจร FPGA ทำงานที่ความเร็วสัญญาณนาฬิกาสูงสุดเสมอ (100-300 MHz) และที่ RTL เท่ากัน คุณจะกำหนดพฤติกรรมของวงจรตามนาฬิกาที่แน่นอนของความถี่ของระบบ งานเล็กน้อยนี้เสร็จสิ้นเพื่อสร้างแผนงานที่มีประสิทธิภาพสูงสุดในแง่ของประสิทธิภาพการทำงาน การลดทรัพยากรของคริสตัล FPGA และการประหยัดพลังงาน แต่ที่นี่คุณต้องการทักษะที่จริงจังในวงจร และกระบวนการนี้ไม่ได้มาตรฐานสำหรับพวกเขา

ในระดับบล็อก คุณมีส่วนสำคัญในการพัฒนาบล็อกที่ยอดเยี่ยม ซึ่งพร้อมแล้ว ราวกับว่าพวกเขากำลังแยกฟังก์ชันออกจากกัน เพื่อเอาฟังก์ชันของระบบบนชิปที่คุณต้องการออกไป

ในการออกแบบระดับสูงและไม่มีการควบคุมข้อมูลบนชั้นเชิงของผิวอีกต่อไป เราเน้นที่อัลกอริทึม ใช้คอมไพเลอร์หรือตัวแปลเพื่อแปลง C และ C++ เป็น RTL เช่น Vivado HLS Vіn dosit razumny ที่อนุญาตให้ translyuvati ในระดับฮาร์ดแวร์อัลกอริธึมระดับกว้าง

ปัญหาหลักของแนวทางดังกล่าวก่อนที่ RTL movs จะเร่งการพัฒนาและโดยเฉพาะอย่างยิ่งการทดสอบอัลกอริทึม: สามารถเรียกใช้และตรวจสอบโค้ด C ++ บนคอมพิวเตอร์ได้ และจะยิ่งสมบูรณ์ยิ่งขึ้น การทดสอบที่ต่ำกว่า เปลี่ยนอัลกอริทึมบน ระดับ RTL สำหรับzruchnіst zvichayno คุณต้องจ่าย - โครงการอาจไม่เร็วนักและขอยืมทรัพยากรฮาร์ดแวร์เพิ่มเติม

บ่อยครั้งที่เราพร้อมที่จะจ่ายราคา: เพื่อปรับแต่งนักแปลอย่างถูกต้อง ประสิทธิภาพไม่ได้รับผลกระทบมากนัก และทรัพยากรของ FPGA สมัยใหม่ก็เพียงพอแล้ว ในโลกที่มีตัวบ่งชี้ที่สำคัญของเวลาสู่ตลาด ดูเหมือนว่าจะเป็นความจริง

บ่อยครั้งในการออกแบบเดียว จำเป็นต้องรวมการออกแบบทั้งสามสไตล์เข้าด้วยกัน สมมติว่าเราจำเป็นต้องสร้างสิ่งที่แนบมา ซึ่งเราสามารถใส่เข้าไปในหุ่นยนต์และมอบให้กับอาคารเพื่อจดจำวัตถุในวิดีโอสตรีม - ตัวอย่างเช่น ป้ายถนน ลองใช้ชิปเซ็นเซอร์วิดีโอและเชื่อมต่อโดยตรงกับ FPGA สำหรับการปรับแต่ง เราสามารถใช้จอภาพ HDMI รวมถึงการเชื่อมต่อกับ FPGA

เฟรมจากกล้องจะถูกโอนไปยัง FPGA ผ่านอินเทอร์เฟซ ซึ่งกำหนดไว้ล่วงหน้าโดยตัวเลือกเซ็นเซอร์ (ไม่มีปัญหา USB ที่นี่) ประมวลผลและแสดงบนจอภาพ ในการประมวลผลเฟรม คุณต้องมีเฟรมบัฟเฟอร์ ซึ่งพบเสียงในหน่วยความจำ DDR ดั้งเดิม ซึ่งติดตั้งบนบอร์ดอื่นในลำดับของชิป FPGA


ไดอะแกรมบล็อกโปรเจ็กต์ FPGA ทั่วไป

เนื่องจากผู้ผลิตเซ็นเซอร์วิดีโอไม่มีอินเทอร์เฟซ IP สำหรับชิป FPGA ของเรา เราจึงต้องเขียน RTL ของเราเอง ขึ้นอยู่กับนาฬิกา บิตและบิต ขึ้นอยู่กับข้อกำหนดของโปรโตคอลการถ่ายโอนข้อมูล บล็อก Preprocess, DDR Controller และ HDMI IP mi ดีกว่าสำหรับทุกสิ่ง ใช้งานง่าย และรับอินเทอร์เฟซ และบล็อก HLS ซึ่งดูเหมือนการค้นหาและการประมวลผลข้อมูล เราสามารถเขียนในภาษา C++ และแปล Vivado HLS เพื่อขอความช่วยเหลือได้

เหนือสิ่งอื่นใด เรายังคงต้องการไลบรารีของตัวตรวจจับและตัวแยกประเภทป้ายจราจรที่ปรับให้เหมาะกับเวอร์ชัน FPGA เพื่อให้พร้อม สำหรับแอปพลิเคชันนี้ เห็นได้ชัดว่าฉันมีผังงานที่เรียบง่ายมากสำหรับการออกแบบ แต่ตรรกะของหุ่นยนต์ไม่ปรากฏอย่างถูกต้อง

มาดูเส้นทางการออกแบบตั้งแต่การเขียนโค้ด RTL ไปจนถึงการสร้างไฟล์การกำหนดค่าสำหรับการดักจับ FPGA

วิธีการออกแบบ

จากนั้น คุณเขียนโค้ด RTL ที่ใช้สคีมาที่คุณต้องการ ก่อนอื่น คุณต้องพิจารณาใหม่บนพื้นฐานจริง คุณต้องพิจารณาใหม่ ซึ่งถูกต้อง และแก้ไขงานที่จำเป็น สำหรับผู้ที่สร้างแบบจำลอง RTL บนเครื่องจำลองบนคอมพิวเตอร์

คุณนำวงจรที่แสดงเฉพาะในโค้ด RTL ในขณะนี้ และวางบนขาตั้งเสมือน ใช้ลำดับของสัญญาณดิจิตอลกับอินพุตของวงจร ลงทะเบียนเอาท์พุตด้วยไดอะแกรม ตรวจสอบเวลาของสัญญาณเอาท์พุต และตรวจสอบ ผลลัพธ์ เสียงที่คุณรู้ว่าการให้อภัยที่เปลี่ยนไปจนกว่าจะมีการเขียน RTL

ต้าหลี่ตรวจสอบอย่างมีเหตุผลว่ารหัสจะถูกส่งไปยังอินพุตไปยังโปรแกรมสังเคราะห์ เธอกำลังแปลงคำอธิบายข้อความของวงจรเป็นรายการองค์ประกอบดิจิทัลจากไลบรารีที่มีให้สำหรับชิป FPGA นี้ รายการนี้จะมีองค์ประกอบเช่น LUT ทริกเกอร์ และลิงก์ระหว่างกัน ในขั้นตอนนี้ องค์ประกอบยังไม่เชื่อมโยงกับทรัพยากรฮาร์ดแวร์เฉพาะ ในการทำเช่นนี้ คุณต้องใช้ข้อจำกัดในวงจร เช่น โซเครมากับหน้าสัมผัสทางกายภาพของการแสดงภาพอินพุตของไมโครเซอร์กิต FPGA สำหรับอินพุตลอจิกของวงจรของคุณ

ในการแลกเปลี่ยนเหล่านี้ จำเป็นต้องระบุความถี่สัญญาณนาฬิกาที่วงจรจะต้องตำหนิด้วย เอาต์พุตของซินธิไซเซอร์และไฟล์นั้นมอบให้กับการใช้งานโปรเซสเซอร์ ซึ่งยังดูแลการจัดวางและการกำหนดเส้นทาง (สถานที่และเส้นทาง)

กระบวนการ Place the skin docks ขององค์ประกอบ netlist ผูกกับองค์ประกอบเฉพาะที่อยู่ตรงกลางของชิป FPGA จากนั้นเราเริ่มกระบวนการเส้นทาง ซึ่งพยายามทราบการกำหนดค่าที่เหมาะสมที่สุดขององค์ประกอบเหล่านี้สำหรับการกำหนดค่าเฉพาะของเมทริกซ์สวิตชิ่ง PLIC

สถานที่และเส้นทางกำลังจะหมดเขต ซ้อนทับโดยเราบนวงจร: หน้าสัมผัสอินพุต-เอาต์พุต และความถี่สัญญาณนาฬิกา ระยะเวลาของความถี่สัญญาณนาฬิกามีอิทธิพลอย่างมากต่อการนำไปใช้งาน: ความผิดพลาดนั้นไม่ต้องตำหนิสำหรับความล่าช้าของสัญญาณนาฬิกาที่เล็กกว่าและต่ำกว่าในองค์ประกอบเชิงตรรกะของแลนซ์วิกฤตระหว่างสองทริกเกอร์สุดท้าย

บ่อยครั้ง ฉันอดไม่ได้ที่จะพอใจ จากนั้นฉันต้องเปลี่ยนไปใช้ขั้นตอนแรกและเปลี่ยนรหัส RTL: ตัวอย่างเช่น พยายามเร่งความเร็วตรรกะในภาษาที่สำคัญ หลังจากเสร็จสิ้นการดำเนินการเสร็จเรียบร้อยแล้ว เราก็ทราบดีว่าองค์ประกอบต่างๆ เป็นที่รู้จักได้อย่างไร และมีกลิ่นเหม็นเกิดขึ้นได้อย่างไร

อีกนิดเดียวก็ถึงขั้นตอนการสร้างไฟล์ไบนารีของเฟิร์มแวร์ FPGA สูญเสีย zavantazhit โยคะใน zalizo จริงและทบทวน chi wono pratsyuєดังนั้นเช่นochіkuvalos มีกี่ขั้นตอนในการตำหนิปัญหา ต่อจากนี้ไป การสร้างแบบจำลองไม่ถูกต้อง และการให้อภัยและข้อบกพร่องทั้งหมดใช้กี่ขั้นตอน

คุณสามารถเปลี่ยนไปยังขั้นตอนของการจำลองและจำลองสถานการณ์แบบสุ่มได้ แต่ถึงแม้จะไม่เป็นเช่นนั้น คุณก็ยังสามารถไปยังจุดสุดขั้วของการถ่ายโอนกลไกการปรับปรุงโดยไม่มีปัญหาใดๆ ในห้องโถง ซึ่งใช้ได้ผล คุณสามารถระบุได้ว่าต้องการดูสัญญาณใดในชั่วโมงนั้น และตรงกลางของการวิเคราะห์จะสร้างวงจรตัววิเคราะห์ลอจิกเพิ่มเติม เพื่อที่จะวางลำดับบนคริสตัลด้วยวงจรของคุณ เชื่อมต่อกับสัญญาณที่คุณร้องเจี๊ยก ๆ และรับ มูลค่ารายชั่วโมง ประหยัดเวลาโดยใช้ไดอะแกรมของสัญญาณที่ต้องการบนคอมพิวเตอร์และวิเคราะห์ได้

VICORISTANNY PLIS ที่สถานที่ท่องเที่ยว SUCHASHNYh

ทูปิคอฟ ปาฟโล อันดรีโยวิช

นักศึกษาชั้นปีที่ 5 ภาควิชาศิลปะ OmDTU สหพันธรัฐรัสเซีย ม.ออมสค์

ในวันนี้ การเขียนโปรแกรมของวงจรรวมลอจิก (PLIC) กลายเป็นที่แออัดมากขึ้นเรื่อยๆ ที่อาคารสมัยใหม่ต่างๆ ซึ่งเป็นผลมาจากข้อเท็จจริงที่ว่า PLIC อาจมีข้อได้เปรียบที่สำคัญเนื่องจากไมโครเซอร์กิตดิจิทัลที่ทรงพลังที่สุด ก่อนที่จะเห็นความก้าวหน้าเหล่านี้:

· Pokraschuyusya ดูลักษณะ virobu

· ราคาเปลี่ยนแปลง

· การเปลี่ยนขนาดของ viroba

· การเปลี่ยนแปลงจำนวนไมโครเซอร์กิตที่ไม่ต่อเนื่อง (จำนวนไมโครเซอร์กิตที่ไม่ต่อเนื่องมีการเปลี่ยนแปลง)

· ย้ายความยืดหยุ่นของการสั่นสะเทือน (PLIS สามารถตั้งโปรแกรมใหม่ได้เสมอ)

สถาปัตยกรรม PLIS สามารถพับได้ (รูปที่ 1)

รูปที่ 1. โครงสร้างภายใน FPGA

ดังที่คุณเห็นจากส่วนเล็กๆ ส่วนหลักของ PLIS นั้นประกอบด้วยการเขียนโปรแกรมบล็อกเชิงตรรกะและการเขียนโปรแกรมลิงก์ภายใน

กระบวนการของการเขียนโปรแกรม (เฟิร์มแวร์) PLIS นั้นใช้สำหรับการขึ้นรูปการเชื่อมต่อที่จำเป็นระหว่างอินพุตและเอาต์พุต

ในวันนี้ โลกมีผู้นำของโลกสองคนที่อยู่ในระดับแนวหน้าของ PLIS บริษัทอเมริกันทั้งหมด Xilinx และ Altera

บริษัทเครื่องหนังส่งเสริม CAD ของตัวเองสำหรับหุ่นยนต์ FPGA Xilinx ส่งเสริม Xilinx Software Development Kit (SDK) Altera ส่งเสริม Max+Plus II และ Quartus II รวมถึงระบบจำลอง ModelSim

สำหรับการสร้างโปรแกรมเฟิร์มแวร์ ให้คำบรรยายภาพยนตร์ของอุปกรณ์หุ่นยนต์ ซึ่งกว้างที่สุดสำหรับวันนี้ ภาพยนตร์ดังกล่าวที่กว้างที่สุด:

เวริล็อก เอชดีแอล

Mova VHDL є NUBILSH MOTHINE สำหรับ NAVANNE, ALE ที่ TSOMO NUBILSHISH ในตำแหน่งหน้าที่มุ่งหน้าไปที่ RIVNIKHA, ONE MENSHISTICAL RIVNIA บน VERILOLOG HDL สำหรับความโดดเด่นของเขตเทศบาลของเขตเทศบาลของความชั่วร้ายของผู้ชาย


รูปที่ 2 นามธรรมที่เท่าเทียมกัน Verilog і VHDL

ก้นของหุ่นยนต์ Verilog HDL เป็นโปรแกรมที่ใช้กับ PLIC CYCLONE III EP3C5E1444C8N ของขาตั้ง Mini-DiLab ซึ่งเป็นรูปลักษณ์ที่ยอดเยี่ยมของการแสดงดังกล่าวในรูปที่ 3.


รูปที่ 3 มินิ - DiLab

โปรแกรมนี้ใช้การสลับไฟ led0-led7 ในภายหลัง โดยมีตัวเลือกในการเพิ่มการเคลื่อนไหว "vognik" สำหรับปุ่มเพิ่มเติม pba และ pbb รวมถึงการควบคุมการสลับสำหรับสวิตช์เพิ่มเติม sw0, sw1

//ข้อความโปรแกรม

โมดูลโครงการ( ผลผลิตนำ, ป้อนข้อมูล clk_25mhz, ป้อนข้อมูลพีบีเอ ป้อนข้อมูลพีบีบี,

ป้อนข้อมูลสวิ);

// การมอบหมายเอกสารภายในให้กับโครงการ

ลวด s1;

ลวด s2;

ลวด s3;

// เรียกไฟล์อื่น (โปรแกรมย่อย) ที่เชื่อมต่อกับโครงการ

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

ตัวนับ counter_1 (.q(s1), .clk(clk_25mhz), .up(s2));

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

Dc3_8 dc3_8_1 (.out(นำ), .in(s3));

โมดูลปลาย// สิ้นสุดโปรแกรม

โปรแกรมย่อย tr

โมดูล tr(ออก, ตั้งค่า, res); // การสร้างโปรแกรม

// การกำหนดอินพุต/visnovkіv

ผลผลิตทะเบียนออก;

ป้อนข้อมูลชุด;

ป้อนข้อมูลความละเอียด;

// การเริ่มต้น

อักษรย่อ

เริ่ม

ออก<= 1"d0;

// รหัสโปรแกรมหลัก

เสมอ @(ละเลยตั้งหรือ ละเลยความละเอียด)

เริ่ม

ถ้า(~(ชุด))

ออก<= 1"d1;

อื่น

ออก<= 1"d0;

โมดูลปลาย //สิ้นสุดโปรแกรม

โปรแกรมย่อยเคาน์เตอร์

โมดูลตัวนับ (con, q, clk, ขึ้น); // โปรแกรม Cob

ผลผลิตทะเบียนแย้ง;

ผลผลิต q = แย้ง;

ป้อนข้อมูลขึ้น clk;

// รหัสโปรแกรมหลัก

เสมอ @(โพส clk)

เริ่ม

ถ้า(คล.)

ถ้า(ขึ้น)

คอน<= con - 1"d1;

อื่น

คอน<= con + 1"d1;

โมดูลปลาย//โปรแกรม Kinnets

โปรแกรมย่อย mx (มัลติเพล็กเซอร์)

โมดูลม.( output.regก, ป้อนข้อมูลใน, ป้อนข้อมูลโหลด);

// รหัสโปรแกรมหลัก

เสมอ @*

เริ่ม

กรณี(โหลด)

2"b00: a = นิ้ว;

2"b01: a = นิ้ว;

2"b10: a = นิ้ว;

2"b11: a = นิ้ว;

endcase

โมดูลปลาย // สิ้นสุดโปรแกรม

โปรแกรมย่อย dc3_8 (มัลติเพล็กเซอร์)

โมดูล dc3_8(ออก ใน); // โปรแกรม Cob

// กำหนดอินพุต/เอาต์พุต

output.regออก;

สายอินพุตใน;

// รหัสโปรแกรมหลัก

เสมอ @*

เริ่ม

กรณี(ใน)

3"d0: ออก = 8"b11111110;

3"d1: ออก = 8"b111111101;

3"d2: ออก = 8"b11111011;

3"d3: ออก = 8"b111110111;

3"d4: ออก = 8"b11101111;

3"d5: ออก = 8"b11011111;

3"d6: ออก = 8"b10111111;

3"d7: ออก = 8"b01111111;

endcase

โมดูลปลาย // สิ้นสุดโปรแกรม

โปรแกรมนี้ดำเนินการโดย CAD Quartus II

หลังจากคอมไพล์โปรแกรมแล้ว คอมไพเลอร์ไม่เห็นการอภัยโทษที่โปรแกรมเคารพ เนื่องจากการวิเคราะห์และไวยากรณ์ของโปรแกรม (รูปที่ 4)


รูปที่ 4. หน้าต่างสรุปโครงการ

คอมไพเลอร์เคารพในการพูดคุยเกี่ยวกับจำนวนใบอนุญาตสำหรับ Quartus II (มีโปรแกรมรุ่นฟรีสำหรับการเรียนรู้) และจำนวนไฟล์ที่จำเป็นสำหรับการสร้างแบบจำลองโครงการ

โครงสร้างของโครงการนี้แสดงในรูปที่ 5.


รูปที่ 5. การดำเนินโครงการ ( RTL โครงสร้าง)

จามรีแสดงในรูปที่ 6 ในโปรแกรมนี้ มีความเป็นไปได้เพียงเล็กน้อยของความเป็นไปได้ของ PLIS นี้

รูปที่ 6. ส่วนหนึ่งของ FPGA ที่เข้าร่วมในโครงการหุ่นยนต์

วิสนอฟกี้:การเขียนโปรแกรมวงจรรวมแบบลอจิคัลสามารถติดอยู่ในอุปกรณ์เสริมได้ เพื่อเรียนรู้การทำงานกับพวกเขา เราควรแนะนำโปรแกรมพิเศษที่เกี่ยวข้องกับการออกแบบและการสร้างอุปกรณ์วิทยุอิเล็กทรอนิกส์ ความคุ้นเคยกับคำอธิบายของอุปกรณ์ (Verilog HDL และ VHDL)

รายชื่อวรรณกรรม:

1. Grushevitskiy R.I. การออกแบบระบบโดยใช้วงจรลอจิกของโปรแกรม / R.I. Hrushevitsky, A.Kh. Mursaev, E.P. หน้าบึ้ง. เซนต์ปีเตอร์สเบิร์ก: BHV Petersburg, 2002. - 608 p.

2. Kolomov D.A. ระบบการออกแบบโดยใช้คอมพิวเตอร์ช่วยจาก Altra MAX+plus II และ Quartus II คำอธิบายสั้น ๆ ของผู้อ่านหนังสือด้วยตนเอง / ดี.เอ. โคโลมอฟ, อาร์.เอ. มายล์ค, เอ.เอ. Zobenko, โอ. เอส. ไพลิพีฟ M: IP RadioSoft, 2002. - 126 น.

3. การออกแบบ Maxfield K. PLIS หลักสูตรของทหารหนุ่ม / เค. แม็กซ์ฟิลด์. M .: Vydavnichy dіm "Dodeka-XXI", 2007. - 408 p. (แปลจากภาษาอังกฤษ).

© 2022 androidas.ru - ทั้งหมดเกี่ยวกับ Android