Разработка светодиодных систем отображения информации

Системы передачи по волоконно-оптическим линиям связи

 

Светодиодные экраны

Бегущие строки

НПП “Цифровые решения”

Контрактная разработка радиоэлектронных устройств

Цифровая обработка сигналов и изображений

Поставка высокотехнологичных изделий

 

ПЛИС фирмы Altera: проектирование устройств обработки сигналов.

Стешенко В.Б.

 

Глава 6. Примеры проектирования цифровых устройств с использованием языков описания аппаратуры VHDL и Verilog.

6.8. Параметризация

Как уже отмечалось выше, в последние годы наметилась тенденция к разработке и использованию параметризованных модулей (ядер, макросов, мегафункций) при проектировании устройств на ПЛИС с использованием языков описания аппаратуры. В языках описания аппаратуры существуют специальные конструкции, позволяющие обеспечить полную параметризацию проекта. Это так называемые родовые (параметризованные, настраиваемые) типы данных (Generics) и параметры (Parameters). Мы будем использовать термин настраиваемый тип. Насираиваемые типы данных и параметры используются обычно для определения размерности компонента (например разрядность шин, коэффициентов и т.п.) Конкретное значение параметров определяется при создании конкретного экземпляра компонента. Рассмотрим пример использования параметризации на примере сумматора.

 

Описание параметризируемого сумматора на VHDL

 

library IEEE;

use IEEE.std_logic_1164.all;

use IEEE.std_logic_arith.all;

use IEEE.std_logic_unsigned.all;

entity adder is

generic (WIDTH : integer := 8);

port (A, B: in UNSIGNED(WIDTH-1 downto 0);

CIN: in std_logic;

COUT: out std_logic;

Y: out UNSIGNED(WIDTH-1 downto 0));

end adder;

architecture rtl of adder is

begin

process (A,B,CIN)

variable TEMP_A,TEMP_B,TEMP_Y:UNSIGNED(A'length downto 0);

begin

TEMP_A := '0' & A;

TEMP_B := '0' & B;

TEMP_Y := TEMP_A + TEMP_B + CIN;

Y <= TEMP_Y (A'length-1 downto 0);

COUT <= TEMP_Y (A'length);

end process;

end rtl;

 

Параметр “Width” определяет разрядность данных. Пример конкретного экземпляра компонента с 16 разрядными данными приведен ниже:

 

U1: adder generic map(16) port map (A_A, B_A, CIN_A, COUT_A, Y_A);

 

Описание сумматора на Verilog

 

module adder (cout, sum, a, b, cin);

parameter Size = 8;

output cout;

output [Size-1:0] sum;

input cin;

input [Size-1:0] a, b;

assign {cout, sum}=a +b +cin;

endmodule

 

Параметр “Size” определяет ширину сумматора. Реализация компонента 16 битного сумматора приведена ниже:

 

adder #(16) adder16(cout_A, sun_A, a_A, b_A, cin_A)

 

- Наверх -

 

Координаты:

   г. Москва, пр. Мира, 102

Для писем:

   105066, Россия, г. Москва, а/я 18

Тел.: (495) 778-97-04

e-mail: mail@dsol.ru, info@dsol.ru

 

© НПП “Цифровые решения” 2003 — 2006

Разработка светодиодных экранов | Разработка бегущих строк | Проектирование ПЛИС и СБИС | Разработка законченных устройств и модулей | Синтез алгоритмов |

Rambler's Top100 Rambler's Top100