前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Gowin(高云)IDE探索

Gowin(高云)IDE探索

作者头像
云深无际
发布2021-01-18 10:41:07
9150
发布2021-01-18 10:41:07
举报
文章被收录于专栏:云深之无迹

快速导航页面


我觉得学习一个软件,自我探索这个环节是必不可少的,软件又用不坏,戳戳点点认识基本功能是极好的。闲话不多说,我们开始~


首先必须建立一个新项目

可以拉长这个对话框

然后就是写项目名字以及项目的保存位置

这里我加个1

接着是芯片的选择

可以去到我上个文章的官网寻找相应的手册,中文友好

你看不懂是另一个故事了

主要看看封装信息

我们这样选择

这个是32的封装,注意看一下匹配到的红字

这个是里面介绍的一些封装,自己写程序的时候注意选择

就是选择错了以后也可以之后再重新选择

选好的样子

点一这个下面的芯片栏目,然后才可以下一步

最后的页面,下一步

双击这个地方可以在项目建立后对芯片进行重新选择

代码语言:javascript
复制
http://www.asic-world.com/verilog/veritut.html

Verilog的基本设计单元是模块,每个Verilog程序都包含四个主要部分:端口定义,I / O描述,内部信号声明和功能定义。

该模块就像我们通常提到的黑匣子。当我们实现模块时,我们不需要关心模块的内部。我们只需要根据模块定义的输入和输出格式实例化模块,并将输入提供给模块。一个可以工作的模块长这样

代码语言:javascript
复制
module block (input a, output b);
reg [width-1:0] R_1;

assign b = a;
always @(posedge clk or negedge reset_n)
begin
// do something
end

endmodule

模块的整体结构由模块和终端模块组成。模块之后是模块接口的定义,该接口声明端口的方向是输入还是输出。

内部信号有时会在模块内部使用,内部信号的类型为wire和reg。

该功能的定义可以通过assign和always块来完成。分配是描述组合逻辑的最常用方法之一。总是可以使用块机器来描述组合逻辑以及描述顺序逻辑

模块的整体结构由模块和终端模块组成。模块之后是模块接口的定义,该接口声明端口的方向是输入还是输出。

内部信号有时会在模块内部使用,内部信号的类型为wire和reg。

该功能的定义可以通过assign和always块来完成。分配是描述组合逻辑的最常用方法之一。总是可以使用块机器来描述组合逻辑以及描述顺序逻辑

代码语言:javascript
复制
module led (    input sys_clk,    input sys_rst_n,    output reg [2:0] led // 110 B, 101 R, 011 G);
reg [23:0] counter;
always @(posedge sys_clk or negedge sys_rst_n) begin    if (!sys_rst_n)        counter <= 24'd0;    else if (counter < 24'd1200_0000)       // 0.5s delay        counter <= counter + 1;    else        counter <= 24'd0;end
always @(posedge sys_clk or negedge sys_rst_n) begin    if (!sys_rst_n)        led <= 3'b110;    else if (counter == 24'd1200_0000)       // 0.5s delay        led[2:0] <= {led[1:0],led[2]};    else        led <= led;end
endmodule

该系统的时钟为24Mhz,一个机器周期为1 / 24M s,这意味着每12000000个时钟周期为0.5s。

在程序中,通过计数器计算12000000个时钟周期,并等待0.5s。时间到后,将计数器设置为0并更改LED的颜色。

在这个电平转换

16,17,18脚分别于RGB三脚相连

共阳极的RGB灯,三个引脚在芯片的IO脚相连

一会儿创建物理约束文件的时候按照这个东西来布线

端口-I/O-引脚号-描述

这里的话,先要创建一个物理的约束文件

这些是我们未来可能要用到的所有的文件类型

双击配置文件

打开

Gowin FloorPlanner 是高云半导体面向市场自主研发的布局与物理约束 编辑工具,支持对 I/O、Primitive(原语)、block(存储模块、DSP)、Group 等的属性及位置信息的读取与修改功能,同时可根据用户的配置生成新的布 局与约束文件,文件中规定了 I/O 的属性信息,原语、模块的位置信息等。Gowin FloorPlanner 提供了简单快捷的布局与约束编辑功能,可支持高云半 导体的各款 FPGA 芯片产品。

切换到这个菜单进行配置

点击右键出现的是这样的菜单

我们这里把写好的IO定义映射到相应的引脚上面

中间待续还差一些工作,先这样

以软件卡死剧终

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档