FPGA|CPLD|ASIC论坛
直播中

熊朝帅

13年用户 97经验值
擅长:嵌入式技术,控制/MCU
私信 关注

【FPGA开发者项目连载】高云GW1N片内晶振使用

` 本帖最后由 cxzs1234 于 2021-6-30 09:48 编辑

由于制作的旋转显示(也可以称为LED手指陀螺  )空间有限,而且GW1N中刚好有片内晶振提供可编程的用户时钟。其中GW1N-1为250M,精度5%。根据数据手册知道通过配置工作参数,可以获得多达 64 种时钟频率。如下图所示:
1.png

我们可以通过Gowin的软件的IP Core Generate中选择OSC进行对内部时钟的配置,如下图:
2.png

我需要一个25M的时钟,因此参数配置为10,该参数只能为2-100之间的偶数。点击“确定”,当然也可以修改名字等,根据个人喜好选择。

在我们的项目中自己生成了一个gowin_osc.v文件:
  1. module Gowin_OSC (oscout);
  2.      output oscout;
  3.      OSCH osc_inst (
  4.           .OSCOUT(oscout)
  5.      );
  6.     defparam osc_inst.FREQ_DIV = 10;
  7. endmodule //Gowin_OSC
其实还有一个实例化例程文件,如果不会实例化的可以参考一下。
在此我直接在我的Top.v进行实例化,并作为给LED 的时钟源,一个简单的流水灯实例,同时将该时钟输出进行测试。
Top.v
  1. module demo (
  2.     input sys_rst_n,        // reset input
  3.     output clk_out,
  4.     output reg [2:0] led   // 110 G, 101 R, 011 B
  5. );
  6. wire sys_clk;
  7. wire clk_out;

  8. assign clk_out = sys_clk;//将内部时钟输出
  9. Gowin_OSC sysClk(.oscout(sys_clk)); //实例化内部晶振

  10. reg[23:0] counter;
  11.    
  12. always @(posedge sys_clk or negedge sys_rst_n)//
  13. begin
  14.     if(!sys_rst_n)
  15.      counter <= 24'd0;
  16.     else
  17.     begin
  18.       if (counter < 24'd1200_0000)   
  19.             counter <= counter + 1;
  20.         else
  21.             counter <= 24'd0;
  22.      end
  23. end
  24.    
  25. always @(posedge sys_clk or negedge sys_rst_n) //
  26. begin
  27.     if(!sys_rst_n)
  28.         led <= 3'b110;
  29.    else
  30.    begin
  31.         if (counter == 24'd2400_0000)       //~ 0.5s delay
  32.             led[2:0] <= {led[1:0],led[2]};
  33.         else
  34.             led <= led;
  35.     end
  36. end

  37. endmodule

通过Synthesize进行综合和配置输出引脚,如图:
3.png

最后实验结果按预想的结果出现,看到了LED的闪烁和输出的时钟信号:

本实验是在我之前买的Sipeed的Lichee Tang Nano完成的,使用Mini Star目前还没有下载成功,总是出现“cable open failed”错误,在cable setting中显示的还是*** Tang,是不是和之前安装Lichee Tang Nano的驱动冲突么?
5.png
6.png

总结:官方资料很重要,也很详细,一定要先阅读官方文档再进行编写代码。做什么事事情都从简单的开始,这样才一直有信心做下去。我做的是一个是两个月计划,成家有孩子后学习时间就少了。不过,坚持下去,把计划完成。

` 4.png

实验结果

回帖(1)

卿小小_9e6

2021-6-30 12:33:48
感谢分享!OSC,非常棒的功能。
1 举报

更多回帖

发帖
×
20
完善资料,
赚取积分