Baixe o app para aproveitar ainda mais
Prévia do material em texto
TUTORIAL PLACA DE1 DA ALTERA VICTOR RAPHAEL BRAGA DE SALES MASCARENHAS LUCIO BARROS Sumário INTRODUÇÃO ................................................................................................................................... 3 DOWNLOAD DO QUARTUS II WEB EDITION ......................................................................................... 7 EXEMPLO DE PROJETO USANDO QUARTUS II WEB EDITION ................................................................. 10 DIAGRAMA ESQUEMÁTICO .............................................................................................................. 10 COMPILAÇÃO ................................................................................................................................. 14 EXEMPLO PROJETO EM VHDL.......................................................................................................... 15 SIMULAÇÃO USANDO MODELSIM ..................................................................................................... 17 PIN PLANNER E PROGRAMMER ........................................................................................................ 26 EXEMPLOS PROPOSTOS ................................................................................................................... 31 CIRCUITOS LÓGICOS COMBINACIONAIS ............................................................................................. 31 PORTAS LÓGICAS ............................................................................................................................ 31 MULTIPLEXADORES, DEMULTIPLEXADORES, CODIFICADORES E DECODIFICADORES ................................ 36 CIRCUITOS ARITMÉTICOS ................................................................................................................. 49 LOGICA SEQUENCIAL ....................................................................................................................... 55 FLIP – FLOP D ................................................................................................................................ 55 FLIP-FLOP S-R ................................................................................................................................ 60 FLIP FLOP JK. ................................................................................................................................. 66 INTRODUÇÃO Esse tutorial foi criado para fins educacionais, visando o auxilio de outros alunos que utilizaram a ferramenta no futuro. O software a ser utilizado na edição e criação de projetos será o Quartus II Web Edition, é importante destacar que o software não requer licença, já na simulação estaremos usando o ModelSim ambos da Altera. Tutorial este escrito em forma de passo-a-passo, iniciando no download do software na pagina da Altera, até projetos mais complexos utilizando a ferramenta, projetos tais irão ser demonstrados como exemplos de lógica combinacional e sequencial. A imagem acima representa a placa e seu esquema de pinos . Abaixo descreverei todos os componentes que acompanham esse poderosa placa, características dadas pelo fabricante do produto. Altera Cyclone ® II 2C20 FPGA device Altera Serial Configuration device – EPCS4 USB Blaster (on board) for programming and user API control; both JTAG and Active Serial (AS) programming modes are supported 512-Kbyte SRAM 8-Mbyte SDRAM 4-Mbyte Flash memory SD Card socket 4 pushbutton switches 10 toggle switches 10 red user LEDs 8 reen user LEDs 50-MHz oscillator, 27-MHz oscillator and 24-MHz oscillator for clock sources 24-bit CD-quality audio CODEC with line-in, line-out, and microphone-in jacks VGA DAC (4-bit resistor network) with VGA-out connector RS-232 transceiver and 9-pin connector PS/2 mouse/keyboard connector Two 40-pin Expansion Headers with resistor protection Powered by either a 7.5V DC adapter or a USB cable Cyclone II 2C20 FPGA 18,752 LEs 52 M4K RAM blocks 240K total RAM bits 26 embedded multipliers 4 PLLs 315 user I/O pins FineLine BGA 484-pin package Serial Configuration device and USB Blaster circuit Altera’s EPCS4 Serial Configuration device On-board USB Blaster for programming and user API control JTAG and AS programming modes are supported SRAM 512-Kbyte Static RAM memory chip Organized as 256K x 16 bits Accessible as memory for the Nios II processor and by the DE1 Control Panel SDRAM 8-Mbyte Single Data Rate Synchronous Dynamic RAM memory chip Organized as 1M x 16 bits x 4 banks Accessible as memory for the Nios II processor and by the DE1 Control Panel Flash memory 4-Mbyte NOR Flash memory. 8-bit data bus Accessible as memory for the Nios II processor and by the DE1 Control Panel SD card socket Provides SPI mode for SD Card access Accessible as memory for the Nios II processor with the DE1 SD Card Driver Pushbutton switches 4 pushbutton switches • Debounced by a Schmitt trigger circuit • Normally high; generates one active-low pulse when the switch is pressed Toggle switches 10 toggle switches for user inputs A switch causes logic 0 when in the DOWN (closest to the edge of the DE1 board) position and logic 1 when in the UP position Clock inputs 50-MHz oscillator 27-MHz oscillator 24-MHz oscillator SMA external clock input Audio CODEC Wolfson WM8731 24-bit sigma-delta audio CODEC Line-level input, line-level output, and microphone input jacks Sampling frequency: 8 to 96 KHz Applications for MP3 players and recorders, PDAs, smart phones, voice recorders, etc. VGA output Uses a 4-bit resistor-network DAC With 15-pin high-density D-sub connector Supports up to 640x480 at 60-Hz refresh rate Can be used with the Cyclone II FPGA to implement a high- performance TV Encoder Serial ports One RS-232 port One PS/2 port DB-9 serial connector for the RS-232 port PS/2 connector for connecting a PS2 mouse or keyboard to the DE1 board Two 40-pin expansion headers 72 Cyclone II I/O pins, as well as 8 power and ground lines, are brought out to two 40-pin expansion connectors 40-pin header is designed to accept a standard 40-pin ribbon cable used for IDE hard drives Resistor protection is provided DOWNLOAD DO QUARTUS II WEB EDITION A Altera disponibiliza o Quartus II Web Edition em seu site, sem a necessidade de nenhuma licença. Primeiramente faça o download no site www.altera.com, na opção Download & Licensing, que disponibiliza a versão para Windows ou Linux como o usuário desejar. No site http://dl.altera.com/?edition=web, esta disponível todas as versões do software, escolha a versão que lhe for mais útil É necessário ter um cadastro no site da Altera, para fazer o download do programa. Caso já possua uma conta no site da Altera, apenas efetue o login. Para criar uma conta no Altera.com, escolha a opção: Create Your Altera.com Account, digite o endereço de e-mail no seguinte campo: Enter your email address, e clicar no botão Create Account. Preencha o formulário, e crie sua conta de usuário. Crie um nome de usuário e senha, e marque a opção: I agree to the Termsof Service. Depois clique no botão: Create Account. Após concluir a criação da conta no site Altera.com. Click no botão: Continue, para iniciar o download do Quartus II. Feito o download do arquivo, é só instalar o software. EXEMPLO DE PROJETO USANDO QUARTUS II WEB EDITION DIAGRAMA ESQUEMÁTICO O primeiro passo é criar um novo diagrama esquemático, então vamos seguir os seguintes passos. File > New > Block Diagram / Schematic File Na tela que irá ser aberta iremos desenvolver nosso projeto. Em seguida Click no botão Symbol, após isso irá abrir as libraries, selecione a aba primitives depois logic. Feito isso selecione a porta desejada, após sua seleção será possível ver sua ilustração no campo a direita. Em breves passos: Symbol > Libraries > Primitives > Logic Agora, monte o modelo esquemático e depois insira as entradas (input) e saídas (output) no diagrama. Veja o exemplo abaixo, mostrando os detalhes do passo descrito. Agora iremos salvar o modelo criado, então vamos realizar o seguinte processo . File > Save As Crie um diretório para o arquivo, nesse caso esta sendo usada a pasta ModeloEsquematico, em seguida dê um nome ao diagrama, este foi salvo com o nome de s1. Em seguida click em salvar. Em seguida, click em sim na janela onde esta perguntando se deseja criar um projeto deste arquivo. Click em next, na janela posterior. Selecione na aba família, a placa Cyclone II e procure o nome EP2C20F84C7N, em seguida prossiga e finalize o novo projeto. COMPILAÇÃO Após a criação e edição do projeto, nos o salvamos em um diretório qualquer, agora iremos compilar esse arquivo para validarmos o esquema criado. Estarei informando três maneiras diferentes de compilarmos um projeto. Vá no menu Processing > Start Compilation. Ou usando as teclas de atalho Ctrl+L. Ou se preferir, Click no símbolo de compilação como esta sendo mostrado abaixo. Enfim concluímos o projeto agora vamos para a segunda etapa, onde se refere a o projeto de VHDL. EXEMPLO PROJETO EM VHDL O projeto em VHDL é parecidíssimo com o diagrama esquemático, como já vimos anteriormente precisamos criar um novo arquivo, então vamos em File > New > VHDL File, a figura abaixo demonstra claramente o que esta descrito. Agora iremos escrever o código em VHDL, em seguida salve o código, lembre-se de não colocar espaços no nome do diretório. Repita os passos que já foram feitos anteriormente para criar o projeto. SIMULAÇÃO USANDO MODELSIM O software utilizado para simular os arquivos em VHDL é o ModelSim, ferramenta muito utilizada na Engenharia, ela possibilita a visualização de como irá se comportar nosso algoritmo. O primeiro passo é criar uma biblioteca (Library), File > New > Library Insira o nome da biblioteca em Library Name, click em ok para finalizar a criação. É muito importante criar essa biblioteca, pois assim poderemos simular os arquivos em VHDL, sem ela não seria possível simular nem organiza-los no ModelSim. Após a criação da biblioteca, ela estará visível na parte inferior da janela principal do programa, podemos notar na figura abaixo. Após criada a biblioteca, é hora de criarmos um novo projeto, nele estará nossos arquivos em VHDL. Vá em File > New > Project Determine o nome do projeto, o local onde ele será salvo, importante, não use espaço no endereço do diretório, e por fim indique o nome da biblioteca. Após a criação do projeto, insira os arquivos VHDL, o usuário irá visualizar a seguinte janela. Caso isso não ocorra, click com o botão direito na área em branco da janela no ModelSim. Add to Project > Existing File Click no botão Browse para procurar o diretório onde esta o código vhdl, em seguida click em abrir. Posteriormente o arquivo ser adicionado, teremos que compila-lo novamente, desta vez no software ModelSim, compile o código em VHDL desta forma. Selecione o arquivo, click com o botão direito em cima dele, selecione o campo - Compile > Compile Selected Em seguida a compilação simule o arquivo, Selecione o campo: Simulate > Start Simulation. Click no botão + da biblioteca work em seguida selecione o arquivo que foi compilado anteriormente (s1) e click OK. Irá abrir duas janelas, a da esquerda representa o modelSim e seus objetos, já a da direita a ferramenta Wave. Pode ocorrer da ferramenta Wave não inicie junto com a janela do modeSim, então vá até a aba Viem > Wave. Na subjanela Objects, click com o botão direito em qualquer variável, selecione : add > to wave > signals in design, assim todas as variáveis, tanto de entrada como saída irão ser adicionadas no wave. Para inserir o período de clock nas variáveis, click com o botão direito, vá na opção Clock, na caixa Period e determine o valor do periodo, faça isso em todas as variáveis, sempre dobrando o valor do período nas variáveis seguintes, criando assim a tabela da verdade. Insira o tempo desejado na caixa destacada, e execute a simulação. Se todos os passos forem feitos de forma correta, os resultados obtidos serão os abaixo. Cada variável terá sua respectiva representação de onda. PIN PLANNER E PROGRAMMER Após o projeto ter sido simulado, devemos fazer o Pin Planner para podermos passá-lo para a placa, para fazer isso clique em no Menu “Assignments – Pin Planner”. Uma nova janela irá ser aberta, aonde preencheremos o campo Location de acordo com o valor do pino dado no manual do usuario da placa Altera DE-1. Após termos preenchido o campo location corretamente, devemos fechar a janela do pin planner e compilar novamente nosso projeto, após isso devemos acessar o programmer clicando no menu “Tools – Programmer” clicar no Menu Programmer. Após o clique, a janela abaixo será aberta. Se a placa nao estiver conectada ao computador , ao lado do botão “hardware setup” irá aparecer “no hardware” Se esta mensagem estiver aparecendo verifique se a placa esta corretamente conectada ao computador e clique no botao hardware setup. Feito isso, a Janela abaixo aparecerá. Em “current selected hardware”, selecione USB Blastter. Clique em close. Agora o botão Start aparecerá, aperte-o. Se tudo foi feito corretamente, a barra ficará verde e o programa terá sido sintetizado na placa DE-1. EXEMPLOS PROPOSTOS CIRCUITOS LÓGICOS COMBINACIONAIS PORTAS LÓGICAS Questão 1 Utilizando o modo editor gráfico (Desenho Esquemático) do Software QuartusII, projete e simule os circuitos digitais que satisfaçam as expressões algébricas dadas: Tabela-verdade. A B C D S 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 1 1 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 Diagrama esquemático. Questão 2 Projete um circuito que execute simultaneamente as funções lógicas dadas: Código VHDL Questao 3 Projete um circuito digital, com l gica programável, com tr s entradas , e , cu a sa da será n vel alto apenas quando a minoria das entradas for n vel “ ” alto . rie um s mbolo gráfico para o circuito e simule o circuito obtido. Tabela-verdade A B C S 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 Questão 4 Pro ete um circuito digital, com l gica programável, que satisfa a a tabela- verdade mostrada abai o. Simule a sa da em fun ão das entradas. Tabela-verdade A B C S 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 Questão 5 Pro ete um circuito digital, monte a tabela-verdade e simule o circuito obtido, que satisfa a a seguinte e pressão l gica S = ̅ ̅ ̅ ̅ + ̅ ̅+ ̅ + ABCD + ̅ Tabela-verdade A B C D S 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 MULTIPLEXADORES, DEMULTIPLEXADORES, CODIFICADORES E DECODIFICADORES Questão 1 Crie um Decodificador 2x4. Para facilitar observe o diagrama abaixo. Questão 2 Elabore um Multiplexador 2x1 com IF-ELSE, usando a linguagem vhdl. Questão 3 Crie um Multiplexador 2x1 utilizando CASE, utilizando a linguagem vhdl, para o uso da placa DE1. Questão 4 Crie um Multiplexador 8-1 de 16 bits. Questão 5 A partir do diagrama mostrado abaixo, elabore um código em vhdl. QUESTÃO 6 Faça um Codificador 4-2 em VHDL. QUESTÃO 7 Faça um Decodificador 2-4. QUESTÃO 8 Elabore em VHDL um Decodificador 3-8. g 1 g 2 Entr ada (2 a 0) Saída (7 a 0) X H XXX HHHHHHHH L L XXX HHHHHHHH H L LLL LHHHHHHH H L LLH HLHHHHHH H L LHL HHLHHHHH H L LHH HHHLHHHH H L HLL HHHHLHHH H L HLH HHHHHLHH H L HHL HHHHHHLH H L HHH HHHHHHHL QUESTÃO 9 Faça um Decodificador 4-16 em VHDL. QUESTÃO 10 Faça um decodificador para Displays de 7 segmentos. QUESTÃO 11 ELABORE UM Demultiplexador 4-1, a partir do diagrama abaixo. QUESTÃO 12 Faça em VHDL um Multiplexador 4-1 utilizando portas lógicas. QUESTAO 13 Faça em VHDL um Multiplexador 4-1 utilizando With.. Select. CIRCUITOS ARITMÉTICOS Somador 1. Library IEEE; 2. Use IEEE.std_logic_1164.all; 3. Use IEEE.std_logic_unsigned.all; 4. 5. entity add1Bit is 6. port ( cin,a,b: in bit; 7. s, cout: out bit); 8. end add1Bit; 9. 10. architecture archAdd1Bit of add1Bit is 11. begin 12. 13. s <= a xor b xor cin; 14. cout <= (a and b) or (a and cin) or (b and cin); 15. 16. end archAdd1Bit; Questão 1 Com base no algoritmo acima, crie um somador de 2bits para a placa DE1. Questão 2 Efetue as seguintes contas matemáticas, usando o somado binário. A. 10 + 10 B. 01 + 10 C. 01 + 11 Questão 3 Agora crie um comparador de magnitude. O comparador deve conter duas variáveis de entrada com 4 bits cada uma e três variáveis de saída, contendo 1 bit cada variável de saída. Questão 4 Faça um multiplicador de dois números inteiros, tente fazer da forma mais indutiva possível, este exemplo mostra a flexibilidade da placa DE1. Questão 5 Crie um divisor em vhdl, que receba dois números inteiros de 4 bits e a saída será a divisão dos números inseridos. LOGICA SEQUENCIAL FLIP – FLOP D 1. Implemente um Flip-Flop D. 1. LIBRARY IEEE; 2. USE IEEE.STD_LOGIC_1164.ALL; 3. 4. entity FlipFlopD is 5. port(d, clk: in bit; 6. q : out bit); 7. end FlipFlopD; 8. architecture archFlipFlopD of FlipFlopD is 9. begin 10. process (clk) 11. begin 12. if (clk 'event and clk = '1') then 13. q <= d; 14. end if; 15. end process; 16. end archFlipFlopD; Questão 1 Usando um flip-flop tipo D, Determine a forma de onda da saída Q. Questão 2 Aplique a onda D e o sinal de clock mostrados na figura abaixo, para simular a saída esperada em Q. Implemente na placa DE1 a saída Q, use os LEDRs presentes na placa para isso, observe que na figura existe sete clocks de subida, cada clock gerara um sinal no LEDR, enfim teremos sete leds que poderão ter o bit 0 ou 1. Questão 3 Aplique as formas de onda S e CLK mostradas na figura abaixo, às entradas D e CLK de um FF D, disparado por borda positiva, determine a forma de onda Q. Questão 4 Aplique as formas de onda R e CLK mostradas na figura da questão anterior, às entradas D e CLK de um FF D, disparado por borda positiva, determine a forma de onda Q. Questão 5 Implemente um Flip – Flop do tipo D com reset assíncrono, disparado por borda positivado usando a linguagem vhdl, para o uso da placa DE1. FLIP-FLOP S-R 1. Implemente um Flip-Flop SR 1. LIBRARY IEEE; 2. USE IEEE.STD_LOGIC_1164.ALL; 3. 4. entity FlipFlopSR is 5. port (reset,set,clk: in bit; 6. saida : out bit); 7. end flipFlopSR; 8. 9. architecture archFlipFlopSR of FlipFlopSR is 10. begin 11. process (clk) 12. begin 13. if (clk'event and clk = '1') then 14. if (set = '1') then 15. saida <= '1'; 16. elsif (reset = '1') then 17. saida <= '0'; 18. end if; 19. end if; 20. 21. end process; 22. end archFlipFlopSR; Questão 1 Aplique as formas de onda mostradas abaixo, indique a forma de onda resultante em Q. Questão 2 A partir das formas de onda S e R presentes na figura abaixo, mostre a forma de onda resultante em Q. Questão 3 A partir das formas de onda S e R presentes na figura abaixo, mostre a forma de onda resultante em Q. Questão 4 A partir das formas de onda S e C presentes na figura abaixo, mostre a forma de onda resultante em Q. Para o Flip-flop do tipo SR Questão 5 Implemente o Flip-Flop JK e avalie as principais diferenças entre o FF SR e JK. FLIP FLOP JK. library ieee; use ieee.std_logic_1164.all; ---------------------------------------------- entity JK_FF is port ( clock: in std_logic; J, K: in std_logic; reset: in std_logic; Q, Qbar: out std_logic ); end JK_FF; ----------------------------------------------- architecture behv of JK_FF is -- define the useful signals here signal state: std_logic; signal input: std_logic_vector(1 downto 0); begin -- combine inputs into vector input <= J & K; p: process(clock, reset) is begin if (reset='1') then state <= '0'; elsif(rising_edge(clock)) then -- compare to the truth table case (input) is when "11" => state <= not state; when "10" => state <= '1'; when "01" => state <= '0'; when others => null; end case; end if; end process; -- concurrent statements Q <= state; Qbar <= not state; end behv; Questão 1 Faça um Latch D chaveado. Questao 2 Faça um Latch D chaveado.
Compartilhar