tristate

Linguagem descritiva de hardware

Moderadores: guest2003, 51

tristate

Mensagempor tcpipchip » 06 Jun 2021 18:20

estou finalizando um UCP para FPGA e na especificação coloquei vários elementos ROM, RAM, FF, REG ligados no mesmo DATA BUS com TRISTATE.

Disseram que não é uma boa prática...pq ?
------------------------------------------
http://www.youtube.com/tcpipchip
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6504
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Re: tristate

Mensagempor aluis-rcastro » 07 Jun 2021 11:11

Palpite...só se nenhum deles for ao menos weak pull para algum nível lógico, faz sentido ?
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
aluis-rcastro
Dword
 
Mensagens: 5392
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: tristate

Mensagempor tcpipchip » 08 Jun 2021 13:47

Faz sentido...
Mas...não queria mexer muito no que esta funcionando!
Pediram para por vários MUX :(
------------------------------------------
http://www.youtube.com/tcpipchip
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6504
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Re: tristate

Mensagempor tcpipchip » 11 Jun 2021 12:32

veja isto :(

Em vez disso, usar um multiplexador com saída ativada também não funcionará se você pretende sintetizar seu projeto para FPGA, já que os sinais tristate não são suportados nos FPGAs (atuais). Na melhor das hipóteses, os sinais tristate serão emulados por meio de lógica adicional pelo sintetizador lógico. Eu recomendaria usar um multipler simples, que seleciona a saída correta com base na faixa de endereço de leitura.

QUE M. nao queria reprojectar a M+++ :(
------------------------------------------
http://www.youtube.com/tcpipchip
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6504
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Re: tristate

Mensagempor msamsoniuk » 28 Jun 2021 14:33

eh, dentro da FPGA nao tem elementos com tri-state, eles sao de uso exclusivo para pinos de IO. um grande problema do tri-state eh que permite contencao de bus e isso reduz a velocidade, ou seja, ao inves de operar no range entre 250 e 750MHz tipico para FPGAs, o tri-state baixaria essa velocidade para algo entre 25 e 100MHz.

a alternativa hi-speed para agregar barramentos eh usar mux.
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2934
Registrado em: 13 Out 2006 18:04

Re: tristate

Mensagempor tcpipchip » 28 Jun 2021 20:24

Exato Marcelo

Já estou reconstruindo o processador com esta configuração!

Todas as OUTPUTS indo para um MUX.
------------------------------------------
http://www.youtube.com/tcpipchip
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6504
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Re: tristate

Mensagempor tcpipchip » 29 Jun 2021 09:19

esta é a variante dele, mas escrito em C#

https://www.youtube.com/watch?v=F27MNn1m-mI

Falta hoje, apenas finalizar o Hardware aqui no Altera
------------------------------------------
http://www.youtube.com/tcpipchip
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6504
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Re: tristate

Mensagempor tcpipchip » 01 Jul 2021 19:34

Removido tristate!
Maquina RISC finalizada
Imagem
------------------------------------------
http://www.youtube.com/tcpipchip
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6504
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Re: tristate

Mensagempor tcpipchip » 01 Jul 2021 19:37

M+++ lite Evolution - 8 bits
64K de ROM
256B de RAM
256B de STACK
18 INSTRUÇÕES
acesso a memoria RAM direto ou indiretamente
4 ENTRADAS DIGITAIS de 8 BITS
4 SAIDAS DIGITAIS de 8 BITS
INSTRUCOES ADD,SUB, AND, OR, NOT, XOR, INC, CALL, RET, JMP, JMPZ, JMPZ, MOV, PUSH, POP
ASSEMBLADOR

https://youtu.be/HqbfzF_YWV8
------------------------------------------
http://www.youtube.com/tcpipchip
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6504
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Re: tristate

Mensagempor msamsoniuk » 24 Jul 2021 13:55

voce tem que fazer um salto de feh ae e ir logo para verilog! e depois adotar o RISC-V! :mrgreen:
#innovation #poweredby #riscv https://github.com/darklife/darkriscv
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2934
Registrado em: 13 Out 2006 18:04

Re: tristate

Mensagempor tcpipchip » 25 Jul 2021 13:34

o RISC V já estou 'testando" faz uns 6 meses...:)
------------------------------------------
http://www.youtube.com/tcpipchip
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6504
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Re: tristate

Mensagempor tcpipchip » 25 Jul 2021 13:36

"feh" está em HEXADECIMAL ?
------------------------------------------
http://www.youtube.com/tcpipchip
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6504
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Re: tristate

Mensagempor msamsoniuk » 25 Jul 2021 14:28

salto de feh, vc tem que assistir mais indiana jones! eh que eu tenho preguica de usar acentuacao qdo estou em "modo descanso" :mrgreen:

Imagem

mas entao, tem varios sabores de RISC-V! :mrgreen:

o meu eh um pouco mais complexo pq eu queria primar pela performance, com CPI ~ 1 (clocks per instruction) e ele chega a 1.15, o que eh bem bom, mas ao custo de um certo nivel de complexidade (pipeline de 3 estagios, memorias sincronas, arquitetura de harvard, duplicacao de banco de registros, suporta threading, etc). o meu ficou popular entre estudantes por ser em verilog, visto que no comeco a maioria dos cores era montada em linguagens de alto nivel, como o vexriscv, que eh um core com pipeline de 5 estagios e CPI ~ 1, mas escrito em chisel (parente de escala) e que usa um tool de conversao para gerar um verilog ininteligivel hehehe

tem o core de um amigo meu fez o desenvolvimento de um core do zero que eh mais simples (maquina de estado, arquitetura von neumann, bem estruturado, etc) e gravou tudo:

https://www.youtube.com/playlist?list=PLEP_M2UAh9q52a-w3ZUEChEoG_ROeMa88

outra opcao legal eh o SERV, que eh um RISC-V bit-serial, ou seja, ele ocupa bem pouco espaco as custas da performance (CPI >= 32). comparativamente, em uma FPGA onde se coloca 100 vexriscv rodando em 100MHz, eh possivel colocar 1024 cores SERV rodando em 128MHz e que permite muita pesquisa relacionada a HPC com poucos recursos. com o meu core, darkriscv, eu fiz um experimento na mesma placa com um unico core e 128 threads, bem louco! :mrgreen:

sobre o SERV, ele tipicamente ocupa 1/4 do tamanho dos menores RISC-V e tem ateh um concurso para ver quem coloca mais cores, as duas entradas de 1024 cores (5a e 6a) sao minhas:

https://corescore.store

no mais, o santo graal ainda eh o GRVI do Jan Gray:

https://forums.xilinx.com/t5/Xcell-Daily-Blog-Archived/Shazam-Jan-Gray-gets-1680-RISC-V-processors-to-dance-on-the-head/ba-p/789549

todo mundo fica tentando entender como ele conseguiu chegar a apenas 320LUTs e 375MHz nesse core:

Imagem

ao que parece a chave eh construir algumas unidades que sao menos usadas, mas consome mais area de forma compartilhada, como shift e tal. outra tecnica eh que ele meio que roteia e otimiza tudo na mao.

enfim, o bom do RISC-V eh que a spec minima RV32E com apenas 37 instrucoes eh perfeitamente suportada pelo GCC, o que significa zero esforco na parte de software! :mrgreen:
#innovation #poweredby #riscv https://github.com/darklife/darkriscv
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2934
Registrado em: 13 Out 2006 18:04


Voltar para Verilog, VHDL, SystemC ( PLAs, CPLDs, FPGAs, etc... )

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x