bigbat 发表于 2022-4-17 22:19

SparkRoad测评(5)-时钟系统与IP资源引用

<p>对于fpga的芯片很多都内置了一些IP资源,本期测试用来验证SparkRoad的时钟系统和如何引用内置的PLL资源。</p>

<pre>
<code class="language-cpp">module ledflash(clk,led,x);

inputclk;
output led;
output x;
wire sreset;
wire sstdby;
wire srefclk;
wire sclk;

reg counter;
reg led;
assign sreset=1'b0;
assign sstdby=1'b0;
assign x=1'b0;
assign sclk=clk;

pllclk pll(
                .refclk(clk),
      .reset(sreset),               
      .stdby(sstdby),      
      .clk0_out(srefclk),      
      .extlock()
);

always @(posedge srefclk)
if (counter == 12000000)
begin
        counter &lt;= 0;
    led &lt;= !led ;
end
else
    counter &lt;= counter + 1'b1;

endmodule
</code></pre>

<p>上面这段程序是将外接的clk,引入到硬件pll中,将24M的频率通过内置的PLL硬件倍频到100M的过程。</p>

<p>首先第一步、建立主模块,这里有个坑:先不要写代码或者先不要写模块引用代码。</p>

<p>第二步,向过程中进入IP,也就是引用硬件PLL,菜单 Tool-&gt; IP&nbsp; Generator&nbsp;</p>

<p>&nbsp;选择默认 create a new IP Core</p>

<p>&nbsp; 给定文件名称</p>

<p>&nbsp;选择PLL内核,当然还有其它的内核。这里我根据需要选择pll</p>

<p> &nbsp;&nbsp;</p>

<p>这里的输入时钟为24.00000000M,其它默认</p>

<p>&nbsp;这个我需要的频率是100M,直接next就可以生成IP了</p>

<p>&nbsp;这里就是生成好的ip了,这是注意:这时需要进行&lsquo;综合&rsquo;,而不是编写引用代码,如果这时马上编写引用代码,就会出现很多的&lsquo;综合&rsquo;错误!!!,不管你的代码是如何的正确,这里就是我说的坑。</p>

<p>第三步,综合正确后,就可以引用该模块了。</p>

<pre>
<code>wire sreset;
wire sstdby;
wire srefclk;
wire sclk;

reg counter;
reg led;
assign sreset=1'b0;
assign sstdby=1'b0;
assign x=1'b0;
assign sclk=clk;

pllclk pll(
                .refclk(clk),
      .reset(sreset),               
      .stdby(sstdby),      
      .clk0_out(srefclk),      
      .extlock()
);
</code></pre>

<p>我使用四个中间变量&nbsp;sreset;&nbsp;sstdby;&nbsp;srefclk;&nbsp;sclk;和模块连接。</p>

<p>这里注意rest和stdby的信号都必须为低电平,以后将clk,也就是与晶振连接的clk引脚。输入给模块的refclk,模块输出为clk0_out引脚,就可以通过srefclk取出信号。</p>

<pre>
<code>always @(posedge srefclk)
if (counter == 12000000)
begin
        counter &lt;= 0;
    led &lt;= !led ;
end
else
    counter &lt;= counter + 1'b1;
</code></pre>

<p>这时,就可以看到原来使用24M的led闪烁的速度变快了。说明引用成功了。</p>

<p> &nbsp;</p>

Jacktang 发表于 2022-4-18 07:09

<p>第一步的这个坑提示的好,谢谢,先不要写代码或者先不要写模块引用代码</p>
页: [1]
查看完整版本: SparkRoad测评(5)-时钟系统与IP资源引用