Examples on grammatical phenomena
Abstract
This article describes the principle of programmable logic. It is dealt with types of logical devices and their structure. Describes software and hardwire development. Relationship between these two types of development is analyzed. The article can be of great interest to design engineers and software engineers.
Summary
The article headlined " Programmable Logic: What's it to Ya?" is written by Michael Barr. It's taken from the book "Embedded Systems Programming" (on the website http://www.barrgroup.com/).
In the first part the author points out that the line between hardware and software has blurred, and we must assume that there will be overlap in the two fields.
The second part is devoted to types of logical devices. The main ones are PLD (Programmable Logic Devices), CPLD (Complex Programmable Logic Devices) and FPGA (Field Programmable Gate Arrays). It is describes in short the structure of logical devices and their application.
The third part deals with process of hardware development for programmable logic. It is shown that there are two steps of hardware development: design entry and translation process. The design entry step is followed or interspersed with periods of functional simulation. The second step is involves mapping the logical structures described in the netlist.
The fourth part of the article describes the ROM (Read-only memory) types and their advantages and disadvantages. The types is used: PROM (Programmable Read Only Memory), EPROM (Erasable Programmable Read Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), and Flash.
In conclusion, the author underlines that there are valid reasons for choosing all three of these implementation techniques, and that we must pay close attention to the requirements of the particular application.
Questions
· Special
1. How quickly increases the number of gates an FPGA?
2. What are three main types of programmable logic?
3. What is the second step in the translation process?
4. Who introduced notion of machine-level equivalence and the existence of language-to-language translators?
· “Do you think” question
5. Why do you think hardware designers must learn how to write better programs, and software developers must learn how to utilize programmable logic?
· Alternative
6. Does doubling the number of gates an FPGA every 12 or 18 months?
· General
7. This article is devoted to programmable logic?
· Tag-question
8. At the low end of the spectrum are the original Programmable Logic Devices, isn’t it?
Examples on grammatical phenomena
«Noun chain»
1. logic device – логическое устройство
2. key pats – ключевые части
3. software developers – разработчики программного обеспечения
4. hardware design – конструкция оборудования
5. device internals – внутренние устройства
6. simulation tool vendors – производители инструментов моделирования
7. hardware compilation – аппаратная компиляция
8. system designer – проектировщик систем
9. memory device – устройство памяти
10. bitstream format – формат битового потока
Term list
1. Programmable Logic Devices | программируемое логическое устройство(электронный компонент, используемый для создания цифровых интегральных схем) |
2. Programmable Array Logic | программируемый логический массив |
3. Generic Array Logic | общий логический массив |
4. Field Programmable Gate Arrays | программируемая пользователем вентильная матрица(программируемая логическая интегральная схема) |
5. bitstream | битовый поток — временная последовательность битов |
6. macrocells | макроячейка - элемент ПЛУ или функционального блока ПЛИС |
7. place & route | размещение элементов и трассировка соединений |
8. netlist | список соединений и элементов |
Barr, Michael. "Programmable Logic: What's it to Ya?," Embedded Systems Programming, June 1999, pp. 75-84.
Programmable Logic: What's it to Ya?
Types of programmable logic
Many types of programmable logic are available. The main ones are PLD (Programmable Logic Devices), CPLD (Complex Programmable Logic Devices) and FPGA (Field Programmable Gate Arrays).
PLD
At the low end of the spectrum are the original Programmable Logic Devices (PLDs). These were the first chips that could be used to implement a flexible digital logic design in hardware. Other names you might encounter for this class of device are Programmable Logic Array (PLA), Programmable Array Logic (PAL), and Generic Array Logic (GAL).
PLDs are often used for address decoding, where they have several clear advantages over the 7400-series TTL parts that they replaced. First, of course, is that one chip requires less board area, power, and wiring than several do. Another advantage is that the design inside the chip is flexible, so a change in the logic doesn't require any rewiring of the board.
Inside each PLD is a set of fully connected macrocells. These macrocells are typically comprised of some amount of combinatorial logic (AND and OR gates) and a flip-flop. In other words, a small Boolean logic equation can be built within each macrocell. This equation will combine the state of some number of binary inputs into a binary output and, if necessary, store that output in the flip-flop until the next clock edge. Of course, the particulars of the available logic gates and flip-flops are specific to each manufacturer and product family. But the general idea is always the same.
CPLD
As chip densities increased, it was natural for the PLD manufacturers to evolve their products into larger (logically, but not necessarily physically) parts called Complex Programmable Logic Devices (CPLDs). For most practical purposes, CPLDs can be thought of as multiple PLDs (plus some programmable interconnect) in a single chip. The larger size of a CPLD allows you to implement either more logic equations or a more complicated design.
Figure 1 contains a block diagram of a hypothetical CPLD. Each of the four logic blocks shown there is the equivalent of one PLD. However, in an actual CPLD there may be more (or less) than four logic blocks.
Unlike the programmable interconnect within a PLD, the switch matrix within a CPLD may or may not be fully connected. In other words, some of the theoretically possible connections between logic block outputs and inputs may not actually be supported within a given CPLD.
FGPA
Field Programmable Gate Arrays (FPGAs) can be used to implement just about any hardware design. One common use is to prototype a lump of hardware.
The development of the FPGA was the distinct from the PLD / CPLD evolution just described. This is apparent when you look at the structures inside. Figure 2 storage a typical FPGA architecture. There are three key parts of its structure: logic blocks, interconnect, and I / O blocks. The I / O blocks are the ring around the outer edge of the part. Each of these provides individually selectable input, output, or bi-directional access to one of the general-purpose I / O pins on the exterior of the FPGA package. Inside the ring of I/O blocks lies a rectangular array of logic blocks. And connecting logic blocks to logic blocks and I/O blocks to logic blocks is the programmable interconnect wiring.
Device programming
Once you've created a bitstream for a particular FPGA or CPLD, you'll need to somehow download it to the device. The details of this process are dependent upon the chip's underlying process technology. Programmable logic devices are like non-volatile memories in that there are multiple underlying technologies. In fact, exactly the same set of names is used: PROM (for one-time programmables), EPROM, EEPROM, and Flash.
Just like their memory counterparts, PROM and EPROM-based logic devices can only be programmed with the help of a separate piece of lab equipment called a device programmer. On the other hand, many of the devices based on EEPROM or Flash technology are in-circuit programmable. In other words, the additional circuitry that's required to perform device (re)programming is provided within the FPGA or CPLD silicon as well. This makes it possible to erase and reprogram the device internals via a JTAG interface or from an on-board embedded processor. (Note, however, that because this additional circuitry takes up space and increases overall chip costs, a few of the programmable logic devices based on EEPROM or Flash still require insertion into a device programmer.)
In addition to non-volatile technologies, there are also programmable logic devices based on SRAM technology. In such cases, the contents of the device are volatile. This has both advantages and disadvantages. The obvious disadvantage is that the internal logic must be reloaded after every system or chip reset. That means you'll need an additional memory chip of some sort in which to hold the bitstream. But it also means that the contents of the logic device can be manipulated on-the-fly. In fact, you could imagine a scenario in which the actual bitstream is reloaded from a remote source (via a network of some sort?), so that the hardware design could be upgraded as easily as software.
What's it to ya?
Hopefully, you now have a better understanding of this new kind of software that is really hardware in disguise. (Or is it a new kind of hardware that is really software in disguise?) This should give you a better basis for communicating with hardware designers on partitioning issues like: What functions on your next project should be implemented in dedicated logic, programmable logic, and/or software? I've found that there are valid reasons for choosing all three of these implementation techniques, and that you must pay close attention to the requirements of the particular application. As software and hardware continue to simultaneously expand and overlap, we must all broaden our perspectives and be willing to learn new things.
Перевод
Типы программируемой логики
Доступны многие типы программируемой логики. Основными являются программируемые логические устройства, сложные программируемые логические устройства, программируемая пользователем вентильная матрица (ППВМ, ПЛИС).
ПЛУ
Внизу спектра находятся оригинальные программируемые логические устройства. Это были первые чипы, которые можно было использовать для реализации гибкого цифрового проектирования в аппаратных средствах. Другие имена, которые можно услышать для этого класса устройств являются программируемый логический массив, программируемый массив логики и общий логический массив.
ПЛУ часто используют для декодирования адресов, где они имеют явные преимущества по сравнению с частями ТТЛ серии 7400, которые они заменили. Во-первых, конечно, один чип занимает меньше площади, мощности, проводки. Другим преимуществом является то, что конструкция внутри чипа является гибкой, поэтому изменение логики не требует перекомпоновки платы.
Внутри каждой ПЛУ есть набор связанных макроячеек. Эти макроячейки обычно состоят из некоторого количества элементов комбинированной логики (И или ИЛИ элементов) и триггера. Другими словами, на каждой макроячейке можно построить небольшое логическое уравнение. Это уравнение объединит некоторое количество двоичных входов в один двоичный выход, и если необходимо, сохранит этот выход на триггере до следующей синхронизации. Конечно, характеристики доступных логических элементов и триггеров специфичны для каждого производителя и семейства продуктов. Но общая идея всегда одна и та же.
СПЛУ
Поскольку плотность чипов увеличивалась, производители ПЛУ естественным образом развивали свои продукты в более крупные части, называемые сложными программируемыми логическими устройствами. Для большинства практических целей СПЛУ можно рассматривать как несколько ПЛУ (плюс некоторые программируемые межсоединения) в одном чипе. Большой размер СПЛУ позволяет реализовать более либо более сложные логические уравнения, либо более сложный дизайн. Рисунок 1 содержит блок-схему гипотетического СПЛУ. Каждый из четырех отображаемых логических блоков эквивалентен одному ПЛУ. Однако в реальном СПЛУ может быль больше или меньше), чем четыре логических блока.
В отличие от программируемого межсоединения ПЛУ, матрица переключателей может быть подключена или быть не полностью подключена. Другими словами, некоторые теоретически возможные связи между выводами логических блоков и входами могут фактически не поддерживаться в пределах данного СПЛУ.
ПЛИС
Программируемые пользователем вентильные матрицы могут использоваться для реализации практически любого аппаратного дизайна. Одно из распространённых применений – прототип части оборудования.
Развитие ПЛИС было отличным от эволюции ПЛУ/СПЛК. Это видно смотря на внутреннюю структуру. Рисунок 2- типичная архитектура ПЛИС. Существуют три ключевые части его структуры: логические блоки, межсоединения и блоки ввода-вывода. Блоки ввода/вывода представляют собой кольцо вокруг внешнего края детали. Каждый из них обеспечивает индивидуально выбираемый входной, выходной или двунаправленный доступ к одному из штырей ввода/вывода общего назначения на внешней стороне ПЛИС. Внутри колец блоков ввода/вывода лежит прямоугольный массив логических блоков. Подключение логических блоков к логическим блокам и боков ввода/вывода к логическим блокам – это программируемые межсоединения.
Программирование устройства
После того, как вы создали битовый поток для конкретной ПЛИС или СПЛУ, вам нужно как-то загрузить его на устройство. Детали этого процесса зависят от технологического процесса чипа. Программируемые логические устройства подобны энергонезависимым запоминающим устройствам, поскольку в них есть некоторые базовые технологии. На самом деле используется точно такой же набор: программируемое ПЗУ(для программ программируемых один раз), стираемое программируемое ПЗУ, электрически стираемое программируемое ПЗУ и флеш-память.
Подобно копиям памяти, логически устройства на основе ППЗУ и СППЗУ могут быть запрограммированы только с помощью отдельного лабораторного оборудования, называемого устройством программиста. С другой стороны, многие устройства, основанные на технологии ЭСППЗУ или флеш-памяти, программируются встроенно. Другими словами, дополнительные схемы, необходимые для выполнения (пере)программирования, предусмотрены так же в кремнии ПЛИС или СПЛУ. Это позволяет стереть все и перепрограммировать внутренние устройства через интерфейс JTAG(Join Test Action Group) или встроенный процессор. (Обратите внимание, что, поскольку эта дополнительная система занимает пространство и увеличивает общие затраты на чипы, некоторые из программируемых логических устройств на базе ЭСППЛУ или флеш-памяти по прежнему требуют использования устройства программирования.)
В дополнение к энергонезависимым технология существуют также программируемые логические устройства, основанные на технологии СППД (статическая память с произвольным доступом). В таких случаях содержимое устройства нестабильно. Это имеет как преимущества, так и недостатки. Очевидным недостатком является то, что внутренняя логика должна быть загружена после каждой перезагрузки системы или чипа. Это означает, что вам понадобится дополнительный чип памяти, в котором будет храниться битовый поток. Но это также означает, что содержимым логического устройства можно манипулировать «на лету». Фактически, вы моли быть приставить сценарий, в котором фактический битовый поток загружается из удаленного источника (через какую-то сеть?). Так что аппаратная конструкция может быть обновлена так же просто, как и программное обеспечение.
Что это для тебя?
Надеюсь, теперь ваше понимание этого нового вида программирования стало лучше, оно действительно замаскировано под аппаратными средствами. (Или это новый вид аппаратного обеспечения, которое действительно скрывает программное обеспечение?) Это должно дать вам хорошую основу для общения с разработчиками оборудования по вопросам распределения, например: Какие функции в вашем следующем проекте должны быть реализованы в специализированной логике, программируемой логике, и/или в программном обеспечении? Я обнаружил, что существуют обоснованные причины выбора всех этих методов внедрения и что вы должны уделять пристальное внимание требованиям конкретного приложения. Поскольку программное обеспечение и аппаратные средства продолжают одновременно развиваться и пересекаться, мы должны все расширять наши знания и быть готовыми изучать новые вещи.
Abstract
This article describes the principle of programmable logic. It is dealt with types of logical devices and their structure. Describes software and hardwire development. Relationship between these two types of development is analyzed. The article can be of great interest to design engineers and software engineers.
Summary
The article headlined " Programmable Logic: What's it to Ya?" is written by Michael Barr. It's taken from the book "Embedded Systems Programming" (on the website http://www.barrgroup.com/).
In the first part the author points out that the line between hardware and software has blurred, and we must assume that there will be overlap in the two fields.
The second part is devoted to types of logical devices. The main ones are PLD (Programmable Logic Devices), CPLD (Complex Programmable Logic Devices) and FPGA (Field Programmable Gate Arrays). It is describes in short the structure of logical devices and their application.
The third part deals with process of hardware development for programmable logic. It is shown that there are two steps of hardware development: design entry and translation process. The design entry step is followed or interspersed with periods of functional simulation. The second step is involves mapping the logical structures described in the netlist.
The fourth part of the article describes the ROM (Read-only memory) types and their advantages and disadvantages. The types is used: PROM (Programmable Read Only Memory), EPROM (Erasable Programmable Read Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), and Flash.
In conclusion, the author underlines that there are valid reasons for choosing all three of these implementation techniques, and that we must pay close attention to the requirements of the particular application.
Questions
· Special
1. How quickly increases the number of gates an FPGA?
2. What are three main types of programmable logic?
3. What is the second step in the translation process?
4. Who introduced notion of machine-level equivalence and the existence of language-to-language translators?
· “Do you think” question
5. Why do you think hardware designers must learn how to write better programs, and software developers must learn how to utilize programmable logic?
· Alternative
6. Does doubling the number of gates an FPGA every 12 or 18 months?
· General
7. This article is devoted to programmable logic?
· Tag-question
8. At the low end of the spectrum are the original Programmable Logic Devices, isn’t it?
Examples on grammatical phenomena
«Noun chain»
1. logic device – логическое устройство
2. key pats – ключевые части
3. software developers – разработчики программного обеспечения
4. hardware design – конструкция оборудования
5. device internals – внутренние устройства
6. simulation tool vendors – производители инструментов моделирования
7. hardware compilation – аппаратная компиляция
8. system designer – проектировщик систем
9. memory device – устройство памяти
10. bitstream format – формат битового потока
Term list
1. Programmable Logic Devices | программируемое логическое устройство(электронный компонент, используемый для создания цифровых интегральных схем) |
2. Programmable Array Logic | программируемый логический массив |
3. Generic Array Logic | общий логический массив |
4. Field Programmable Gate Arrays | программируемая пользователем вентильная матрица(программируемая логическая интегральная схема) |
5. bitstream | битовый поток — временная последовательность битов |
6. macrocells | макроячейка - элемент ПЛУ или функционального блока ПЛИС |
7. place & route | размещение элементов и трассировка соединений |
8. netlist | список соединений и элементов |
Barr, Michael. "Programmable Logic: What's it to Ya?," Embedded Systems Programming, June 1999, pp. 75-84.
Programmable Logic: What's it to Ya?