الاثنين، 26 أغسطس 2019

FPGA Ch1_Summary2



أعزائى وأحبائي              المحترمين 
السلام عليكم ورحمة الله وبركاته 
 أقدم لكم اليوم ملخص باللغة العربية للفصل الأول عن مصفوفة البوابات المنطقية القابلة للبرمجة في مجال العمل
(Field  Programmable Gate Array  FPGA ).
 وتعريف لأهم المصطلحات الموجودة  وفي الفصول التالية ان شاء الله سنقوم بإعطاء أمثلة لبرمجة بعض المكونات الإلكترونية
 بإستخدام الأكواد الخاصة بلغة البرمجة VHDL  
 وأتمني من الله ان ينفع بها كل من يقرأها  ولا تنسونا من صالح دعائكم 

Summary of Chapter 1
تابع ملخص الفصل الأول

* PLDs Programable Logic Devices 
هذه الرقائق يمكن إعادة برمجتها بمعرفة المصنع  بعد التصنيع بعكس  الدوائر  المتكاملة العادية Standard ICs  وذلك لأنها تحتوي علي مدي واسع  من الدوائر المنطقية وكذلك مفاتيح للبرمجة  وذلك عن طريق تطبيقات وبرامج معينة ومن هذه الأنواع PLD مايسمي ب  FPGA  رقائق مصفوفة البوابات المنطقية القابلة للبرمجة في نطاق العمل.


* Custom Design Chips 
يمكن شراء رقاقات ال PLD من شركات مختلفة لأن جميعها قابله للبرمجة ولكن نظرا لأن كل شركة لها طريقة مختلفة في التصنيع كما أن لها برامج خاصة بها لذلك وجد مايسمي  Custom   أو Semi Custom بمعني أنه يتم طلب البرمجة من المصنع مباشرة  حسب المواصفات والوظائف المطلوبة من هذه الرقاقة  ولذلك فإنها تأخذ وقت كبير وكذلك تحتاج للاختبار وتسمي  ب ASICs   والميزة هنا ان هذه الطريقة لا تحتاج الي أجهزة للبرمجة ولا مبرمج متخصص مثال  في حالة انشاء خطوط إنتاج في مصنع  يتم ذلك لمرة واحدة فقط  وهنا نجد أن هذه الطريقة أسرع وأعلي دقة  مثال آخر معالج الكمبيوتر 
ولكن المشكله في هذه الطريقة انها تحتاج وقت كبير وكذلك مكلفه جدا وخصوصا اذا تطلب الأمر أكثر من رقاقة في أوقات مختلفة  لذلك كان لابد من استخدام PLD Chips والتي يتم برمجتها عن طريق مبرمج متخصص في مجال العمل  المستخدم النهائي وهنا في هذه الحالة لابد من توافر أجهزة الرمجة والأدوات الازمة لذلك وهي ما يسمي بال  FPGA ويتم ذلك حسب كل مشروع

*FPGA 
هي جزء من ال ASICs ولكن هنا يتم استخدام مصفوقة من الدوائر المنطقية بعكس ال ASICS المصممة نت مستويات من الترانزستورات  وكذلك يوجد صناعة الدوائر المتكاملة العادية وكذلك ال Microprocessors وهي المعالجات الصغيرة ولكن هنا الاستخدامات ضعيفة مقارنة بال ASICs أو FPGA 
ويمكن برمجة ال FPGA Chips  لمستويات برمجة مختلفة وعالية من المكونات مثل :
AND, NAND, OR, NOR, XOR Gates , Adders, Registers, Flip-Flops and more.   

*VHDL
 هي لغة برمجة المكونات الالكترونية عالية السرعة 
وهنا مثال علي  البرمجة  لبعض المكونات 

  THE  VHDL CODE OF THE ENCODER
       1                   LIBRARY  ieee;
2                   USE  ieee  . std- logic-1164 . all;
3                   USE  ieee  . std- logic-arith . all;
4                   ENTITY encoder is
5                   PORT (
6                           I0  : IN          std _logic;
7                           I1  : IN          std _logic;
8                           I2  : IN          std _logic;
9                           I3  : IN          std _logic;
10                         I4  : IN          std _logic;
11                         I5  : IN          std _logic;
12                         I6  : IN          std _logic;
13                         I7  : IN          std _logic;
14                         I8  : IN          std _logic;
15                         I9 : IN          std _logic;
16                         A  : OUT      std _logic – vector (3 DOWN TO 0)
17                         );
18              --        Declarations
19                 END encoder;
20              –hds interface- end
21               ARCHITACTURE   REHAVIOR OF ENCODER IS
22               SIGNAL I : std- logic-vector (9 DOWN TO 0);
23               BEGIN
24               I <= I9&I8&I7&I6&I5&I4&I3&I2&I1&I0
25               WITH I SELECT
26               A <= “0001” WHEN “0000000010”,
27                       “0010” WHEN “0000000100”,
28                       “0011” WHEN “0000001000”,
29                       “0100” WHEN “0000010000”,
30                       “0101” WHEN “0000100000”,
31                       “0110” WHEN “0001000000”,
32                       “0111” WHEN “0010000000”,
33                       “1000” WHEN “0100000000”,
34                       “1001” WHEN “1000000000”,
35                       “0000” WHEN  OTHERS;
36               END BEHAVIOR;

  The VHDL Code of the Comparator 

 1-LIBRARY ieee:
2-USE ieee.STD logic1164.all:
3-USE ieee.STD-logic-arith all :
4- ENTITY  comparator 21 IS
5-  PORT(
          A: IN STD-logic-vector(3 down to o):
          D1: OUT STD-logic                                                         
6-Declarations
7-END Comparator 21
8-hds interface end
9-ARCHITECTURE meal of Comparator 21-IS
10-BEGIN
11-WITH A SELECT
12- D1<=’1’ WHEN “0110”,
13-           ‘0’ WHEN OTHERS ;
14-END meal;



هذا ولكم تحياتي وعلمنا الله واياكم 
وفي المدونات التالية سنتكلم بإذن الله وحوله عن مثال عملي تم بالفعل انجازه  





الأحد، 25 أغسطس 2019

FPGA Ch1_Summary1


أعزائى وأحبائي              المحترمين 
السلام عليكم ورحمة الله وبركاته 
 أقدم لكم اليوم ملخص باللغة العربية للفصل الأول عن مصفوفة البوابات المنطقية القابلة للبرمجة في مجال العمل (Field  Programmable Gate Array  FPGA ).
 وتعريف لأهم المصطلحات الموجودة  وفي الفصول التالية ان شاء الله سنقوم بإعطاء أمثلة لبرمجة بعض المكونات الإلكترونية بإستخدام الأكواد الخاصة بلغة البرمجة VHDL  
 وأتمني من الله ان ينفع بها كل من يقرأها  ولا تنسونا من صالح دعائكم 

 ٍSummary of Chapter 1
ملخص الفصل الأول 
تعريف لبعض الإختصارات المستخدمة
1- PLDs Programable Logic Devices الأجهزة الرقمية  القابلة للبرمجة 
2- ASICs Application Specific Integrated Circuits رقاقات الدوائر المتكاملة  ذات التطبيقات الخاصة والتي يتم طلب تصنيعها بشكل خاص.

3-FPGA  Field  Programmable Gate Array مصفوفة البوابات المنطقية القابلة للبرمجة في مجال أو منطقة العمل.
4-VHDL Very high speed Hardware Description Language لغة برمجة رقاقات الأجهزة الرقمية عالية السرعة

    5-FPGA CHIPS رقاقات ال 
     هي عبارة عن رقاقات قابلة للبرمجة تحتوي علي أعداد هائلة من البوابات المنطقية المتصلة ببعضها البعض  علي شكل مصوفات وبإستخدام تطبيقات خاصة تسمي FPGA Tools  يتم عمل البرمجة المطلوبة بشكل معين حسب المواصفات والوظائف المطلوبة عن طريق لغة البرمجة المسماه VHDL ثم يتم عمل محاكاة للبرنامج Simulation من خلال هذه FPGA Tools ومن ثم تنزيل البرنامج علي هذة الرقاقة FPGA 
Chip وهو ما يسمي بال Emulation.

6- FPGA Tools  تطبيقات 
تتكون هذه التطبيقات من 
1- Sun Workstation أجهزة كمبيوتر 
2- Sun Server and network جهاز كمبيوتر خادم وشبكة انترنت 
3-Unix Operation System نظام تشغيل يونيكس 
4- FPGA Advantage Mentor Graphics Tools تطبيقات شركة مينتور جرافيكس.
والي هنا نبدء في التحدث عن 
* Digital Hardware   الأجهزة الرقمية
الدوائر المنطقية هي التي تستخدم في بناء أجهزة الكمبيوتر وأنواع أخري مختلفة من الأجهزة الرقمية

* Standared ICs الدوائر المتكاملة العادية 
وهي تصنع من مجموعة من المكونات التي تصنع من أشباه الموصلات والتي يتم تركيبها في رقاقة واحدة ثابتة وتصنف حسب أعداد هذة المكونات داخل الرقاقة الواحدة وهي ثابتة الوظائف لا يمكن تغيرها أو برمجتها وتصنف كالتالي :

1- SSI Small Scale Integrationوهي الدوائر المتكاملة  صغيرة الحجم وهي أقل من 100 عنصر شبة موصل 
2- MSI Medium Scale Integration  وهي الدوئر المتكاملة متوسطة الحجم وهي تحتوي علي أكثر  من 100 عنصر شبة موصل وأقل من 1,000 عنصر شبة موصل
3-LSI Large Scale Integration  وهي الدوئر المتكاملة كبيرة الحجم وهي تحتوي علي أكثر  من 1,000 عنصر شبة موصل وأقل من 100,00 عنصر شبة موصل.
4-VLSI Very Large Scale Integration  وهي الدوئر المتكاملة كبيرة الحجم  جدا وهي معقده وتحتوي علي أكثر  من 100,000 عنصر شبة موصل وأقل من 1,000,000 عنصر شبة موصل
5- SLSI Super Large Scale Integration  وهي الدوئر المتكاملة فائقة الحجم  جدا وهي أكثرهم تعقيداً وتحتوي علي أكثر  من  1,000,000 عنصر شبة موصل

 والي اللقاء في المدونة الثانية من ملخص الفصل الأول 
ولكم تحياتي ,,,                       




الثلاثاء، 20 أغسطس 2019

FPGA Ch1_5



أعزائى وأحبائي المحترمين 
السلام عليكم ورحمة الله وبركاته 
 أقدم لكم اليوم المدونة الخامسة في الفصل الأول عن مصفوفة البوابات المنطقية القابلة للبرمجة في مجال العمل 
(Field  Programmable Gate Array  FPGA ).

Chapter 1

1.5.2 Commercial FPGAs  

·        Xilinx (XC2000 - XC8100)
·        Altera (MAX, FLEX, Classic)
·        Actel (ACT 1- 4, 3200DX, 1200XL)
·        AT& T (ORCA)
·        Cross Point (CP20)
·        Concurrent Logic (CLi6000)
·        Quick Logic (qASIC)
·        Intel (iFX780)
·        AMD (MACH1,2,3,4,5)
·        ATMEL (ATV)
·        Pilkingston (TS Series)
·        Zycad Gatefied (GF Series)


1.5.3 The Benefits of FPGA Technology Project

·    Understand the essential syntax and semantics of the VHDL language.
·    Write VHDL for effective synthesis using today’s register transfer level (RTL) synthesis tools.
·    Exploit the architectural features of CPLDs, FPGAs and ASICs from VHDL.
·  Write VHDL test benches in order to verify the functionality of your design prior to implementation.
·    Write high quality VHDL code that reflects best practice in the industry.
·    Organize design files and design flow in a VHDL based project.
·     Build conceptual HDL designs quickly using HDL Designer Series.
·     Build HDL state machines, block diagrams, truth tables, and flow charts.
·     Debug and verify your conceptual design using ModelSim®.
·     Create test bench designs quickly.
·   Synthesize your HDL design into a wide range of physical FPGAs using Leonardo Spectrum.
·     Optimize your design for speed and area.
·     Use hierarchical designs effectively.
·     Perform static timing analysis.
·     Use top-down and bottom-up design techniques.
·     Reuse design elements.

           شكرا لحضراتكم وان شاء الله في المدونة القادمة سأقوم بعمل مختصر للفصل الأول باللغة العربية 
 وذلك لتعم الفائدة علمنا الله واياكم ونفع بنا وبكم
ولكم تحياتي ,,,  

FPGA Ch1_4

أعزائى القراء المحترمين 
السلام عليكم ورحمة الله وبركاته 
 أقدم لكم اليوم المدونة الرابعة في الفصل الأول عن مصفوفة البوابات المنطقية القابلة للبرمجة في مجال العمل 
(Field  Programmable Gate Array  FPGA ).

Chapter 1


1.5 FPGA

       FPGA is an abbreviation for Field Programmable Gate Array. It is a sub-group to Application Specific Integrated Circuits, ASIC. ASICs are designed at transistor-level. The transistors with connections are made by a design-process involving building layers using e.g. diffusion. A simplification of this is using standard-cells. These are e.g. adders or other functions that are connected to produce the function desired. There are other design-processes but they will not be described here. What ASICs and the different design-processes of these have in common is that once produced, they can’t be changed. An FPGA is a gate- matrix in which the connections between and within the cells are programmed. An FPGA then gains the same benefits as an ASIC but the silicon used is larger in the FPGA than in the ASIC. This means the area of silicon isn’t optimized and the speed of the FPGA is slower than for an ASIC. Another solution to design problems is to use standard-circuits and microprocessors. These are cheap since they are produced in large series. They can be programmed by using a high-definition language, e.g. C. It makes it easy to change or create new code. An FPGA share both the ASIC and the microprocessor’s benefits. It can be used to fast design application-specific designs and the circuits programmed can easily be changed on the circuit board with a newly programmed FPGA. The drawback is the cost of the FPGA compared to an ASIC in large quantities. The FPGA functions can be programmed at different levels. One can go directly inside the cells or use higher-level components such as e.g. NAND, adders, registers, flip- flops and more. There are several manufacturers of FPGA. Actel are one, Xilinx another.


1.5.1 VHDL

       VHDL is an abbreviation of Very high-speed integrated circuit Hardware Description Language. It is a standardized language used to specify, verify, and design electronics. VHDL was developed by the US department of defense at the beginning of the eighties and was made a standard for

modeling and simulating. The translation of VHDL-code to a net- list for e.g. an FPGA is called synthesis. The synthesizing process is not made into a standard thus it is the synthesizer tool that decides what VHDL-code constructs that are supported for synthesis. VHDL is an object-based language. It is a big and general hardware-descriptive language, which gives several opportunities to describe the same behavior with different language-designs. The design itself is made up of components consisting of two parts. Entity In and output signals of the component Architecture Behavior of the entity, described by different abstraction models. The component can be described by different abstraction- levels and structural descriptions. The abstraction- levels can describe the same function but with different levels of detail.

       When using VHDL it is possible to mix different abstraction-levels simply by connecting the different components that are using different levels. The different levels used in practical electronic design are:

The Behavior-model.
RTL-Model (Register Transfer Level).
Gate- level.
         
       The behavior model is used at an early stage as a specification on how the circuit is supposed to work, thus it is easy to read and can also be used for documentation. The RTL- model describes the behavior in asynchrone and synchrone state-machines, bus-structures, operators, registers, multiplexers, ALU and many more structures. These exist in different language-designs that can be synthesized if the synthesis-tool supports it.

       Gate level is the lowest abstraction level used for synthesis. At this level a gate- net is written or the design is described using Boolean algebra. This level gives the most control over synthesis and optimizing of circuit-area.

LIBRARY ieee ;
USE ieee.std_logic_1164.all ;

ENTITY fulladd IS
        PORT ( Cin, x, y : IN SID_LOGIC ;
                      s, Cout   : OUT STD_LOGIC ) ;
END fulladd ;

ARCHITECTURE LogicFunc OF fulladd IS
BEGIN
     s <= x XOR y XOR Cin ;
     Cout <= (x AND y) OR (x AND Cin) OR (y AND Cin) ;
END LogicFunc ;

Example for VHDL Code for a full _Adder
  يتبع ان شاء الله

الأحد، 18 أغسطس 2019

FPGA Ch1_3


أعزائى القراء المحترمين 
السلام عليكم ورحمة الله وبركاته 
 أقدم لكم اليوم المدونة الثالثة في مقدمة عن مصفوفة البوابات المنطقية القابلة للبرمجة في مجال العمل (Field  Programmable Gate Array  FPGA ).

Chapter 1


1.4     Custom-Design Chips

    PLD Programmable Logic Devices are available as of shelf components that can be purchased from different suppliers. Because they are programmable, they can be used to implement most logic circuits found in digital hardware. However, PLDs also have a drawback in that the programmable switches consume valuable chip area and limit the speed of operation of implemented circuits. Those in some cases PLDs may not meet the desired performance or cost objectives. In such situations it is possible to design a chip from scratch; namely, the logic circuitry that must be included on the chip is designed first and then an appropriate technology is chosen to implement the chip.



 Finally, the chip is manufactured by a company that has the fabrication facilities. This approach is known as custom or semi-custom design, and such chips are called custom or semi-custom chips. Such chips are intended for use in specific applications and are sometimes called application-specific integrated circuits (ASICs).



   The main advantage of the custom chip is that it is designed can be optimized for a specific task; hence it usually leads to better performance.


    A disadvantage of the custom design approach is that manufacturing a custom chip often takes a considerable amount of time, on the order of months. In contrast, if a PLD can be used instead, then the chips are programmed by the end user and no manufacturing delays are involved.
   
 يتبع ان شاء الله