Как реализовать несколько независимых устройств на одной ПЛИС? - PullRequest
0 голосов
/ 03 июля 2019

Мне нужно реализовать 2 или более независимых устройства на ПЛИС (Altera Cyclone III).Например: два счетчика по одному и по два.Как мне это сделать?А как использовать это устройство параллельно?Спасибо всем!

1 Ответ

0 голосов
/ 03 июля 2019

Все происходит параллельно на ПЛИС.Вот пример решения в verilog

Модуль счетчика

module counter #(
    parameter pCntNum =1
    ) (
    input iClk,
    input iRst,

    output reg [7:0] oCnt
);
always @ (posedge iClk)
    if (iRst) begin
        oCnt <=0;
    end else begin
        oCnt <= oCnt +pCntNum;
    end    
endmodule

Верхний модуль

module top (
    input iClk,
    input iRst,

    output [7:0] oCntBy1,
    output [7:0] oCntBy2
);

    //Instantiate count by 1 module
    counter #(
        .pCntNum(1)
    )counter_by_1_inst(
        .iClk(iClk),
        .iRst(iRst),
        .oCnt(oCntBy1)
    );

    //Instantiate count by 2 module
    counter #(
        .pCntNum(2)
    )counter_by_2_inst(
        .iClk(iClk),
        .iRst(iRst),
        .oCnt(oCntBy2)
    );
endmodule

Есть много многоспособы сделать это, однако я дал решение, которое, я думаю, лучше всего иллюстрирует то, что вы спрашиваете.

РЕДАКТИРОВАТЬ: я только что увидел тег для VHDL, а не Verilog.Тот же подход и механизмы применимы к решению VHDL, однако Quartus принимает исходные файлы как Verilog, так и VHDL (вы даже можете иметь кодовую базу с обоими).С помощью простого руководства по VHDL вы сможете создать решение, эквивалентное Verilog, которое я написал в случае необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...