高云FPGA系列教程(3):基本IP原语使用和仿真
创始人
2024-03-31 03:27:43

文章目录

    • @[toc]
      • 1. GW1NSR-4C支持的IP
      • 2. IP示例1:片上时钟OSC
      • 3. IP示例2:锁相环PLLVR
      • 4. IP示例3:分频器CLKDIV
      • 5. IP核配置修改
      • 6. Modelsim仿真IP
      • 7. 总结
      • 8. 工程下载

本文是高云FPGA系列教程的第3篇文章。

本篇文章介绍高云GW1NSR-4C FPGA基本原语和IP配置、使用和修改,以及如何在ModelSim环境下仿真这些IP和原语,基于TangNano 4K开发板。

1. GW1NSR-4C支持的IP

打开高云云源软件,点击工具->IP Core Generator可以调出高云IP核生成工具。

可以看到当前使用的器件支持的各类型IP核,如果不支持,IP核为灰色不可选,右侧有当前IP使用的中英文说明文档,点击可以直接下载。

2. IP示例1:片上时钟OSC

GW1NSR-4C芯片内部集成了一颗250MHz的时钟晶体,可以配置2-128偶数分配系数,带使能端。本次示例我们配置成输出25MHz输出,即10分频。

模块名称,保存路径可自定义,这里保持默认设置。

最终生成的文件:

module Gowin_OSC (oscout, oscen);output oscout;
input oscen;OSCZ osc_inst (.OSCOUT(oscout),.OSCEN(oscen)
);defparam osc_inst.FREQ_DIV = 10;
defparam osc_inst.S_RATE = "SLOW";endmodule //Gowin_OSC

我们也可以在自己的设计中直接例化OSCZ原语来使用。

关于高云FPGA时钟资源的介绍,可以查看云源软件安装目录下的UG286文档:

\Gowin\Gowin_V1.9.8.07_Education\IDE\doc\CN\UG286-1.9.4_Gowin时钟资源(Clock)用户指南.pdf

3. IP示例2:锁相环PLLVR

和OSCZ一样,选择PLLVR进行配置,指定PLL输入频率为25MHz,输出频率为200MHz。

4. IP示例3:分频器CLKDIV

选择CLKDIV配置分频器系数为4

在这里插入图片描述

为了同时调用这几个IP,我们按照如下图进行连接。

顶层文件:

/**************************************************************** Copyright(C), 2010-2022, WeChat:MCU149.* ModuleName : top_hdl.v * Date       : 2022年10月02日* Time       : 20:19:39* Author     : WeChat:MCU149* Function   : gw1nsr-4c led driver demo* Version    : v1.0*      Version | Modify*      ----------------------------------*       v1.0    .....***************************************************************/module top_hdl(//Inputsinput gclk,      // 27MHzinput gresetn,    input key,//Outputsoutput reg led
);//1.parameter//2.localparam
localparam KEY_PRESS   = 1'b0; 
localparam KEY_RELEASE = !KEY_PRESS;
localparam LED_ON      = 1'b1;
localparam LED_OFF     = !LED_ON;localparam LED_PERIOD1 = 50_000_000 / 2 ;      //500ms=27_000_000/2
localparam LED_PERIOD2 = 50_000_000 / 10;      //100ms=27_000_000/10
//localparam LED_PERIOD1 = 100;      //simulation
//localparam LED_PERIOD2 = 200;      //simulation//3.reg
reg [31:0] cnt;//4.wire 
wire [31:0] CNT_MAX = (key == KEY_PRESS) ? LED_PERIOD2 : LED_PERIOD1;wire clk_osc;   //250/10=25MHz
wire clk_pll;   //25*8=200MHz
wire clk_div;   //200/4=50MHzwire pll_locked;//5.assign//6.always
always @ (posedge clk_div) beginif(!gresetn) begincnt <= 'd0;endelse beginif(cnt >= CNT_MAX)cnt <= 'd0;else cnt <= cnt + 'd1;end
endalways @ (posedge clk_div) beginif(!gresetn) led <= LED_OFF;else if(cnt == CNT_MAX)led <= !led;// led <= (led == LED_OFF) ? LED_ON : LED_OFF;
end//7.instance//osc onchip, 250MHz
Gowin_OSC osc_250m(//Inputs.oscen(1'b1),//Outputs.oscout(clk_osc)    //250/10=25MHz
);//25*8=200MHz
Gowin_PLLVR gwin_pll(//Inputs.clkin(clk_osc),    //25MHz//Outputs.clkout(clk_pll),   //200MHz.lock(pll_locked)
);//200MHz/4=50MHz
Gowin_CLKDIV gwin_div(//Inputs.hclkin(clk_pll),       //200MHz.resetn(pll_locked),//Outputs.clkout(clk_div)        //50MHz
);endmodule   //top_hdl end

和上一篇笔记实现的效果是一样的,按键按下LED快闪,按键释放LED慢闪,只不过本工程没使用到外部的晶体。

5. IP核配置修改

云源软件支持对已经配置的IP核进行修改,说实话我一开始并没有找到这个功能,还以为无法修改呢,后来看了官方的视频教程才发现支持修改已经配置的IP。

首先打开IP核生成界面,点击打开图标。

找到要修改的IP核文件夹下的ipc文件打开。

这样就可以进行修改了

6. Modelsim仿真IP

高云云源软件不包含仿真工具,需要借助第三方工具来完成功能仿真,如果涉及到官方的IP调用,比如PLL,OSC,FIFO等IP的仿真,需要进行添加一个官方的IP仿真库文件,文件路径为:

D:\Program\Gowin\Gowin_V1.9.8.07_Education\IDE\simlib\gw1n\prim_sim.v

这个文件大小约600KB,近两万行代码,包括高云所有IP核的仿真模型,可以在Modelsim或其他第三方仿真工具中添加调用。

高云IP核仿真库文件内容完全开放,没有进行加密处理。

编译通过,仿真时会提示调用的模块未定义

prim_sim.v添加到Modelsim工程,再次编译,执行仿真。

提示如下:

# ** Note: (vsim-3812) Design is being optimized...
# 
# ** Error: (vopt-7052) D:/Program/Gowin/Gowin_V1.9.8.07_Education/IDE/simlib/gw1n/prim_sim.v(13111): Failed to find 'GSR' in hierarchical name '/GSR/GSRO'.
# 
# Optimization failed

在Testbench中例化如下全局复位模块,因为仿真库中调用了此模块:

GSR GSR(.GSRI(1'b1)
);

重新编译,成功执行仿真。

仿真波形:
在这里插入图片描述

OSC、PLL、DIV输出时钟频率和配置是一致的。

7. 总结

总的来说,GW1NSR-4C这颗FPGA可以使用的IP核不算太多,但基本的PLL,FIFO,RAM,DSP都有,还有一些非常实用的协议IP,如I2C,SPI,UART主机从机,以及之间的相互转换都有相应的IP,还有一些多媒体相关的IP,可以满足大多数的需求。

联合ModelSim仿真也比较简单,只需要添加一个仿真库文件即可完成所有IP的仿真,还是非常方便的。

8. 工程下载

本次示例中的工程,可以访问下方链接下载:

  • gw1nsr_4c_ip_demo.rar

本文是高云FPGA系列教程的第3篇文章。

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...