FPGA——Multiplexador para ativar e desativar a luz do LED de controle do botão


prefácio

  • Software: Quartus Prime Standard 18.0
  • Software de simulação: modelsim 10.5
  • Software de escrita de código: VSCode
  • Ferramenta de desenho de forma de onda: Visio 2013
  • Hardware: Altera MAX10 para pezinhos

Efeito esperado:
Esperamos selecionar o sinal do LED de entrada através de um botão, quando pressionamos a tecla 3, ou seja, quando a tecla 3 é um sinal baixo, o LED seleciona a tecla 2 como sinal do LED, caso contrário, ele usa o sinal da tecla 1 como referência.


1. Multiplexador

Um multiplexador é outro nome para um seletor de dados.Na transmissão de dados múltiplos, um circuito que pode selecionar qualquer um deles de acordo com as necessidades é chamado de seletor de dados, também conhecido como multiplexador ou chave multiplex. É um circuito lógico combinacional simples.

  • Lógica de combinação:

A lógica combinacional é, na verdade, uma parte importante do projeto VerilogHDL. Da essência do circuito, a característica do circuito lógico combinacional é que o sinal de saída é apenas uma função do sinal de entrada no momento atual e não tem nada a ver com o estado de entrada em outros momentos, e não há armazenamento circuito e nenhum circuito de realimentação.

2. Desenhe o diagrama de bloco do módulo e o diagrama de forma de onda

No início do projeto, crie um novo arquivo de projeto, que contém quatro novas pastas, a saber:
prj (arquivo de projeto), rtl (arquivo .v), sim (arquivo de teste de simulação), doc (arquivo de desenho de forma de onda)

  • adicionar forma
    insira a descrição da imagem aqui
    insira a descrição da imagem aqui

  • Diagrama de bloco
    insira a descrição da imagem aqui

  • forma de onda

Quando sel é 0, o sinal de saída Out é forma de onda in_2, caso contrário, é forma de onda in_1.

insira a descrição da imagem aqui

3. Código Verilog HDL e código de teste

Crie um arquivo mus2_1.v na pasta rtl e o nome do módulo definido precisa ser consistente com o nome do arquivo. Neste ponto, clique duas vezes para abrir o VSCode para gravação de código.

module mus2_1(
    input wire  in_1,
    input wire in_2,
    input wire sel,//选通信号
    output reg out
);
always @(*)//组合逻辑进行阻塞赋值
    if(sel == 1'b1)
    out=in_1;
    else
    out =in_2;

endmodule

Crie um novo arquivo de teste tb_mus2_1.v na pasta sim

`timescale 1ns/1ns //时间尺度
module tb_mus2_1();
reg in_1;
reg in_2;
reg sel;
wire out;
initial begin //初始化变量,上电后只执行一次
    in_1<=1'b0;
    in_2<=1'b0;
    sel <=1'b0;
end  
//设置随机波形图
always #10 in_1<={
    
    $random}%2;
always #10 in_2<={
    
    $random}%2;
always #10 sel<={
    
    $random}%2;


mus2_1   mus2_1_inst  ( //实例化模块
     .in_1(in_1),
     .in_2(in_2),
     .sel(sel),//选通信号
     .out(out)
);
endmodule

4. Crie um projeto

  • Open quartus, um novo projeto

insira a descrição da imagem aqui

  • clique em próximo
    insira a descrição da imagem aqui

  • Selecione o caminho do projeto e escolha ir para a pasta prj que criamos anteriormente. Preencha o nome do projeto, aqui tente escolher o mesmo nome do nosso arquivo .v—mus2_1.
    insira a descrição da imagem aqui

  • Aqui não escolhemos um template, apenas o próximo.
    insira a descrição da imagem aqui

  • Adicionaremos o arquivo mais tarde, o próximo primeiro.

insira a descrição da imagem aqui

  • Selecione o tipo de placa. Aqui estou usando Altera max10. Se você estiver usando outras placas, você precisa baixar a biblioteca de dispositivos correspondente à versão quartus do site oficial da Intel. Mesmo que também seja max 10, se a versão do quartus for diferente, a biblioteca do dispositivo Não é o mesmo. requer atenção.
    insira a descrição da imagem aqui
  • Selecione o software de simulação e o idioma
    insira a descrição da imagem aqui
  • Verifique se a configuração está correta e clique em Concluir para concluir a criação do projeto.
    insira a descrição da imagem aqui
  • Adicionar fonte e arquivos de teste

insira a descrição da imagem aqui

  • Duplo click
    insira a descrição da imagem aqui

  • Selecione o arquivo para adicionar
    insira a descrição da imagem aqui

  • Adicionar arquivos de teste à simulação

insira a descrição da imagem aqui
insira a descrição da imagem aqui
insira a descrição da imagem aqui
insira a descrição da imagem aqui

Em 1 na figura acima, selecione o arquivo de teste e preencha o nome do arquivo de teste em 2.

5. Simulação

Clique abaixo para abrir automaticamente o software de simulação

insira a descrição da imagem aqui

  • Forma de Onda de Simulação

insira a descrição da imagem aqui

Explicação: Quando sel é 1 na posição da linha de marcação, o sinal cujo nível de saída deve ser in_1 é 0 e out também é 0 neste momento. A simulação foi bem sucedida! As etapas específicas de como realizar a simulação não serão apresentadas aqui.

6. Verificação do conselho

1. Atribuir pinos

Atribuir de acordo com o diagrama de atribuição de pinos fornecido pelo fabricante

insira a descrição da imagem aqui

  • definir pino
    insira a descrição da imagem aqui

  • Preencha os pinos correspondentes por sua vez
    insira a descrição da imagem aqui

Aqui, key1 controla o sinal in_1, key2 controla o sinal in_2 e key3 atua como um sinal estroboscópico. Inicialmente, nenhuma das três teclas é pressionada, a tecla 3 está em nível alto e o sinal de saída é a tecla 1. Quando a tecla 1 é pressionada neste momento, a luz de nível baixo na tecla 1 acende. Por outro lado, pressione a tecla 3, o sinal estroboscópico seleciona o sinal da tecla 2, pressione a tecla 2 neste momento, a luz está acesa. Para resumir, pressione a tecla 1 para acender a luz ou pressione a tecla 2 + tecla 3 para acender a luz.

2. Queima

insira a descrição da imagem aqui

  • Selecione USB

insira a descrição da imagem aqui

Se o USB-Blaster não for detectado aqui, há duas situações. Uma é que seu cabo de dados não suporta transmissão de dados e a outra é que seu driver não foi atualizado. Procure uma atualização para identificá-lo.

  • Clique em Adicionar arquivo e procure o arquivo sof na pasta outputfiles na pasta prj
    insira a descrição da imagem aqui
  • Clique em iniciar para começar a gravar e a barra de progresso está à direita
    insira a descrição da imagem aqui

Sete, demonstração de efeito

keyofLED


8. Resumo

Esta é a primeira vez que opero a placa fpga em espécie e é ótimo. De um modo geral, a operação desta vez é relativamente simples, mas desenhando o diagrama de bloco do módulo e o diagrama de forma de onda sozinho, tenho um forte entendimento do seguinte simulação e compreensão de código. s ajuda! Através deste experimento, deve-se considerar como entrar no poço, haha!

Acho que você gosta

Origin blog.csdn.net/qq_52215423/article/details/128006883
Recomendado
Clasificación