hubukaixuan 发表于 2012-7-31 09:42:32

AHDL语言求帮忙 整个程序中的一个模块程序

谁能帮忙看一下 以下代码的意思,以前这哥们写的程序没有任何注释。其它的模块程序都看懂了,就是这个
小模块没有明白是怎么一回事。
程序是前面的人用AHDL语言开发的,就是这个地方看不明白。
主要是以前没有怎么用过FPGA,而这个代码又是AHDL语言写的,
开发的人也不在旁边,离开公司了。
而lpm_mux这人模块的说明也很少,没有一个具体的例子。主要是后面还有一句话
IF !USED(result) GENERATE
result[] = GND;
END GENERATE;
这个更是不明白是什么意思了。
源代码如下,麻烦懂AHDL的给帮忙说一下,谢谢。


INCLUDE "lpm_mux.inc";
PARAMETERS
(
WIDTH---这里是一个宽度变量
);
SUBDESIGN busmux
(
dataa : INPUT;
datab : INPUT;
sel   : INPUT;
result : OUTPUT;
)
BEGIN
result[] = lpm_mux(.data[][]=(datab[], dataa[]), .sel[]=sel)
WITH (LPM_WIDTH = WIDTH, LPM_SIZE = 2, LPM_WIDTHS = 1);
IF !USED(result) GENERATE
result[] = GND;
END GENERATE;
END;

看起来好像是两个数组(输入)进行一个什么运算的样子。
也可以QQ联系我 谢谢。 402619389。



hubukaixuan 发表于 2012-7-31 09:43:11

呵呵,我居然也是莫元。哈哈。

hubukaixuan 发表于 2012-8-1 09:08:27

有没有懂的朋友啊,为了不让我的帖子沉了。我不得不自己顶一下了。
谢谢大家了。

korgo 发表于 2012-8-1 09:15:03

AHDL是Altera公司开发的,但主流还是vhdl和verilog,楼主还是换换吧
看着应该是批量生成语句类似vhdl的if()generate。。。。
这个应该是个n位的二选一选择器

hubukaixuan 发表于 2012-8-1 09:17:09

我觉得也是的,但是下面的一句话,是什么意思了。
IF !USED(result) GENERATE
result[] = GND;
END GENERATE;
END;
感谢楼上,提出的建议,我没有用AHDL,那个程序是一位前辈8年前写的。
我现在用Verilog和VHDL,不过都还没有怎么入门。

korgo 发表于 2012-8-1 09:48:34

好像是“如果没有用到的位就输出0”这个逻辑的批量生产吧

korgo 发表于 2012-8-1 09:50:07

建议vhdl和verilog一个一个来,会了一个另一个就是语法的事情了。。。

hubukaixuan 发表于 2012-8-1 15:29:19

上面的程序已经解决了。反正就是一个两路选择器。后面的一句就是初始化输出为0而已。
至于VHDL还是Verilog HDL还在纠结中。 不清楚先从哪一个开始开始。
页: [1]
查看完整版本: AHDL语言求帮忙 整个程序中的一个模块程序