前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >可以用verilog描述而不能用VHDL_verilog多次调用同一模块

可以用verilog描述而不能用VHDL_verilog多次调用同一模块

作者头像
全栈程序员站长
发布2022-09-27 14:31:32
7380
发布2022-09-27 14:31:32
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

注意:verilog中不能调用vhdl的parameter package,即vhdl中定义的parameter 不能被顶层verilog调用

今天在编译一个Verilog文件,其中嵌入了VHDL的模块,其VHDL模块如下:

代码语言:javascript
复制
entity vhdl_module is
    generic (
        PARA1    : boolean := false;    -- boolean型
        PARA2    : boolean := false;    -- integral型
    );
    port (
        PORT_A: out std_logic;
        PORT_B: in std_logic;
    );
end vhdl_module;

architecture synth of vhdl_module is
    -- 此处省略
end synth;

在Verilog文件中做如下调用:

代码语言:javascript
复制
module top(
    clock,                        
    res_n,
    test
);
  
input           clock; 
input           res_n;  
output          test;


vhdl_module 
    #(
        .PARA1(1),
        .PRRA2(1)
    ) 
    vhdl_module_ins (    
    .PORT_A(res_n),
    .PORT_B(clock)
);

endmodule

Quartus II 编译后报错:

Error: VHDL type mismatch error at <component_name>.vhd: boolean type does not match integer literal

经查阅后得知,Quartus II在翻译VHDL中的boolean类型是用false和true传递的,而Synplify和ISE却用的是1和0传递的。故在此处会报错,需要改成如下方式:

代码语言:javascript
复制
module top(
    clock,                        
    res_n,
    test
);
  
input           clock; 
input           res_n;  
output          test;


vhdl_module 
    #(
        .PARA1("true"), // 此处修改,若false则填入“false”,需加引号,否则任然会报错!
        .PRRA2(1)
    ) 
    vhdl_module_ins (    
    .PORT_A(res_n),
    .PORT_B(clock)
);

endmodule

小小技巧,分享给大家。

ps:希望以后不同编译工具能够统一该调用参数的格式。

VHDL调用Verilog模块的时候,要在实例化模块前,加上“verilogmodelGM: ” VHDL调用verlog:

verilog module: module m(a,b,c); input a,b; output c; … endmodule

调用如下: compoent m port( a: in std_logic; b: in std_logic; c: out std_logic ); end compoent

begin verilogmodelGE: m //我自己实验的不用也可以,用了反而有错误,估计是软件变聪明了~ port map (… ) … end

在VHDL里调用Verilog的话:例化+映射 在Verilog里调用VHDL的话:只要映射

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/192824.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 注意:verilog中不能调用vhdl的parameter package,即vhdl中定义的parameter 不能被顶层verilog调用
  • 今天在编译一个Verilog文件,其中嵌入了VHDL的模块,其VHDL模块如下:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档