Want your
own Fotopage?






 
Arao's FotoPage
Eletrônica na bancada
By: Arao Hayashida Filho

[Recommend this Fotopage] | [Share this Fotopage] | [Track this Fotopage]
View complete fotopage

Friday, 3-Jul-2009 23:22 Email | Share | Bookmark
Teste com o picoblaze

Outro dia achei esse interessante "soft-processor" no site da xilinx, o melhor ainda é que é disponibilizado de graça os fontes tanto em VHDL como em Verilog.

Vendo os manuais que achei, e o core dele vi que tinha até uma versão mais compacta feita para cpld, olhando os fontes não foi difícil entender o funcionamento, é realmente bem compacto.

Baixei o assembler dele disponibilizado pela xilinx e uma ide bem simples, daí estava tranquilo aqui outro dia e resolvi testar ele, imprimi o set de instruções e pensei num programa bem idiota pra fazer alguns testes.

Como já tinha feito e testado a interface do display resolvi fazer um somador em loop infinito que enviasse periodicamente o resultado da soma para o display, abaixo o fonte:


CONSTANT portaled,01
CONSTANT portabotao,02
CONSTANT contagem,FF
NAMEREG S0,contador1
NAMEREG S1,contador2
NAMEREG S2,contador3
NAMEREG S3,estado_s
ADDRESS 000

DISABLE INTERRUPT
LOAD estado_s, 00
ini:
LOAD contador1, 00
LOAD contador2, 00
LOAD contador3, 00

ini_cont:
ADD contador1, 01
COMPARE contador1, contagem
JUMP Z, fim_cont
contad2:
ADD contador2, 01
contad3: ADD contador3, 01
COMPARE contador3, FF
JUMP NZ, contad3
COMPARE contador2, FF
JUMP NZ, contad2
JUMP ini_cont
fim_cont:

ADD estado_s, 05
OUTPUT estado_s, portaled
JUMP ini


fim:

JUMP fim

Chutei 24 bits de contagem aqui, porque o picoblaze está rodando num clock
de 40MHz, foi o que eu usei pra piscar uns leds outro dia aqui quando eu testava o kit
novo do spartan 3A que me chegou aqui.

Esse código meu ficou meio ruim, até porque faz muito tempo que eu só estou trabalhando com C, mas enfim, funcionou.

A única surpresa que eu tive aqui foi quanto ao fato de que a minha ide utilizada ,o pblazeide utiliza mnemonicos diferentes dos utilizados pelo assembler da xilinx, no pblazeide a instrução COMPARE vira COMP, no conjunto de instruções tem COMP entre parenteses, só depois em outro documento vi que existe essa diferença de nomenclatura.

Isso causou uma perda de tempo para compilar o programinha, mas depois
consegui ver que era esse o problema.

É tudo muito tranquilo, o próprio assembler gera um arquivo VHDL com a ROM do processador, sem erros...

O processador é muito util, apesar de ter no máximo 1kB endereçável, o que já é mais que suficiente pra muitas aplicações, ainda mais com toda a lógica disponível de um FPGA para poder fazer determinadas funções que seriam feitas por software em um microcontrolador normal.

Outra coisa mais legal ainda foi o fato de que a área ocupada, considerando o core para interface do display, rom e processador foi menos de 2% do FPGA instalado aqui, o que dá um pouco menos que o meu projeto de interface serial publicado no opencores.

Vendo uma matéria que saiu na revista da xilinx há uns tempos, sobre o projeto de um painel publicitário, lá diz que foram usados mais de 1000 desses picoblaze.

http://www.xilinx.com/publications/xcellonline/xcell_51/xc_pdf/xc_es-tsquare51.pdf

E realmente parece uma boa escolha quando não precisamos de muita velocidade e quando simplesmente não dá tempo de se trabalhar em VHDL, já que fazer um programa é muitas vezes mais simples que projetar um hardware específico para se fazer tal função.

Bom fim de semana!


Add your comment
Name
Email (optional)
Register for updates Register for this Fotopage update (requires email)
Register for entry comments update (requires email)

More...
Link URL (optional)
verification Code
fill in the below number in the box





View complete fotopage


© Pidgin Technologies Ltd. 2008.