Sie sind auf Seite 1von 4

Escola Politcnica da Universidade de So Paulo Departamento de Engenharia de Sistemas Eletrnicos - PSI

PSI-2553- Projeto de Sistemas Integrados

Experincia 2.A: Implementao e Simulao de Circuito Fibonacci RTL (Teoria)


M.S. / W.J.C. / M.A.R.J. (12)
1. OBJETIVOS 2. PARTE TERICA 2.1. Descrio RTL - a mquina de estados e a parte operativa 2.2. Testbench e Projeto RTL 2 2 2 4

1. Objetivos
Esta experincia visa a implementao e a simulao do circuito de computao do nmero de Fibonacci projetado na experincia 1.

2. Parte Terica
2.1. Descrio RTL - a mquina de estados e a parte operativa De acordo com a metodologia de projeto de circuito em RTL (register-transfer level) proposta por F.Vahid, apresentada nas aulas tericas, pode-se obter uma descrio em RTL de um circuito a partir do seu algoritmo seguindo um conjunto de regras prestabelecidas. O nomenclatura RTL denota que os registradores j esto definidos (implcita ou explicitamente) na descrio e portanto devemos utilizar o sinal de relgio (clock). A metodologia estruturada utilizada na experincia 1 leva a uma descrio com dois componentes: o controlador (uma mguina de estados, FSM) e uma parte operativa (tambm chamada de datapath). Dentre as muitas formas possveis para a descrio do circuito, continuaremos a adotar a linguagem VHDL e introduziremos uma forma estruturada para os dois componentes acima. Modelos genricos de representao VHDL que chamaremos de gabaritos (templates) sero utilizados para a descrio de projetos RTL. 2.1.1. Controlador - a mquina de estados A Figura 1 evidencia os aspectos principais de um controlador e que faro parte do gabarito. O leitor mais atento logo consiguir associar os sinais genricos (de entrada e sada) da figura com os sinais de exemplos VHDL j vistos anteriormente. Existem dois sinais que representam os estados (futuros flip-flops), mas elas so elementos internos, pois do ponto de vista de caixa preta, no so visveis para o ambiente externo ao controlador. O cdigo da arquitetura dividida em trs (3) sees, ou seja, trs processo concorrentes: - SEQ: a parte sequencial que cuida da mudana (ou no) de estados a cada ciclo de relgio. Em toda subida do clock (ou ativao do reset), o valor do next_state atualizado para o state (ou estado inicial S0, no caso de reset). O caso em que next_state igual ao state equivale a no haver mudana de estado. - COMB: a parte lgica combinacional para a computao do valor de next_state. Pela definio da mquina de estados, o estado futuro depende de entradas e do estado presente. Portanto, qualquer mudana (ver a lista de sensibilidade) do estado ou de valores de entrada, determina uma nova computao de next_state. - SAI: a parte lgica combinacional para a computao dos valores dos sinais de sada. Por se tratar de uma Mquina de Moore, a sada depende apenas do estado presente. Portanto, qualquer mudana (ver a lista de sensibilidade) do estado determinar uma nova computao dos sinais de sada. Ento, de acordo com o seu projeto especfico, o usurio preenche os sinais e condies da mquina de estados.

COMB (sensvel a mudanas de state e todas as entradas) igual ao caso S1 state=S0 state=S1 combinaes de sinais de entrada next_state= Sj state=Sn igual ao caso S1 state SEQ (sensvel a mudanas de reset ou clock) reset=1 state= S0 reset clock next_state= Sk Entradas (do circuito ou do datapath)

reset=0

state= next_state state

SAI (sensvel a mudanas de state) igual ao caso S1 state=S0 state=S1 sada_1= valor sada_2= valor sada_3= valor etc. Sadas (do circuito ou para o datapath)

state=Sn

igual ao caso S1

Figura 1. Gabarito do controlador

2.1.2. Parte Operativa (datapath) O modelo VHDL do datapath tambm segue um gabarito. Primeiramente, so definidos os elementos de datapath que podero ser utilizados. Todos os dados de entrada ou sada so do tipo standard_logic_vector e o tamanho parametrizado por um valor definido pela estrutura GENERIC. Os elementos so: o multiplexador 2x1 de n bits, com um sinal de seleo. o registrador controlado por load (obs. no tem reset, clear, etc.) o somador de n bits com n bits de sada, sem indicador de overflow. o subtrator de n bits com n bits de sada. o comparador (igual a) de n bits. Em caso de o primeiro dado ser igual ao segundo, a sada 1. O uso do gabarito do datapath bastante simples, pois implica apenas na instanciao dos componentes, utilizando-se o nmero necessrio definido por projeto. 2.2. Testbench e Projeto RTL J foi discutida a importncia dos testbenches para se verificar que o projeto realizado esteja funcionando corretamente. O testbbench na prtica um software que perrnite a injeo e aceitao de dados e flags do mdulo sob teste.. Na verso anterior utilizamos uma descrio algortmica tanto para o circuito como para o mdulo testador. Quando tratamos de um projeto em nvel RTL, significa que este necessita ser simulado em um ambiente em que exista sinal de relgio. Por outro lado, o interessante que o gerador de estmulos pode ser ainda composto por um cdigo sem sinal de relgio, desde que a temporizao seja compatvel com o mdulo RTL. Esta situao capturada na Figura 2, onde o gerador de estmulos a origem do sinal de relgio e reset, porm estes tm efeito apenas no mdulo de projetoFibonacci.

TESTBENCH

Gerador de estmulos

Controle de clock e reset

reset clock

Projeto RTL

Demais controle de sinais

demais sinais

Figura 2. Testbench para a Projeto RTL

Das könnte Ihnen auch gefallen