如何在一个FPGA上实现多个独立的器件?

时间:2019-07-03 17:22:22

标签: vhdl fpga intel-fpga

我需要在FPGA(Altera Cyclone III)上实现2个或更多独立设备。例如:两个计数器分别为1和2。我该怎么做?以及如何并行使用此设备?谢谢大家!

1 个答案:

答案 0 :(得分:-2)

一切在FPGA上并行发生。这是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等效的解决方案。