前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vivado 2019.1新特性(4):VHDL 2008 Generic

Vivado 2019.1新特性(4):VHDL 2008 Generic

作者头像
Lauren的FPGA
发布2019-10-30 19:23:05
2.5K0
发布2019-10-30 19:23:05
举报
文章被收录于专栏:Lauren的FPGALauren的FPGA

VHDL 2008对Generic有了显著的增强,不仅可以在entity中声明generic,还可以在package和function中声明generic。同时,generic支持type。我们看一个典型的案例。

在entity中声明generic

如下VHDL代码实现了一个二选一的MUX,这里将数据类型通过关键字type定义为dt。实例化时,根据需要将数据类型声明为期望的类型。

如下代码将MUX实例化两次,其中的数据类型分别为4bit std_logic和2bit std_logic。由此可以看到这种方式的灵活性。Vivado 2019.1开始支持该语法形式。

在Vivado中,打开Elaborated Design,可以查看相应的Schematic视图,如下图所示。

在package中声明generic

VHDL 2008支持在package中声明generic。从这个角度看,package类似于C++中的template。在使用带generic的package之前,要先对该package实例化。来看一个例子。

使用该package时,要先实例化,如下代码第1行和第2行所示,使用了关键字new。如果需要使用package中声明的数据类型,例如这里的cnt_type,需要明确指出是哪个实例化对象的cnt_type,所以需要添加work.cnt_top_pkg1。另一方面,如果该package只被实例化了一次,那么可以直接使用其内部声明的数据类型,不必添加work.cnt_top_pkg1。

Vivado 2019.1开始支持增强型generic。需要声明文件类型为VHDL 2008。可通过如下方式实现。在project模式下,可直接在Tcl Console中执行命令:

在non-project模式下,可同时对某一个文件或多个文件指定其为VHDL 2008。

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

本文分享自 Lauren的FPGA 微信公众号,前往查看

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

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

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