Departamento de Engenharia Electrotécnica e de Computadores Duração máxima: 60 minutos, sem consulta. Projecto de Sistemas Digitais 4º ano - 1º semestre 2º miniteste 17 de Dezembro 2007 NOME: [5 valores] 1 Sempre que um circuito síncrono tenha uma entrada assíncrona (i.e. que pode mudar de valor lógico em instantes não relacionados com o sinal de relógio) é necessário implementar uma interface adequada para que o circuito que a utiliza funcione correctamente. Exemplo de uma entrada desse tipo é o sinal rx proveniente da porta série assíncrona (RS232). Admita que esse sinal é usado directamente numa máquina de estados, tal como mostrado no código abaixo: always @(posedge clock or posedge reset) if ( reset )... case ( state ) IDLE: if ( rx ) // entrada série assíncrona state <= IDLE; // state é o registo de estado com 4 bits state <= STARTBIT;... case a) Se implementar essa máquina de estados sem incluir a referida interface no sinal rx, o circuito resultante não funcionará correctamente. Explique porquê. b) Explique em que consiste o circuito de interface que deve ser intercalado entre as entradas assíncronas e os circuitos que as utilizam (ilustre a sua resposta com um diagrama de blocos ou um excerto de código Verilog). FEUP/DEEC 2007/08 AJA/JCA 1
[5 valores] 2 Indique se as seguintes afirmações são verdadeiras ou falsas e justifique sucintamente a sua escolha: a) Quando se efectua o projecto de um sistema digital ao nível RTL usando uma HDL (por exemplo Verilog), é possível intervir no sentido de reduzir o consumo de energia. b) Com o objectivo de reduzir o consumo de energia de um sistema digital síncrono, a melhor estratégia para selecção de sinais de relógio consiste em utilizar para todo o sistema um único relógio com frequência adequada ao funcionamento de todas as suas partes. c) Se um circuito digital síncrono trabalhando à frequência de relógio F consome 1W, então se operar com um relógio de frequência igual a F/2 consumirá 0.5W. d) Uma das componentes (cada vez mais importante) de consumo de energia em circuitos digitais CMOS é devida às correntes de fugas dos transístores MOS. Para uma tecnologia dada, esta parcela pode ser optimizada se se minimizar o número de portas lógicas do circuito. FEUP/DEEC 2007/08 AJA/JCA 2
[6 valores] 3 Durante o projecto de um sistema digital destinado à FPGA Sartan3 (modelo XC3S200) é necessário implementar um multiplicador de 2 números de 64 bits (inteiros sem sinal), produzindo um resultado de 128 bits. Este multiplicador irá operar sobre dados que lhe chegam à frequência de 1MHz e poderá ser implementado pelo segmento de código Verilog seguinte. Os sinais a e b representam registos de 64 bits que armazenam os operandos, mab é um registo de 128 bits que irá conter o resultado e enable_ab é um sinal de habilitação de relógio (clock enable) com a frequência de 1MHz (a mesma a que chegam os dados a e b). always @(posedge clk50mhz or posedge reset) if ( reset ) mab <= 128 d0; if ( enable_ab ) mab <= a * b; a b * mab a) Ao efectuar a síntese RTL com a ferramenta XST concluiu-se que o circuito descrito por este código não cabe nesta FPGA: usando apenas LUTs são necessárias 4322 e a FPGA só tem 3840 (e muitas dessas são necessárias para o resto do sistema!); se se configurar o XST para utilizar apenas os multiplicadores dedicados que a FPGA possui (blocos MUL18X18 multiplicadores de 18x18 bits, produzindo um resultado de 36 bits) também não cabe porque são necessários mais do que os 12 que esta FPGA possui. Diga, justificando, quantos desses blocos multiplicadores são precisos para construir este multiplicador combinacional, tal como é representado pelo código dado. b) Como os dados a e b apenas chegam à cadência de 1MHz (habilitados pelo sinal enable_ab), em cada período desse sinal decorrem 50 períodos do relógio de 50MHz que podem ser utilizados para efectuar aquela operação de forma sequencial (e não combinacional). Mostre como poderia construir um circuito sequencial usando apenas um único bloco MUL18X18 e somadores adicionais. Apresente um diagrama de blocos, código Verilog ou diagrama de transição de estados que ajude a justificar a sua proposta. Nota: Como se sabe que o bloco MUL18X18 tem um tempo de propagação máximo inferior a 13ns, pode-se estimar que seja possível efectuar uma dessas operações em cada ciclo do relógio de 50MHz. FEUP/DEEC 2007/08 AJA/JCA 3
[4 valores] 4 Relativamente à multiplicação de dois números em vírgula flutuante (norma IEEE 754), diga, justificando, se são verdadeiras ou falsas as seguintes afirmações: a) O expoente do resultado é igual à soma dos expoentes dos operandos. b) O hidden bit da mantissa dos operandos não afecta o valor da mantissa do resultado. FEUP/DEEC 2007/08 AJA/JCA 4
- FIM - FEUP/DEEC 2007/08 AJA/JCA 5