如何在莱迪思iCEstick上的verilog中获得更快的时钟?

时间:2017-05-10 11:10:53

标签: verilog fpga

棒上有一个12MHz的振荡器。 http://www.latticesemi.com/icestick

我已设法编写verilog代码来将此时钟分频,闪光LED为1Hz。 (我刚开始学习verilog。)

我相信这款FPGA可以在高达133MHz的频率下工作。

有没有办法从12MHz振荡器产生更快的时钟信号(以verilog为单位)?

2 个答案:

答案 0 :(得分:1)

答案尚未经过测试。

通过https://www.reddit.com/r/yosys/comments/3yrq6d/are_plls_supported_on_the_icestick_hw/

来自:https://github.com/SubProto/icestick-vga-test/blob/master/vga.v

wire clk;

  SB_PLL40_CORE #(.FEEDBACK_PATH("SIMPLE"),
                  .PLLOUT_SELECT("GENCLK"),
                  .DIVR(4'b0001),
                  .DIVF(7'b1000010),
                  .DIVQ(3'b100),
                  .FILTER_RANGE(3'b001),
                 ) uut (
                         .REFERENCECLK(pclk),
                         .PLLOUTCORE(clk),
                         .LOCK(D5),
                         .RESETB(1'b1),
                         .BYPASS(1'b0)
);

此外:

  

iCE40 sysCLOCK PLL   iCE40锁相环(PLL)提供各种用户可合成的时钟频率,以及cus-   可以在软件宏的帮助下配置和使用iCE40器件中的PLL   PLL模块发生器。 PLL模块生成器实用程序可帮助用户快速配置所需的设置   借助GUI并生成配置PLL宏的Verilog代码。图2显示了iCE40系统   CLOCK PLL框图。

http://www.latticesemi.com/~/media/LatticeSemi/Documents/ApplicationNotes/IK/iCE40sysCLOCKPLLDesignandUsageGuide.pdf?document_id=47778

答案 1 :(得分:0)

我已经使用更高的时钟频率在使用TinyFPGA BX的VGA显示器中显示乒乓游戏。 TinyFPGA BX和莱迪思iCEstick非常相似。因此,我想分享我的代码。您可能需要使用官方的莱迪思软件来简化GUI(图形用户界面)的配置。 https://www.latticesemi.com/software

module top(
input wire clk_16,
output USBPU
);

assign USBPU = 0; // drive USB pull-up resistor to '0' to disable USB 
output wire;
SB_PLL40_CORE #(
                .FEEDBACK_PATH("SIMPLE"),
                .DIVR(4'b0000),         // DIVR =  0
                .DIVF(7'b0110001),      // DIVF = 49
                .DIVQ(3'b101),          // DIVQ =  5
                .FILTER_RANGE(3'b001)   // FILTER_RANGE = 1
        ) uut (
                .LOCK(locked),
                .RESETB(1'b1),
                .BYPASS(1'b0),
                .REFERENCECLK(clk_16),  // clk_16_MHz is the original clock
                .PLLOUTCORE(clk)        // clk is the modified clock with higher frequency
                );