Научная статья на тему 'Разработка двухпроводного последовательного интерфейса ДПИ (two wire interface)'

Разработка двухпроводного последовательного интерфейса ДПИ (two wire interface) Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
487
110
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПОСЛЕДОВАТЕЛЬНЫЙ ИНТЕРФЕЙС / ПРОЕКТИРОВАНИЕ / ДПИ / САПР CADENCE / I2C / SERIAL INTERFACE / DESIGN / TWI / CAD CADENCE

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Шкондин Ю. А., Мушта А. И., Балашов Ю. С.

В технологии 150 nm (LF150 0.15um) реализовано топологическое проектирование двухпроводного последовательного интерфейса TWI. Общий размер топологии ячейки интерфейса составил 226 х 211 мкм

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

DESIGN TWO WIRE SERIAL INTERFACE TWI

Designing of topology of Two Wire serial interface (TWI) was implemented in the technology LF150 (150nm). The topology block size is 226 х 211um

Текст научной работы на тему «Разработка двухпроводного последовательного интерфейса ДПИ (two wire interface)»

УДК 621.3.049.77 : 001.63

РАЗРАБОТКА ДВУХПРОВОДНОГО ПОСЛЕДОВАТЕЛЬНОГО ИНТЕРФЕЙСА ДПИ (TWO WIRE INTERFACE)

Ю.А. Шкондин, А.И. Мушта, Ю.С. Балашов

В технологии 150 nm (LF150 0.15um) реализовано топологическое проектирование двухпроводного последовательного интерфейса TWI. Общий размер топологии ячейки интерфейса составил 226 х 211 мкм

Ключевые слова: последовательный интерфейс, проектирование, ДПИ, I2C, САПР Cadence

Постановка вопроса. В бытовой технике, телекоммуникационном оборудовании и промышленной электронике часто встречаются похожие решения в, казалось бы, никак не связанных изделиях. Например, практически каждая система включает в себя:

• некоторый “умный” узел управления, обычно это однокристалльная микроЭВМ;

• узлы общего назначения, такие как буферы ЖКИ, порты ввода/вывода, ОЗУ, ЭСПЗУ или преобразователи данных;

• специфические узлы, такие как схемы цифровой настройки и обработки сигнала для радио- и видео- систем или генераторы тонального набора для телефонии[1].

Для того, чтобы использовать эти общие решения к выгоде конструкторов и производителей (технологов), а также для увеличения эффективности аппаратуры и упрощения схемотехнических решений, Philips разработала простую двунаправленную двухпроводную шину для эффективного “межмикросхемного” (inter-IC) управления. Шина так и называется - InterIC, (I2C) шина (или TWI). В настоящее время ассортимент продукции Philips включает более 150 КМОП и биполярных I2C-совместимых устройств, функционально предназначенных для работы во всех трех вышеперечисленных категориях электронного оборудования. Все I2C-совместимые устройства имеют встроенный интерфейс, который позволяет им связываться друг с другом по шине I2C. Это конструкторское решение разрешает множество проблем сопряжения различных устройств, которые обычно возникают при разработке цифровых систем.

В некоторых случаях, например при взаимодействии через шину ДПИ микроконтроллера и модуля памяти, может потребоваться передача большого количества информации. Прием/передача каждого байта информации сопровождается прерыванием работы микроконтроллера, обработкой принятой/переданной информации, принятием ре-шения1 о дальнейших действиях, выходом из пре-

Шкондин Юрий Александрович - ВГТУ, аспирант, тел. 8-904-211-16-77

Мушта Александр Иванович - ВГТУ, канд. техн. наук, профессор, тел. 8-961-028-50-69

Балашов Юрий Степанович - ВГТУ, д-р физ.-мат. наук, профессор, тел. (473) 292-94-45

рывания и продолжением выполнения микроконтроллером прерванной программы. При приеме/передачи большого количества информации выше указанные действия микроконтроллера по обработке данных могут занимать существенное время.

В целях оптимизации времени при работе с большим количеством данных актуальной задачей является разработка ДПИ интерфейса, обладающего страничным режимом передачи данных. Однако, большой объем страницы не целесообразен, поскольку это приведет к существенному увеличению аппаратных ресурсов, а следовательно, к значительному увеличению габаритных размеров разрабатываемого блока. Оптимальный размер страницы предполагается равным 8 байт.

Необходимость разработки с целью комплектования современных отечественных микроконтроллеров интерфейсами, функционально аналогичными выше указанному интерфейсу 12С, а также обладающими возможностями оптимизации времени обработки данных очевидна. Это позволит решить проблему гибкой коммуникации микроконтроллера с другими устройствами в составе разрабатываемой системы.

Исходные условия. Разрабатываемая шина ДПИ поддерживает любую технологию изготовления микросхем (НМОП, КМОП, биполярную).

Классификация режимов работы

двухпроводного последовательного интерфейса

Термин (англ) Термин (рус) Описание

Transmitter Пере- датчик Устр-во, посылающее данные на шину

Receiver Прием- ник Устр-во, принимающее данные с шины

Master Веду- щий Начинает пересылку данных, формирует тактовый сигнал, заканчивает пересылку данных

Slave Ведо- мый Устр-во, адресуемое ведущим

Multimaster Лидер- ство Несколько ведущих могут пытаться захватить шину одновременно

Arbitration Арбит- раж Процедура, обеспечивающая лидерство

Synchroni- zation Синхро- низация Реализация синхронного режима

Две линии, данных (8БЛ) и синхронизации (8СЬ) служат для переноса информации. Каждое устройство распознается по уникальному адресу -будь то микроконтроллер, ЖКИ буфер, память или интерфейс клавиатуры - и может работать как передатчик или приёмник, в зависимости от назначения устройства. Обычно ЖКИ буфер - только приёмник, а память может как принимать, так и передавать данные. Кроме того, устройства могут быть классифицированы как ведущие и ведомые при передаче данных (см. таблицу). Ведущий - это устройство, которое инициирует передачу данных и вырабатывает сигналы синхронизации. При этом любое адресуемое устройство считается ведомым по отношению к ведущему [2]. На рис.1 представлено подключение устройств системы, используя шину ДПИ.

SDA"

SCL'

мк

1С0

драйвер

SRAM

МК

Рис.1. Пример конфигурации шины ДПИ с двумя МК

Возможность подключения более одного микроконтроллера к шине означает, что более чем один ведущий может попытаться начать пересылку в один и тот же момент времени. Для устранения хаоса, который может возникнуть в данном случае, разработана процедура арбитража. Эта процедура основана на том, что все ДПИ-устройства подключаются к шине по правилу монтажного И.

Генерация синхросигнала - это всегда обязанность ведущего; каждый ведущий генерирует свой собственный сигнал синхронизации при пересылке данных по шине. Сигнал синхронизации может быть изменен только, если он “вытягивается” медленным ведомым устройством (путем удержания линии в низком состоянии) или другим ведущим,

Как 8БЛ, так и 8СЬ являются двунаправленными линиями, подсоединенными к положительному

источнику питания через подтягивающий резистор (см. рис. 2). Когда шина свободна, обе линии находятся в ВЫСОКОМ положении. Выходные каскады устройств, подключенных к шине, должны иметь открытый сток или открытый коллектор для обеспечения функции монтажного И. Данные по шине 12С могут передаваться со скоростью до 100 кбит/с в стандартном режиме и до 400 кбит/с в “быстром” режиме. Количество устройств, подключенных к шине, определяется единственным параметром - емкостью линии (до 400 пф) [3].

Данные на линии 8БЛ должны быть стабильными в течение уровня логической единицы периода синхроимпульса. Состояние линии данных должно меняться, только если линия синхронизации находится в состоянии логического нуля (рис. 3). '

SDA

■IX

X

X

SCL

Л.

Данные

стабильны

Разрешена смена данных

Л.

Рис. 3. Смена состояний шины данных

Детальное описание 12С интерфейса и режимов его работы представлено в источнике [4].

Для управления режимом станичной передачи/приема данных введен бит РвБМ в регистр

Рис. 4. Структурная схема разрабатываемого блока ДПИ

Рис. 2. Подключение устройств и подтягивающих резисторов к шине ДПИ

управления модулем TWCR. Для осуществления передачи страницы данных требуется установить

бит PGEN регистра TWCR, затем произвести последовательную запись 8-ми байт данных в регистр данных TWDR, а затем осуществить инициализацию передачи данных, как это описано в источнике [2], дополнительно устанавливая при этом бит PGEN. Для осуществления приема страницы данных требуется при установке соответствующего режима приема установить дополнительно бит PGEN.

Разработка RTL-модели ДПИ интерфейса.

Для разработке RTL-модели использовался язык описания аппаратного обеспечения Verilog[5].

На рис. 4 отображены структурные компоненты, входящие в состав ДПИ. Основым компонентом блока ДПИ является модуль Control Unit. Основные функции модуля управления:

- формирование состояний блока;

- формирование статуса операций;

- контроль функционирования и взаимодействия между собой структурных компонентов блока.

Рис. 5. Машина конечных состояний FSM блока ДПИ

Ядром блока управления является машина конечных состояний FSM (рис. 5). Ниже приведено ее RTL-код:

always@(posedge clk or posedge rst) begin

if(rst) state <= 'NAS; else case(state)

'NAS:

begin

if(sr_start) state <= 'SR; else if(st_start) state <= 'ST; else if(start_completed) state <= 'MT; end 'MT: begin

if(stop_completed || mt_switch_to_nas) state <= 'NAS;

else if(mr_start) state <= 'MR; else if(!enable) state <= 'NAS; end

'MR:

begin

if(mr_switch_to_nas) state <= 'NAS; else if(!enable) state <= 'NAS; end 'ST: begin

if(st_switch_to_nas) state <= 'NAS; else if(!enable) state <= 'NAS; end 'SR: begin

if(sr_switch_to_nas) state <= 'NAS; else if(!enable) state <= 'NAS; end

default: state <= 'NAS; endcase end

Посредством управляющих сигналов осуществляется переключение блока в то или иное состояние.

Далее, рассмотрим по порядку функциональное назначение каждого, из входящих в состав блока ДПУ модулей.

Модуль Asynchrinous_Receiver представляет собой асинхронный приемник, активизирующийся во время пребывания устройства в состоянии "спящего", энергосберегающего режима, осуществляющий прием адреса, передаваемого на шину другим устройством и проверку на совпадение с адресом принимающего устройства. В случае совпадения адреса модуль формирует сигнал пробуждения устройства из спящего режима, RTL-код которого приведен ниже:

assign wake_up = bit_cntb_zero &&

(own_addr_hit || general_call_hit) && ack_bit;

Кроме этого, в случае совпадения адреса устройство формирует сигнал подтверждения совпадения ACK, в случае, когда разрешено подтверждение совпадения адреса записью логической единицы в бит TWEA регистра TWCR.

Модуль Address_Match_Unit представляет собой компаратор адреса, принимаемого устройством и схему сравнение этого адреса с адресом принимающего устройства, либо проверку на наличие общего вызова, который обеспечивает прием информации, передаваемой ведущим передатчиком всеми остальными устройствами, подключенными к шине ДПИ. Ниже приведен RTL-код формирования вышеуказанных вариантов:

assign addr_hit = (addr_in == {ADDR_WIDTH{'CLR}}

? 'CLR : (addr_in == addr_reg);

assign gc_hit = (addr_in == {'ADDR_WIDTH{'CLR}}) && general_call_en;

Модуль Receive_Transmit_Unit представляет собой приемо-передатчик данных. Регистр данных представляет собой следующую конструкцию:

reg [('DATA_WIDTH*8 - 1):0] data_page;

В случае, когда требуется осуществить передачу байта, будет задействованы только младший байт переменной data_page. При необходимости передать страницу информации будет задействованы все байты переменной.

Кроме регистра приема-передачи модуль содержит регистр, хранящий значение подтвержде-ния/неподтверждения (ACK/NACK) приема данных другим устройством.

Модуль SCL_controller выполняет следующие функции:

- генерацию тактового сигнала SCL c частотой, определяемой по формуле

SCL frequency = CPU Clock frequency

16 + 2(TWBR) 4 где

TWBR - 8-битный регистр скорости передачи, а TWPS - 2 бита предделителя, размещаемого в младших разрядах регистра статуса TWPS;

- контроль состояния шины SCL при приеме, формирование сигналов захвата и сдвига данных, а также формирование флага завершения приема/передачи, RTL-код которых приведен ниже:

assign fetch = scl_posedge && fetch_out_en;

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

assign shift = scl_negedge && shift_out_en;

assign rt_completed = last_bit && shift;

Модуль START_STOP_controller отвечает за генерацию и детектирование стартовых и стоповых посылок. Кроме этого модуль обеспечивает контроль занятости шины и сигнализирует об этом модулю управления.

Формирование посылок START/RESTART/ /STOP построено на базе машины конечных состояний, RTL-код которой представлен ниже:

always@(posedge clk or posedge rst) begin

if(rst) sp_state <= 'SP_IDLE; else if((sp_state != 'SP_IDLE) && ! enable) sp_state <= SP_IDLE; else case(sp_state)

SP_IDLE:

begin

if(stop_create) sp_state <= 'SU_STO; else if(restart_create) sp_state <= 'SU_STA; else if(start_create) sp_state <= 'HD_STA; end

'SU_STA:

if(setup_to_hold_start) sp_state <=

'HD_STA;

'HD_STA:

if(delay_cnt_one) sp_state <= ' SP_IDLE; 'SU_STO:

if(setup_to_hold_stop) sp_state <=

'HD_STO;

HD_STO:

if(delay_cnt_one) sp_state <= ' SP_IDLE; endcase end

Детектирование START/RESTART/STOP посылок осуществляется следующими процедурами: always@(posedge clk or posedge rst) begin

if(rst) start_detect_flag <= 'CLR; else if(start) start_detect_flag <= 'SET; else if(end_start) start_detect_flag <= 'CLR; end

always@(posedge clk or posedge rst) begin

if(rst) stop_detect_flag <= 'CLR; else if(stop) stop_detect_flag <= 'SET; else if(delay_cnt_one stop_detect_flag)

stop_detect_flag <= 'CLR; end

Модуль Arbitration_controller осуществляет следующую функцию арбитража. Когда два ведущих передатчика, работающих на одной и той же или близких частотах, одновременно инициируют передачу данных, они не заметят соперничества. Его наличие будет обнаружено, когда они будут передавать в одном и том же такте разные биты. Устройство, которое передает логический "0" продолжит передачу, поскольку выданное им значение благодаря подключению устройств к шине посредством функции логического "И" попадет на выход. А устройство, которое передавало логическую "1" обнаружит на шине в это время логический "0", утратит контроль над шиной и перейдет в режим приема для проверки, не к нему ли идет обращение выигравшего арбитраж ведущего. RTL-код функции приведен ниже: always@(*) begin

if(arbitration_enable scl_in) begin

if(sda_in != sda_out) arbitration_lost = 'SET;

else arbitration_lost = CLR;

end

else arbitration_lost = CLR; end

посылки RESTART ведущим модулем

Последним модулем, входящим в состав блока ДПИ, является модуль PIN_OUT_control. Он обеспечивает функцию формирования состояния шин SDA и SCL в зависимости от состояния блока ДПИ и действий, которые он производит.

Разработка RTL-модели блока осуществлялась на базе разработанных временных диаграмм поведения блока. На рис. 6 приведен пример временной диаграммы формирования посылки RESTART:

На следующем этапе проектирования блока ДПИ осуществлялось функциональное тестирование проекта на базе программного продукта NC-Launch ф.Cadence[6].

Тестовый модуль, разработанный на языке Verilog содержит подключенный модуль RTL-модели микросхемы AVR RISC архитектуры, в состав которой входит разработанный модуль ДПИ, а также набор функций для имитации работы внешних устройств, содержащих модули ДПИ.

Ниже приведен пример функции, реализующей формирование состояния START внешним устройством:

task send_start; begin

sda_ext = 1'bz;

scl_ext = 1'bz;

repeat(20) @(posedge clk);

sda_ext = 1'b0;

repeat(60) @(posedge clk);

scl_ext = 1Ъ0;

repeat(10) @(posedge clk);

sda_ext = 1'bz;

scl_ext = 1'bz;

end

endtask

Функциональные тесты были разработаны в среде AVR studio на языке высокого уровня C. Они осуществляют контроль следующих возможностей модуля ДПИ:

- формирования всех статусов модуля;

- формирования всех разрешенных действий модуля, исходя из текущего статуса;

- установки и сброса всех требуемых битов модуля;

- ведения приема/передачи в диапазоне разрешенных частот работы модуля;

- формирования прерывания, генерируемого модулем;

- работы модуля в режиме в Multi-master.

Ниже приведен фрагмент С-кода, демонстрирующий контроль формирования статусов а также разрешенных действий модуля, исходя из текущего статуса default:

// 1. default to start (08)

loop_until_bit_is_set(TWCR, TWINT);

PORTE = (TWSR * 0xf8);

if((TWSR * 0xf8) != 0x08) { PORTA = failed; while(1); }

TWCR = 0x00; delay(10);

// 2. default to WR_AT

num_op = num_op + 1; PORTB = num_op; TWCR =

(1<<TWEA)j (1<<TWEN)K 1<<TWINT);

loop_until_bit_is_set(TWCR, TWINT);

PORTE = (TWSR * 0xf8); if((TWSR * 0xf8) != 0x60) { PORTA = failed; while(1); }

TWCR = 0x00; delay(10);

// 3. default to RR_AT

num_op = num_op + 1; PORTB = num_op; TWCR =

^«TWEA)! (1<<TWEN)K 1<<TWINT);

loop_until_bit_is_set(TWCR, TWINT);

PORTE = (TWSR * 0xf8); if((TWSR * 0xf8) != 0xa8) { PORTA = failed; while(1); }

TWCR = 0x00; delay(10);

// 4. default to GCR_AT

num_op = num_op + 1; PORTB = num_op; TWCR =

^«TWEA)! (1<<TWEN)K 1<<TWINT);

loop_until_bit_is_set(TWCR, TWINT);

PORTE = (TWSR * 0xf8); if((TWSR * 0xf8) != 0x70) { PORTA = failed; while(1); }

TWCR = 0x00; delay(10);

На рис. 7 представлена временная диаграмма тестирования формирования статусов, а также разрешенных действий модуля, исходя из текущего статуса default.

Контроль правильности функционирования всех структурных узлов модуля осуществлялся средствами assertions языка Verilog.

Контроль полноты тестирования модуля ДПИ осуществлялся, используя такие средства языка Verilog как functional coverage и code coverage.

Визуальный контроль полноты тестирования осуществлялся инструментом Incisive Functional Coverage ф. Cadence[7]. На рис. 8 приведен фрагмент, отражающий контроль перехода модуля из одного состояния в другое.

TWCR

(1<<TWSTA)|(1<<TWEA)| (1<<TWEN);

0 % CLR б % Port.Apt)] 0 %. Po»t_B[7 0) 0 Port_C[70) Q %i Port_D(50) 0 Port.E [70] 0 % Port.FpO) 0 %• Port_G(4 0) 8CL SDA SET

TRISTATE

ас*_«лаЫе

dk

sd_ext ada_ext d_ri|8 1) d(_out|B 1)

cfc _pnn_en ck _pro«i1_ffi

0 pnrjtt

0 pexwt_fie

Ш rst

IB % Jd.npil В % sd_owt(8 1] 4 sd_pnr_en • Jd jMnout.en

ь 0 h sx

j E h 11 h It h 11

h it h :t

b 1

Ь E

h 30 h 78

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

'4 4

'4 2 1

*h 71 *h 71

0

■и-if?

tt FF

re ЗГ

** FF . 08_________^

СГ FF

xe- IF

_.jo_

jW o«

.2i_и

JJ*

[78

u ишшшшиии ишшишиии иишллшиии ишшллшш ишлпшшшіг _П_П______________________П_П______________П__I I 1~1 п_________пг

_п_

_п_

_п_

л_

лЛЛЛЛМПШЬ—ллллшшь

-т_п_

ишшшшь-

ГЧ_1—I_______п_г

Рис. 7. Временная диаграмма тестирования формирования статусов а также разрешенных действий

модуля, исходя из текущего статуса default

ICC - с<

age Totals

Eile yiew Window Help

Q|n)[x)'

cadence

il3 A

Test : I first

Q Filter: P

Q Displaying 256 coverage points

Coverage I Name Count ШШШ В arC h art_F о r_B in s

N/A 00 Control-oriented Coverage 202 / 250

0 69 (417/600) В Data-oriented Coverage 88/108

0 00 (0/90) ffl MCU.CORE. ALU. arithmetic_cg 0/10

1 00 (100/90) ffl MCUTWI control mt_states_cg 14/14

0 83 (75/90) ffl MCUTWI.control mr_states_cg 6/8

0 78 (70/90) ffl MCU TWI control st_states_cg 7/10

0 80 (72/90) ffl MCU.TWI.control sr_states_cg 13/18

1 00 (100/90) B MCU.TWI.control transition_status_cg 48/48 —

1 00 (100/90) s status 48/48

default_to_start 44(1) I

d efa u lt_to_wr_at 1(1) I

d efau It to g c r_at 1(1) I

default_to_rr_at 1(1) I

start_to_wr_ar 6(1) I

start_to_wr_n ar 28(1) 1

start_to_arb_lost 3(1) 1

start_to_rt_ar 1(1) 1

start_to_rt_nar 1(1) 1

start_to_al_wr_at 1(1) 1

start_to_al_gc r_at 1(1) 1

start_to_aJ_rr_at 1(1) 1

/

Line File:

1

Summary | Code/Data | FSM Functional J"

/т18С/рго)ес1$Л.аЬ351/Тгаука_Я/ЯТ1/81ти1а11оп/соу_м«)гк/с1и1Л'1Г51

Рис. 8. Визуальный контроль перехода модуля из одного состояния в другое

Следующим этапом проектирования модуля ДПИ был синтез электрической схемы. Он проводился на базе библиотеки логических элементов

технологического процесса ЬБ150 ф.ЫЬилЛу, Германия, с проектными нормами 150нм. На рис.9 представлена синтезированная электрическая схема блока ДПИ.

После проведения синтеза электрической схемы было осуществлено функциональное тестирование получившегося net-листа для контроля корректности преобразования исходного RTL-кода в net-лист. В результате тестирования были выявлены некоторые ошибки в работе блока, образовав-

module TWI(scl_in, sda_in, scl_out, sda_out, data_bus, db_twi, wr_twcr,

wr_twdr, wr_twsr, wr_twar, wr_twbr, rd_twcr, rd_twdr, rd_twsr,

rd_twar, rd_twbr, twi_irq, sleep, wake_up, re-set_wake_up, enable, rst, clk);

input scl_in, sda_in, wr_twcr, wr_twdr, wr_twsr, wr_twar, wr_twbr, rd_twcr, rd_twdr, rd_twsr, rd_twar, rd_twbr, sleep, reset_wake_up, rst, clk; input [7:0] data_bus;

output scl_out, sda_out, twi_irq, wake_up, enable;

output [7:0] db_twi;

addr_match addr_match(.data_in (data_bus), .addr_in(data_reg_bus[7:1]), .addr_reg (address),

Реализован синтез топологии блока ДПИ

и генерация sdf-файла, содержащего временные задержки элементов синтезированной топологии.

На рис. 10 представлена топология блока ДПИ с указанием габаритных размеров.

шиеся в результате не вполне корректного описания некоторых элементов блока. В результате нескольких итераций было получен ий-лист, удовлетворяющий требованиям функциональности блока ДПИ. Ниже приведен фрагмент синтезированного ий-листа:

^^_Буп_Ы1), ^с_ЬИ ^с_зуп_Ы1), .write_addr ^г_^аг), .general_call_en (gcall_en), .сік (сік), .rst (rst));

NAND2_X0d5 g759(.A1 (п_14), .А2 (п_5), .0 (db_twi[0]));

NAND2_X0d5 g760(.A1 (п_10), .А2 (п_9), .0 (db_twi[2]));

NAND2_X0d5 g761(.A1 (п_8), А2 (п_7), .0 (db_twi[1]));

NOR4_X0d5 g762(.A1 (п_2), .A2

(bit_counter[1]), .A3 (bit_counter[0]), .A4 (bit_counter[6]), .0 (п_36));

AOI222_X0d5 g763(.A1 (data_reg_bus[3]), .A2 (rd_twdr), .B1(address[2]), .В2 (rd_twar), .С1 (status[0]), .С2 (rd_twsr), .0(п_18));

Проведение тестирования синтезированного пй-листа с подключенным sdf-файлом реальных временных задержек было финальным этапом разработки блока ДПИ. Тестирование показало полную работоспособность устройства в диапазоне темпера

Рис. 10. Фрагмент топологии блока ДПИ

тур от -40°С до +125°С при максимальной тактовой частоте 32 Мгц.

Заключение

* Впервые в технологии 150 пт (ЬБ 150 0.15 um) разработан двухпроводный последовательный интерфейс Т'Щ, предназначенный для комплектования последовательными интерфейсами современных отечественных контроллеров.

* Целесообразность применения разработанного блока в устройствах, требующих осуществлять передачу и приём значительного количества информации, базируется на возможности разработанного устройства оптимизировать время обработки данных за счёт обмена страницами, что не свойственно интерфейсу 12С.

* Проведена разработка RTL модели блока ДПИ с возможностью страничного обмена данными.

* Реализован синтез схемы электрической и топологии. Проведено функциональное тестирование RTL модели, синтезированного net-листа без учета и с учетом задержек.

Литература

1. www.kazus.ru. Интерфейс I2C

2. 8-bit Microcontroller with 128K Bytes In-system Programmable Flash, Atmel, 2467S-AVR-07/09

3. www.interfacebus.com, I2C bus

4. Евстифеев А.В. Микроконтроллеры AVR семейства Mega. - М.: Издательский дом "Додэка-XXI", 2007. 587 с.

5. Cadence® Verilog®-XL Reference

Version 3.3, 2001, 566с.

6. Cadence® NCLaunch User Guide

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Version 9.2, 2009, 240с.

7. Cadence® ICC User Guide

Version 9.2, 2009, 270с.

Воронежский государственный технический университет

DESIGN TWO WIRE SERIAL INTERFACE TWI Y.A. Shkondin, A.I. Mushta, Y.S. Balashov

Designing of topology of Two Wire serial interface (TWI) was implemented in the technology LF150 (150nm). The topology block size is 226 x 211um

Key words: serial interface, design, TWI, I2C, CAD Cadence

i Надоели баннеры? Вы всегда можете отключить рекламу.