You are on page 1of 16

Top Serial Interface UART_4B

por

LÍVIA SANTANA, PETRUS ROMERO E RÔMULO MELO.

Recife, Julho de 2010


INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLIGIA DE
PERNAMBUCO

Top Serial Interface UART_4B

Equipe: Lívia Carolina Nascimento Santana (Responsável pelo Módulo 3)


Petrus Romero de Oliveira Soares (Responsável pelo Módulo 1)
Rômulo José Guimarães de Melo (Responsável pelo Módulo 2)

ORIENTADOR: Professor Doutor PAULO


SÉRGIO BRANDÃO NASCIMENTO.

Recife, Julho de 2010.


LISTA DE FIGURAS

Figura 1: Circuito Serial Interface Buffer – Módulo 1....................................................... 5


Figura 2: Formas de onda do módulo 1.............................................................................. 6
Figura 3: Circuito TX_CLK_ Generator – Módulo 2......................................................... 7
Figura 4: Formas de onda do módulo 2.............................................................................. 8
Figura 5: Sub-Circuito Control_UART – Módulo 3........................................................... 9
Figura 6: Máquinas de estados............................................................................................ 11
Figura 7: Formas de ondas do módulo 3............................................................................. 11
Figura 8: Circuito Top Serial Interface UART_4B............................................................. 13
Figura 9: Formas de ondas do módulo TOP........................................................................ 14

SUMÁRIO

1 INTRODUÇÃO ............................................................................................................... 5
2 FUNDAMENTAÇÃO TEÓRICA .................................................................................. 5
2.1 Circuito serial interface buffer – Módulo 1 ............................................................... 5
2.2 Circuito TX_CLK_Generetor – Módulo 2 ................................................................ 7
2.3 Sub-circuitos control_UART – Módulo 3 ................................................................. 9
2.4 Circuito Top Serial Interface UART_4B ......................................................................... 13
3 CONCLUSÕES 15
................................................................................................................
4 REFERÊNCIAS BIBLIOGRÁFICA ............................................................................. 15

1. INTRODUÇÃO

Esse projeto foi desenvolvido pelo professor doutor Paulo Sérgio Brandão
Nascimento, e nos foi concedido para sua análise. O nosso objetivo é analisar o
funcionamento dos quatro circuitos: o Serial Interface Buffer, o qual armazena os valores das
entradas e as transmite para a saída, uma por vez, o TX_CLK Generator que gera uma onda
de Clock Síncrono, responsável por periodizar a transmissão das entradas mencionadas, o
Control Uart que monitora os dois circuitos apresentados e o UART_4B que é a junção dos
três circuitos mencionados. Foram analisados o funcionamento e as formas de onda de cada
circuito, e todos serão apresentados nesse relatório.

2. FUNDAMENTAÇÃO TEÓRICA

2.1 Circuito Serial Interface Buffer – Módulo 1

Funcionamento do circuito:

Figura 1: Circuito Serial Interface Buffer – Módulo 1.

Esse circuito é responsável pela transmissão dos valores de Data0, Data1, Data2, e
Data 3 à saída TX_Out, além do stop bit e start bit. Seu funcionamento é controlado por uma
gama de seis Flip-flops, quatro multiplexadores e uma porta OR.

Para o começo da transmissão, primeiro se dá um pulso negativo no pino


Reset_Buffer, o que estabelece nas saídas dos Flip-flops do Data Buffer e no penúltimo, nível
baixo, e nível alto no último Flip-flop, que representa o estado de marca. Então, como no pino
Load_nTX está o bit 0, os multiplexadores estão espelhando para a suas saídas Y, a entrada A.
Assim, na entrada de cada Flip-flop está cada valor de Data, de forma ordenada. Após isso,
aplica-se um pulso de nível alto no Load_nTX, e então os Multiplexadores passam a
transmitir a entrada B, tornando a entrada de cada Flip-flop a saída do seu antecessor e a
entrada do primeiro, o valor de Vcc, que seria o stop bit. Assim, a cada pulso do
TX_CLK_Sinc, os enable’s são acionados e os Flip-flops transmitem o dado da entrada em
sua saída, gerando a transmissão dos Data’s, de forma ordenada, para a saída TX_Out. Ou
seja, start bit (nível baixo), Data3, Data2, Data1, Data0 e stop bit (nível alto) são transmitidos
um por um a saída a cada pulso do Clock síncrono, seguindo essa ordem. O clock síncrono é
gerado pelo circuito Serial Interface TX CLK Generator, e será apresentado mais a frente.

Formas de ondas:

Figura 2: Formas de onda do módulo 1.

Essa imagem foi retirada da simulação do circuito, e nos mostra as formas de onda
encontradas. Podemos observar que um pulso negativo foi dado na entrada Reset_Buffer, e
em seguida os Data’s foram implantados. O carregamento destes foi feito através do pulso
positivo no Load_nTx, o qual obteve sucesso pois os sinais a serem carregados estavam
estáveis. Em seguida, a imagem nos mostra que ao primeiro ciclo do TX_CLK_Sinc, o Start
Bit foi transmitido para a saída, com o valor de Bit igual a 0. No segundo ciclo do
TX_CLK_Sinc o Data3 foi transmitido, no próximo ciclo o Data2 foi transmitido, e assim
sucessivamente. Ao chegar o sexto ciclo do TX_CLK_Sinc, o Stop Bit foi transmitido com o
valor igual a 1. Após a transmissão desse “pacote” de dados, uma nova transmissão já pode
ser feita, basta aplicar os novos valores dos Data’s e dar um pulso positivo no Load_nTx.

2.2 Circuito TX_CLK_ Generator – Módulo 2


Funcionamento do circuito:

Figura 3: Circuito TX_CLK_ Generator – Módulo 2

Apesar de ser um circuito auxiliar, o Serial Interface TX CLK Generator é


imprescindível para o funcionamento do projeto, pois é ele quem gera o Clock síncrono, onda
responsável pela periodização da transmissão dos valores de Data no circuito Serial Interface
Buffer. Este circuito é feito pela integração de quatro Flip-flops do tipo D, cinco portas
lógicas, sendo quatro AND’s e uma NOT, além de um somador 74283.

Para se iniciar o circuito corretamente, dá-se um pulso negativo no pino


Reset_TX_CLK_GEN. Isso gera na entrada dos Flip-flops nível 0 e, quando houver o
primeiro ciclo de clock, mais precisamente na transição de descida, eles transmitirão esse bit
para as suas saídas Q. Dessa forma aparecerá nas entradas A1, A2, A3 e A4 do somador nível
lógico baixo. Na entrada Act_TX tem que ser aplicado nível 1, e assim o somador começa a
funcionar, começando do zero. Como as saídas SUM1, SUM2, SUM3 e SUM4 do somador
estão ligados pela porta AND às entradas dos Flip-flops, eles funcionarão como uma
memória, e guardarão o último valor da soma. A cada ciclo do clock o circuito somará 1,
funcionando assim como um contador. Como o somador tem 4 saídas SUM, no décimo sexto
ciclo do clock a soma ultrapassará a sua capacidade, e assim acontecerá um Over Flow, que
gerará um pulso na saída COUT do somador, e assim, um pulso na saída TX_CLK_Sinc. Ou
seja, o circuito contará 16 ciclos do Clock do sistema e gerará um pulso, esse formará a onda
do Clock síncrono.
Formas de ondas:

Figura 4: Formas de onda do módulo 2.

Analisando as formas de onda apresentadas na imagem, vemos que primeiro foi dado um
pulso negativo na entrada Reset_TX_CLK_GEN e em seguida o Act_TX recebeu nível lógico
alto. Isso permite que haja a contagem no somador e que ela comece do zero. Em seguida
podemos constatar que após 16 ciclos do Clock do sistema, o circuito gera um pulso na saída
TX_CLK_Sinc. Este último corresponde à onda mencionada na descrição do Circuito Serial
Interface Buffer.

2.3 Sub-Circuito Control_UART – Módulo 3


Figura 5: Sub-Circuito Control_UART – Módulo 3.
Funcionamento do circuito:

Este circuito é o cérebro do projeto. Ele controla as mudanças de estado e os sinais dos
outros dois circuitos, o Serial Interface Buffer e o TX_CLK_GEN. Todo o seu funcionamento
é controlado por uma Máquina de Estados do tipo Moore, gerada pelo código VHDL.

No início, é dado um pulso de reset na máquina e ela é iniciada, indo logo após ao
estado s_idle. Então, enquanto o wr_buf for igual a 0 ela permace, e quando ele tiver nível
alto e duração de dois ciclos de clock, a máquina vai para o estado s_load, que é o
carregamento dos Data’s nos Flip-flops. Nesse estado, quando o Clock Síncrono apresenta seu
primeiro ciclo, a máquina irá ao estado s_start_bit, o que caracteriza a transmissão o start bit
para a saída. No outro ciclo do Clock Síncrono o novo estado é o s_D3, no próximo é o s_D2
e assim sucessivamente. Até que se chega ao estado s_stop_bit, que indica que todos os dados
foram transmitidos. Nesse estado, quando houver o ciclo do Clock Síncrono, a máquina é
iniciada novamente e o circuito já pode transmitir outro dado.

Figura 6: Máquinas de estados.

Formas de ondas:

Figura 7: Formas de ondas do módulo 3.


A imagem com ondas nos mostra o funcionamento perfeito desse circuito de controle. Ao
aplicar o pulso positivo no pino reset_uart, podemos perceber que o circuito gera dois pulsos
negativos: um no pino reset_tx_buffer que inicializa o circuito Serial Interface Buffer, e outro
no pino reset_tx_clk_gen que inicializa o circuito TX_CLK_Generator. Isso deixa o pino done
em nível alto, indicando que uma transmissão de dados pode ser iniciada já que a interface
serial está “desocupada”. Então quando aplicamos um pulso positivo com a largura de dois
ciclos de clock no pino wr_sbuf, o pino done apresenta nível lógico 0, e o load_ntx assim
como o act_tx passam a ter nível lógico 1, indicando que os Flip-flops estão recebendo os
valores dos Data’s. Quando o primeiro ciclo do clock síncrono acontece, o pino load_ntx vai
pra nível baixo e começa a transmissão dos Data´s para a saída. Quando essa transmissão
termina, indicada na figura pelo sétimo ciclo do tx_clk_Sinc, os circuito Serial Interface
Buffer e TX_CLK_Generator são iniciados novamente, o act_tx volta a ser 0 e o done volta a
ser 1, indicando que uma nova transmissão pode ser iniciada.
2.4 Circuito Top Serial Interface UART_4B
Figura 8: Circuito Top Serial Interface UART_4B.

Descrição:

Este circuito é a união de todos os outros apresentados: o Serial Interface Buffer, o


Serial Interface TX CLK Generator e o Control_UART. Nele temos o Control_Uart como o
controlador de sinais e estados dos outros dois circuitos, o TX_CLK_GEN gerando o Clock
Síncrono que tem largura de 16 ciclos de Clock do Sistema e o TX_Buffer que carrega os
valores dos Data’s e apresenta-os na saída TX, de forma ordenada, a cada ciclo do Clock
Síncrono. O seu funcionamento é mais bem entendido ao analisar-se as formas de onda, logo
a seguir.
Formas de ondas:

Figura 9: Formas de ondas do módulo TOP.

Pela imagem podemos visualizar além das ondas, os respectivos estados em que o
circuito se encontra, deixando mais claro o seu funcionamento geral. Para o início do correto
funcionamento do circuito, foi dado um pulso positivo no pino Reset, deixando-o no estado de
inicialização. Após isso, o pino Done já adquiriu nível lógico alto, pois o circuito já estava
preparado para a transmissão, aguardando o sinal de escrita no buffer. Isso caracterizou o
estado s_idle. Ao se aplicar os valores nos Data’s e dar um pulso positivo no pino WR,
começou-se a transmissão, que automaticamente colocou o pino Done em nível baixo,
indicando o estado de s_load. Quando ocorreu o primeiro ciclo do TX_CLK, o Clock
síncrono, o start bit foi transmitido, e começou-se a transmitir para a saída TX, os valores de
D3, D2, D1, D0 e o stop bit, nessa ordem, a cada ciclo do Clock síncrono. Após a transmissão
desse último bit, o Done voltou a ter nível lógico alto, indicando que outra transmissão
poderia ser feita.

3. CONCLUSÕES
O projeto foi de suma importância para a unidade curricular de Técnicas Digitais II.
Os circuitos analisados mostram a ampla e importante aplicação dos Flip-Flops e da Máquina
de Estados Moore. Além dos componentes, o software Quartus II da Altera foi
imprescindível: aprendemos a extensa gama de ferramentas que esse programa possui, e
vimos que a sua utilização nos ajudará no mercado de trabalho. Sobre o circuito geral, foi
visto que seu funcionamento é dividido em partes, e no final ele é integrado, o que facilitou a
sua execução. Cada circuito tem uma função específica, desde a geração de uma onda, até o
controle geral do projeto. Todos os integrantes do trio participaram e se dedicaram, aplicando
seus conhecimentos e cooperando com seu companheiro. Por fim, o projeto foi bem sucedido
e proveitoso.

4. REFERÊNCIAS BIBLIOGRÁFICAS

UFRGS. Slides_1_FSM. Disponível em: <http://dase.ifpe.edu.br/capa/index.php?


pag=2#Tecnicas%20Digitais%20II>.Acesso em : 07 de julho de 2010.

IFPE. CKL1 . Disponível em: <http://dase.ifpe.edu.br/~psbn/disciplinas/Tecnicas


%20Digitais%20II/lista_e_projetos/ProjetoQuartusII/>. Acesso em: 07 de julho de 2010.

IFPE. Projeto_e_Calendario. Disponível


em:<http://dase.ifpe.edu.br/~psbn/disciplinas/Tecnicas%20Digitais
%20II/lista_e_projetos/ProjetoQuartusII/>. Acesso em : 07 de julho de 2010.

IFPE. CKL2 . Disponível em: <http://dase.ifpe.edu.br/~psbn/disciplinas/Tecnicas


%20Digitais%20II/lista_e_projetos/ProjetoQuartusII/>. Acesso em: 07 de julho de 2010.

Virtex II. FPGAs_Virtex-II_Cont. Disponível em: <http://dase.ifpe.edu.br/capa/index.php?


pag=2#Tecnicas%20Digitais%20II>.Acesso em : 07 de julho de 2010.

IFPE. CKL3 . Disponível em: <http://dase.ifpe.edu.br/~psbn/disciplinas/Tecnicas


%20Digitais%20II/lista_e_projetos/ProjetoQuartusII/>. Acesso em: 07 de julho de 2010.
IFPE. Descricao_da_Interface_Serial_TX. Disponível em: <http://dase.ifpe.edu.br/~psbn/>.
Acesso em: 11 de julho de 2010.

IFPE. CKL4 . Disponível em: <http://dase.ifpe.edu.br/~psbn/disciplinas/Tecnicas


%20Digitais%20II/lista_e_projetos/ProjetoQuartusII/>. Acesso em: 07 de julho de 2010.

You might also like