Звоните! 
 (926)274-88-54 
 Бесплатная доставка. 
 Бесплатная сборка. 
Ассортимент тканей

График работы:
Ежедневно. С 8-00 до 20-00.
Почта: soft_hous@mail.ru
Читальный зал -->  Программные средства foundation 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 [ 109 ] 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359

Табл. 4.41. Синтаксис оператора component в языке VHDL label: component-name port mwpisignall, signal2, .... signaln);

label: component-name oxt maip(portJ=>signaU, port2=>signal2, .... portn=>signaln);

Ключевое слово port map вводит список, посредством которого портам названного объекта ставятся в соответствие сигналы данной архитектуры. Список может быть представлен одним из двух различных способов. Первый из них является позиционным: как и в обычных языках программирования, сигналы, упоминаемые в списке, связываются с портами объекта в том же самом порядке, в каком порты перечислены в определении объекта. Второй способ записи - явный: каждый порт объекта связывается с сигналом посредством оператора => , и эти соответствия могут следовать в любом порядке.

До того как компонент будет подвергнут обработке внутри архитектуры, он должен быть декларирован объявлением компонента (component declar-ation) в определении архитектуры (см. табл. 4.28). Как видно из табл. 4.42, объявление компонента является по существу таким же, что и часть объявления соответствующего объекта, где объявляются порты: приводятся имя, режим и тип каждого порта.

component component-name

port (signal-names :

mode

sigttal-type;

signal-names :

mode

signal-type;

signal-names :

mode

signal-type);

end component;

Табл. 4.42. Синтаксис объявления компонента в языке VHDL

Используемые в архитектуре компоненты могут быть либо ранее определенными элементами данного проекта, либо библиотечными элементами. Табл. 4.43 представляет собой пример VHDL-обьекта и его архитектуры, в которой используются компоненты устройства для обнаружения простых чисел , структурно идентичные отдельным вентилям в схеме нарис. 4.30(c). В объявлении объекта названы входы схемы и ее выход. В части архитектуры, отведенной под объявления, присваиваются имена всем сигналам и компонентам, которые используются внутри данной архитектуры. Этот пример был разработан и скомпилирован в профаммной среде Xilinx Foundation 1.5 (см. Обзор литературы), где INV, AND2, AND3 иОК4 являются предопределенными компонентами.

Заметьте, что операторы component в табл. 4.43 исполняются параллельно. Даже в том случае, когда операторы расположены в другом порядке, результатом синтеза будет та же самая схема и моделирование ее работы будет приводить к одному и тому же.

VHDL-архитектуру, в которой используются компоненты, часто называют структурным описанием (structural description) или структурной моделью



(structural design), поскольку ею задается реализующая данный объект точная конфигуращга соединений, по которым сигналы передаются от одного элемента к щгому. В этом отношении ясное структурное описание эквивалентно схеме устройства или списку соединений в нем.

Табл. 4.43. Структурная VHDL-программа для устройства, обнаруживающего простые числа

library IEEE;

use IEEE.std logic 1164.all;

entity prime is

port < N: in STD LOGIC VECTOR (3 downto 0); F: out STD.LQGIC );

end prime;

architecture primel arch of prime is signal K3 L, S2 L. S1 L: STD.LQGIC;

signal K3L.no, N3L S2L K1, S2L N1 N0, N2 B1L N0: STD.LOGIC;

component IKV port (I: m STD LOGIC; 0: out STD.LOGIC); end component;

component AND2 port (10,11: in STD.LOGIC; 0: out STD.LOGIC); end component;

component AND3 port (10,11,12: in STO.LOGIC; 0: out STD.LOGIC); end component;

component 0R4 port (10,11,12,13: in STD.LOGIC; 0: out STD.LOGIC); end component;

begin

Ul: IBV port map (N(3), S3 L); U2: INV port map (S(2), K2 L); U3: INV port map (N(l), Nl.L); U4: AND2 port map (N3.L, N(O), N3L.N0); U5: ANDS port map (N3 L, N2.L, N(l), N3L S2L N1); U6: ASD3 port map (S2 L, S(l), ЬЧО), S2L N1.N0); U7: AHD3 port map (S(2), Nl.L, N(O), N2 N1L N0); U8: 0R4 port map (N3L N0, N3L N2L N1, N2L N1 N0, S2 N1L.N0, F); end primel.arch;

В некоторых приложениях бывает необходимо создать несколько копий определенного блока внутри архитектуры. В разделе 5.10.2 мы увидим, например, что -разрядный сумматор со сквозным переносом можно образовать каскадным включением и полных сумматоров . В языке VHDL имеется оператор generate (generatestatement), который позволяет создавать такие повторяющиеся блоки посредством своего рода цикла for без необходимости выписывать все копии по отдельности.

Синтаксис простого итеративного цикла generate показан в табл. 4.44. Идентификатор identifier объявляется явно как переменная, тип который совместим с диапазоном range. Параллельный оператор concurrent statement исполняется однократно для каждого возможного значения переменной identifier в пределах диапазона; переменную identifier можно использовать внутри параллельного оператора. В табл. 4.45 показано, как можно построить 8-разрядный инвертор.

Табл. 4.44. Синтаксис цикла for-generate на языке VHDL

label, for identifier in range generate concurrent-statement end generate;



Табл. 4.45. VHDL-объект и его архитектура для 8-разрядного инвертора library IEEE;

use IEEE.std logic l164.all;

entity invS is

port (X: m STD LOGIC VECTOR (1 to 8);

Y: out STD LOGIC VECTOR (1 to 8) );

end inv8;

architecture inv8 axch of inv8 is

component INV port (I: in STD.LOGIC; 0: out STD L0GIC); end component; begin

gl: for b in 1 to 8 generate

01: INV port map (X(b) , Y(b))-, end generate; end inv8 arch;

Значение константы должно быть известно к моменту компиляции программы, написанной на языке VHDL. Во многих приложениях бывает полезно разработать и откомпилировать объект и его архитектуру, оставляя некоторые из его параметров не заданными, например, разрядность шины. Сделать это позволяет имеющийся в языке VHDL инструмент generic .

С помощью объявления общности (generic declaration) в объявлении объекта можно определить одну или большее число настраиваемых констант (generic constant); это необходимо сделать до объявления портов согласно синтаксису, указанному в табл. 4.46. Каждую поименованную константу можно использовать в определении архитектуры данного объекта, а задание ее значения откладывается до того момента, когда этот объект будет подвергаться обработке оператором component из другой архитектуры. Значения присваиваются настраиваемым константам в этом операторе component с помощью предложения generic лгартаким же способом, какой употреблен в предложении port map. В табл. 4.47 приведен пример, в котором одновременно используются инструмент generic и оператор generate для создания шинного инвертора с задаваемой пользователем разрядностью. В программе, представленной в табл. 4.48, обрабатывается несколько копий такого инвертора, каждый со своим числом сигнальных линий.

Табл. 4.46. Синтаксис entity entrty-name is объявления общности в

generic (constant-names : constant-type; объявлении объекта constant-names : constant-type;

constant-names : constant-type); port (signal-names : mode sigtml-type; signal-names : mode signal-type;

signal-names : mode signal-type); end entity-name;



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 [ 109 ] 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359



ООО «Мягкий Дом» - это Отечественный производитель мебели. Наша профильная продукция - это диваны еврокнижка. Каждый диван можем изготовить в соответствии с Вашими пожеланияи (размер, ткань и материал). Осуществляем бесплатную доставку и сборку.



Звоните! Ежедневно!
 (926)274-88-54 
Продажа и изготовление мебели.


Копирование контента сайта запрещено.
Авторские права защищаются адвокатской коллегией г. Москвы
.