这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 模块之间信号连接问题(已解决)

共4条 1/1 1 跳转至

模块之间信号连接问题(已解决)

高工
2012-11-23 12:13:07     打赏
FPGA里边老讲模块模块的。
比如模块A完成一个与运算,A的输出作为模块B的输入。模块B将两个模块的运算结果输出到引脚。
这里我门可以通过AssignmentEdtior将模块B的输出关联到引脚上去。
我的问题是,怎样将模块A的输出信号关联到模块B的输入上?

刚开始,问题比较弱智高手别笑。



2012.11.23 已解决留念



关键词: 模块     之间     信号     连接     问题     解决    

院士
2012-11-23 13:17:35     打赏
2楼
不耻下问,没啥

高工
2012-11-23 21:00:26     打赏
3楼
晚上看书,明白了。嘎嘎

高工
2012-11-23 21:01:44     打赏
4楼
昨天由于第一次写Verilog的东西,直接照着版主的教程敲代码。看着代码挺熟悉的,据说像C语言

几个小问题没理解。其中包括怎样将小模块添加到顶层模块中。
今天看书有点理解了。
各个小模块就相当于C语言中的函数。或者C++ 语言中的类,需要在顶层模块中实例化才算是加到程序里边了。

模块的实例化有两种方式:位置映射法,信号名称映射法。
1、位置映射法
    相当于一个类,定义了一个实例。比如我有一个模块名字叫compare_core
    compare_core的接口定义是这样的:
    module    compare_core(result,a,b);
    input        [7:0] a,b;
    output    result;
我要实例这个模块,需要这样写:
    compare_core    inst_compare_core0(result0,a0,b0);  //定义第一个实例,相当于在电路中放入了一个名字为inst_compare_core0的compare_core模块
    compare_core    inst_compare_core1(result1,a1,b1);  ////定义第一个实例,相当于在电路中放入了一个名字为inst_compare_core0的compare_core模块
以此类推

2、信号名称映射法
    利用“.”符号,表明原模块定义时的端口名。
    上述代码改为信号映射法制化是这样的:
    compare_core inst_compare_core0(.result(result0),.a(a0),.b(b0));
    compare_core inst_compare_core1(.result(result1),.a(a1),.b(b1));
    信号映射法同时将信号名称和被引用端口名称列出来,不必遵守严格的顺序定义,也不易出错。可读性和可移植性都比位置映射法好。
   
这是今天晚上的成功,同步更新到进程贴中

共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]