Buscar

[IME_2014_2]Relatorio 4-Kened Wanderson- 11321918

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

DEPARTAMENTO DE INFORMÁTICA 
 INTRODUÇÃO A MICROELETRÔNICA 
KENED W. – RELATORIO DE IME 1 
 
 
 
UNIVERSIDADE FEDERAL DA PARAÍBA 
DEPARTAMENTO DE INFORMÁTICA 
 INTRODUÇÃO A MICROELETRÔNICA 
 
 
 
RELATORIO 4 
 
 
 
 
 
Kened Wanderson Cruz Oliveira 
11321918 
DEPARTAMENTO DE INFORMÁTICA 
 INTRODUÇÃO A MICROELETRÔNICA 
KENED W. – RELATORIO DE IME 2 
 
 
SUMARIO: 
1. Genpat Pag.3 
2. Asimut Pag.7 
3. Vasy Pag.8 
4. Boom Pag.9 
5. Boog Pag.9 
6. Loon Pag.10 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
DEPARTAMENTO DE INFORMÁTICA 
 INTRODUÇÃO A MICROELETRÔNICA 
KENED W. – RELATORIO DE IME 3 
 
1. O genpat- 
Para fazermos uma simulação do circuito por padrões procedurais, vamos precisar uma 
função da biblioteca “genpat” que faz parte do nosso já conhecido pacote Alliance. 
Mais o que é o genpat? O genpat é uma ferramenta baseada na linguagem C, que nos permite 
uma descrição procedural de um arquivo de padrões de entrada para o simulador lógico 
asimut. Para fazermos a simulação, vamos precisar de um arquivo em C como entrada, depois 
gerando um arquivo de descrição de padrões como saída, no formato.pat. 
 
 Podemos descrever o Circuito somador 4bits da seguinte forma: 
#include <stdio.h> 
#include "genpat.h" 
char *inttostr(int input) { 
 char *str; 
 str = (char *)mbkalloc(32 * sizeof(char)); 
 sprintf(str, "%d", input); 
 return(str);} 
int S (int a, int b, int cin) { 
 return (a+b+cin) & 0xF;} 
int Cout (int a, int b, int cin) { 
 if ((a+b+cin)> 15) 
 return 1; 
 else 
 return 0;} 
main() { 
 int cur_vect = 0; 
 DEF_GENPAT("somador_4bit_genpat_sem_atraso"); 
 DECLAR("a", ":2", "B", IN, "3 down to 0", ""); 
 DECLAR("b", ":2", "B", IN, "3 down to 0", ""); 
 DECLAR("c0", ":2", "B", IN, "", ""); 
 DECLAR("s", ":2", "B", OUT, "3 down to 0", ""); 
 DECLAR("c4", ":2", "B", OUT, "", ""); 
 DECLAR("vdd", ":2", "B", IN, "", ""); 
 DECLAR("vss", ":2", "B", IN, "", ""); 
 LABEL("soma4bit_sem_atraso"); 
 AFFECT("0", "vdd", "0b1"); 
 AFFECT("0", "vss", "0b0"); 
 int i, j, k; 
 for (i=0; i<16; i++) { 
 for (j=0; j<16; j++) { 
 for (k=0; k<2; k++) {AFFECT(inttostr(cur_vect), "a", inttostr(i) ); 
 AFFECT(inttostr(cur_vect), "b", inttostr(j) ); 
 AFFECT(inttostr(cur_vect), "c0", inttostr(k) ); 
 AFFECT(inttostr(cur_vect), "S", inttostr(S(i, j, k))); 
 AFFECT(inttostr(cur_vect), "c4", inttostr(Cout(i, j, k))); 
 cur_vect++; 
 } 
 } 
 } 
 SAV_GENPAT(); 
} 
 
As funções S e Cout, são descrições logicas dos procedimentos; vou explicar algumas funções 
agora: 
DEPARTAMENTO DE INFORMÁTICA 
 INTRODUÇÃO A MICROELETRÔNICA 
KENED W. – RELATORIO DE IME 4 
 
 
DECLAR(―ident‖,―:spc‖,―form‖,mode,size,opt) — Descreve uma gama de 
conectores, registradores e sinais com forma similar, tamanho similar, e modo 
similar. Onde: 
.ident: nome do sinal e/ou conector. 
form: como o nome sugere, o formato do valor associado ao conector 
mode: o nome também é sugestivo, indica o ―modo‖ do conector, o tipo 
spc: o número de espaços entre cada grupo de valores associados aos conectores 
size: tamanho do barramento 
 
AFFECT(―date‖,―ident‖,―value‖) — Trata das mudanças de valor nos sinais. 
Onde: 
ident: nome do barramento ou conector que vai ser mudado 
value: valor atribuído ao sinal (binário, decimal, hexa, octal) 
 
Agora que já sabemos o funcionamento as funções principais, iremos compilar o código, assim 
gerando o arquivo.pat. Usaremos o Comando genpat somador_4bit_genpat_sem_atraso, a 
saída é mostrada a baixo, 
 
 
Podemos ver na imagem a cima que foi gerado com os 512 padrões de saída do somador, dá para 
ver claramente várias saídas na figura a cima, note q na primeira coluna não temos TP, e nas 
seguintes os tempos de propagação já começam a aparecer. 
Figura 1-Genpat 
DEPARTAMENTO DE INFORMÁTICA 
 INTRODUÇÃO A MICROELETRÔNICA 
KENED W. – RELATORIO DE IME 5 
 
Agora a simulação dos arquivos, com o comando Xpat, temos: 
 
Agora iremos fazer com atraso: 
 Vimos anterior mente o somador sem atraso, mas um somador 4bits deve conter atraso, nem 
que seja minúsculo, iremos analisar o circuito com 10000 de atraso, nosso circuito com o 
atraso adicionado ficara assim: 
#include <stdio.h> 
#include "genpat.h" 
char *inttostr(entier) 
int entier; { 
 char *str; 
 str = (char *) mbkalloc (32 * sizeof(char)); 
sprintf (str, "%d", entier); 
return(str); } 
int S (int a, int b, int cin) { 
return (a+b+cin) & 0xF; } 
int Cout (int a, int b, int cin) { 
 if (a + b + cin > 15) { 
 return 1; 
 } else return 0; } 
#define atraso 10000 
int main (void) { 
 int cur_vect = 0; 
DEF_GENPAT("somador4bit_genpat_com_atraso"); 
Figura 2- 
Linha azul: bit 0 
Linha vermelha: bit 1 
Blocos: conjunto de bits, vetor de bits 
 
DEPARTAMENTO DE INFORMÁTICA 
 INTRODUÇÃO A MICROELETRÔNICA 
KENED W. – RELATORIO DE IME 6 
 
DECLAR ("a" , ":2", "B", IN , "3 down to 0", ""); 
DECLAR ("b" , ":2", "B", IN , "3 down to 0", ""); 
DECLAR ("c_0" , ":2", "B", IN , "", ""); 
DECLAR ("c_4" , ":2", "B", OUT, "", ""); 
DECLAR ("s" , ":2", "B", OUT, "3 down to 0", ""); 
DECLAR ("vdd" , ":2", "B", IN , "", ""); 
DECLAR ("vss" , ":2", "B", IN , "", ""); 
LABEL ("somador"); 
AFFECT ("0", "vdd", "0b1"); 
AFFECT ("0", "vss", "0b0"); 
int i = 0, j = 0, k = 0; 
for (i = 0; i < 16; i++) { 
 for (j = 0; j < 16; j++) { 
 for (k = 0; k < 2; k++) { 
AFFECT (inttostr(cur_vect), "a" , inttostr(i) ); 
AFFECT (inttostr(cur_vect), "b" , inttostr(j) ); 
AFFECT (inttostr(cur_vect), "c_0" , inttostr(k) ); 
cur_vect += atraso; 
AFFECT (inttostr(cur_vect), "c_4" , inttostr(Cout(i,j,k)) ); 
AFFECT (inttostr(cur_vect), "s" , inttostr(S(i,j,k))); 
cur_vect += atraso; 
}} } 
 SAV_GENPAT (); 
return(0); } 
Agora com o arquivo do circuito complete, vamos gerar o arquivo .pat: 
genpat somador_4bit_genpat_com_atraso_10000 
Após gerar o arquivo, abra o Xpat, e vamos analisar a mudança: 
 
 
Figura 3 
DEPARTAMENTO DE INFORMÁTICA 
 INTRODUÇÃO A MICROELETRÔNICA 
KENED W. – RELATORIO DE IME 7 
 
 
Podemos observa que gerou erros. Então temos que fazer uma melhoria, Testamos com 
18000, encontramos que está em perfeitas condições, mas precisamos ter um valor menor. 
Logo testamos com 16500 e descobrimos que não teve erros, em seguida geramos o arquivo 
.pat, que nos mostrou a seguinte imagem no Xpat: 
 
 
Figura 4 
A compilação foi um sucesso, como pode ser visto na imagem abaixo. 
 
Figura 5 
 
2. Asimut 
 Feita para descrição de hardwares, o Asimut é uma ferramenta que pega a descrição 
do hardware em VDHL, então ele busca o arquivo .pat e depois de verificar ele realiza a 
geração de mais um arquivo .pat, só que com os resultados obtidos, o Asimut faz parte dos 
pacotes do Alliance. 
DEPARTAMENTO DE INFORMÁTICA 
 INTRODUÇÃO A MICROELETRÔNICA 
KENED W. – RELATORIO DE IME 8 
 
 
Alguns comandos do Asimut: 
$export MBK_OUT_LO=vst 
$cougar -f somador_4bit_genlib_ocp_4_rows_nero 
$export MBK_IN_LO=vst 
$asimut somador_4bit_genlib_ocp_4_rows_nerosomador_4bit_genpat_com_atraso 
_16500 somador_4bit_genlib_ocp_4_rows_nero_com_atraso_res 
 
Após a utilização das linhas de código, geramos a simulação a baixo: 
 
 
 
Figura 6 
 
3. Vasy 
O Vasy tem a função de analisar a ordem de preferência dos arquivos escritos em VDHL e 
também faz a conversão desses arquivos, para que possamos reaproveita-lo em outras 
fermentas. 
 
Alguns Comandos do Vasy: 
$–a –l vhd somador_4bit somador_4bit_vasy 
 
Esse comando vai gerar um arquivo somador_4bit_vasy.vbe, esse arquivo comporta a soma 
de a, b e c. 
Como o Asimut não suporta a configuração do std logic, então foi trocado pelo bit, ficando 
como visto a baixo: 
 
DEPARTAMENTO DE INFORMÁTICA 
 INTRODUÇÃO A MICROELETRÔNICA 
KENED W. – RELATORIO DE IME 9 
 
 
Figura 7 
Logo a pós o segundo código: 
$asimut –b somador_4bit_vasy somador_4bit_genpat_sem_atraso somador_4bit_vasy_res 
 
 É utilizado o argumento -b para que o simulador do Asimut simule os pontos VST por 
default, com isso foi gerado o arquivo .pat sem nenhum erro, como visto na imagem abaixo. 
 
Figura 8 
 
4. Boom 
Boom (Boolean Minimization) serve para sintetizar, descrevendo o comportamento em nível 
de silício, Ele faz otimizações por transformações booleanas para reduzir o número de 
operações lógicas do circuito. Pra isso iremos trabalhar com a linguagem C. Agora vamos 
simular o arquivo de entrada, é necessário a descrição comportamental do circuito .vbe 
Usaremos os seguintes códigos: 
 
$boom somador_4bit_vasy somador_4bit_vasy_boom_0 
 $boom –l 3 somador_4bit_vasy somador_vasy_boom_3 
DEPARTAMENTO DE INFORMÁTICA 
 INTRODUÇÃO A MICROELETRÔNICA 
KENED W. – RELATORIO DE IME 
1
0 
 
 
Feito isso, foi gerado dois arquivos de 4bit, no qual o primeiro foi otimizado em nível 
0(mínimo de esforço na sintetização), e o segundo com o nível 3(máximo de esforço 
na sintetização). 
 
5. Boog 
 
O Boog é um mapeador de uma descrição comportamental, de uma biblioteca do SXLIB. É o 
segundo passo da síntese lógica: constrói uma rede de porta utilizando uma biblioteca de 
células padrão. O ' -m <n>' representa os parâmetros para simulação onde N é o número 
entre 0 e 4. Caso o 0 for escolhido, a área do circuito será reduzida, porém se o 4 for o 
escolhido, o tempo de atraso vai diminuir. 
 
Usaremos os códigos a baixo: 
$boog somador_4bit_vasy_boom -0 somador_4bit_vasy_boom_l3_boog 
$boog somador_4bit_vasy_boom_l3 -0 somador_4bit_vasy_boom_l3_boog 
 
Foi gerado os arquivos mostrados a baixo, sendo que a linha vermelha mostra o caminho mais 
longo a ser perseguido. 
 
Podemos usar as linhas vermelhas, ditas anteriormente, para calcular a relação tamanho, 
tempo de atraso. Vamos olhar o qual ponto tem menor tempo de atraso com os seguintes 
códigos: 
$ boog -m 4 somador_4bit_vasy_boom_3 -o somador_4bit_vasy_boom_3_boog_4 
$ boog -m 4 somador_4bit_vasy_boom_0 -o somador_4bit_vasy_boom_0_boog_4 
 
E com isso foi gerado as seguintes imagens: 
 
 
6. Loon 
DEPARTAMENTO DE INFORMÁTICA 
 INTRODUÇÃO A MICROELETRÔNICA 
KENED W. – RELATORIO DE IME 
1
1 
 
Loon (local otimization of nerts), é a ferramenta que lida com número de portas de entrar que 
tem conexão com uma porta lógica, pode ser utilizada para diminuir o tempo de atraso. . Ela 
que permite a remoção de problemas relacionados ao fan-out (número de portas de entrada 
ao qual uma porta lógica está conectada). 
 
Usaremos os códigos abaixo: 
 
 
& loon somador4bit_vasy_boom_0_boog_0 somador4bit_vasy_boom_0_boog_0_loon_0 
& loon somador4bit_vasy_boom_3_boog_0 somador4bit_vasy_boom_3_boog_0_loon_0 
& loon somador4bit_vasy_boom_0_boog_4 somador4bit_vasy_boom_0_boog_4_loon_0 
& loon somador4bit_vasy_boom_3_boog_4 somador4bit_vasy_boom_3_boog_4_loon_0 
& loon –m 4 somador_4bit_vasy_boom_0_boog_0 
somador_4bit_vasy_boom_0_boog_0_loon_4 & loon –m 4 
somador_4bit_vasy_boom_3_boog_0 somador_4bit_vasy_boom_3_boog_0_loon_4 & loon –
m 4 somador_4bit_vasy_boom_0_boog_4 somador_4bit_vasy_boom_0_boog_4_loon_4 & 
loon –m 4 somador_4bit_vasy_boom_3_boog_4 
somador_4bit_vasy_boom_3_boog_4_loon_4 
 
Com isso foi gerado 8 arquivos novos, esse processo retirou o fan-out, isto é, ouve uma 
redução no número de portas logicas de entrada, com isso, teve uma redução no tempo de 
atraso de propagação, Podemos verificar esses tempos no terminal após a compilação, 
imagem do circuito com menor atraso a baixo: 
DEPARTAMENTO DE INFORMÁTICA 
 INTRODUÇÃO A MICROELETRÔNICA 
KENED W. – RELATORIO DE IME 
1
2 
 
 
 
Figura 14

Outros materiais