完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,
我可以使用xilinx工具以任何方式封装我的源代码。 结构部件A具有可变参数。 在不使用该组件的源代码的情况下,我可以在顶层模块B中实例化A,并且我应该能够更改A到B的参数(通用)。 可以使用库,网表等完成。 FPGA怪胎 以上来自于谷歌翻译 以下为原文 Hi all, Can I encapsulate my source code in any way using xilinx tool. Structural component A has variable parameters. Without using the source code of this component, can I instantiate A in top module B and I should be able to change the parameters (generic) of A through B. Can it be done using library, netlist,etc. FPGA freak |
|
相关推荐
9个回答
|
|
嗨Sridar,
简单回答:是的。 您的组件A必须定义一些泛型。 这些可以具有默认值。 这些值可以被模块B中模块A实例化中给出的值覆盖。 但请记住:价值观必须是静态的。 (例如公交车宽度) 有一个很好的综合 Eilert 以上来自于谷歌翻译 以下为原文 Hi Sridar, simple answer: Yes. Your component A has to have some Generics defined. These can have default values. These values can be overridden by the values given in the instantiation of Module A inside Module B. But remember: The values have to be static. (e.g. Bus widths) Have a nice synthesis Eilert |
|
|
|
是的,我明白了。
但我在合成时没有使用组件的源代码。 我能够在顶级项目B中实例化一个组件A,项目目录B中的网表为A. 但我无法更改A到B的通用值。它说,在实现的TRANSLATE阶段,总线宽度不匹配错误。 FPGA怪胎 以上来自于谷歌翻译 以下为原文 Yeah, I got it. But i am not using the source code of the component while synthesizing. I am able to instantiate a component A in top level project B with netlist of A in project directory B. But I am unable to change the generic values of A through B. It says, bus width mismatch error in TRANSLATE phase of implementation. FPGA freak |
|
|
|
嗨sridar,
所以你使用的是预先合成的ip-core而不是源代码。 在这种情况下,没有简单的方法来更改模块A, 因为它的结构和连线是固定的。 如果核心来自某个生成器,您可能会生成一堆类似的核心(例如,使用不同的总线)。 在模块B中,您可以使用if ... generate语句根据需要选择适当的模块。 有一个很好的综合 Eilert 以上来自于谷歌翻译 以下为原文 Hi sridar, so you are using a presynthesized ip-core instead of source code. In that case there's no simple means to change your module A, because it's structure and wireing is fixed. If the core comes from some generator, you may generate a bunch of similar cores (e.g. with different bus withs. In your module B you can use the if...generate Statement to select the appropriate module according to your needs. Have a nice synthesis Eilert |
|
|
|
我能以某种方式使用xilinx库吗?
FPGA怪胎 以上来自于谷歌翻译 以下为原文 Can I do this with xilinx library somehow?FPGA freak |
|
|
|
嗨Sridar,
哪个图书馆? (不只有一个) 您打算使用哪种(类型)模块。 有一个很好的综合 Eilert 以上来自于谷歌翻译 以下为原文 Hi Sridar, Which library? (there's not just one) And which (type of) module are you intending to use. Have a nice synthesis Eilert |
|
|
|
喜
我的意思是用户定义的库。 你是什么意思模块。 (如果是verilog / vhdl,我使用VHDL) FPGA怪胎 以上来自于谷歌翻译 以下为原文 hi, I meant user defined library. What do you mean by module. (If it is verilog/vhdl, i use VHDL) FPGA freak |
|
|
|
嗨Sridar,
好的,所以我们讨论的是一些用户定义的lib,这意味着它不是xilinx提供的库。 那令我困惑。 据我所知,你有一些IP-Core(我在这里称为模块)的问题,你不能改变源代码。 那么,这个核心(模块)来自哪里? 它是来自某些外部来源,还是由您自己使用Coregen或类似工具生成的? 在第一种情况下,您只能按原样使用它。 在第二种情况下(coregen),您可以创建具有许多不同总线widhts的同一模块的多个变体(例如乘法器)。 这些都可以在您的项目库中使用,在您的包装器中,您可以使用if..generate来选择具有正确总线宽度的核心。 泛型只能在拥有源代码时使用,但是它们可以很好地工作。 有一个很好的综合 Eilert 以上来自于谷歌翻译 以下为原文 Hi Sridar, ok, so we are talking about some user defined lib, that means it's not a library provided by xilinx. That was confusing me. As I understood you have the problem with some IP-Core ( i called module here) of which you can't change the source code. So, where comes this core (module) from? Is it from some external source, or is it generated by yourself with Coregen, or some similar tool? In the first case you can only use it as it is. In the second case (coregen) you may be able to create several variants of the same Module (e.g. a multiplier) with many different bus widhts. These are all available in your project library and in your wrapper you can use if..generate to select the core with the right buswidths. Generics can only be used when you have source code, but then they work great. Have a nice synthesis Eilert |
|
|
|
嗨,
该模块不是来自核心发生器或来自外部源。 模块正在由我编写,我想封装它的功能并提供其参数的一些可变性。 然后,我想到使用网表,但我知道这是不可能的(我通过编写示例程序检查它)。 我想知道xilinx是否支持这种方法。 而且我也不想生成许多网表并选择使用if ..generate(问题是,如果我有两个泛型,那么我应该生成 四个网表并选择任何人) 我喜欢这个对话。 谢谢 消息由sridar编辑于06-15-2009 06:02 AM FPGA怪胎 以上来自于谷歌翻译 以下为原文 Hi, The module is not from core generator or from external source. Module is being written by me and i want to encapsulate it's functionality and provide some variability in its parameter. Then, i thought of using netlist, but i came to know that it is not possible (I checked it by writing sample programs). I wonder whether this kind of methodology is supported by xilinx. and also i don't want to generate many netlists and select using if ..generate (The problem is, if i have two generics, then i should generate four netlists and select anyone) I enjoy this Conversation. thanks Message Edited by sridar on 06-15-2009 06:02 AMFPGA freak |
|
|
|
嗨Sridar,
好的,现在我慢慢明白你在做什么。 所以你已经编写了一个HDL模型(可能是泛型)并且已经合成它以获得网表并希望使用这些网表。 我不知道你为什么这样做,但你可能有你的理由。 但这种方式使您的设计难以实现灵活性。 现在两种正常的方式很清楚: 使用泛型使用源代码 使用netlists使用多个变体和if..generate 如果你不想要或者不能同时使用它们的时候会有一些肮脏的伎俩。 :-) 这在任何情况下都不起作用,但至少当你想使用不同的总线宽度时。 包括与最大所需总线宽度相同宽度的信号BUS_WIDTHS。 做作业 INPUT_internal X“FFFFFFFF”; - 启用所有32位 --BUS_WIDTHS => X“0000FFFF”; - 启用16位可能的32位 --BUS_WIDTHS => X“000000FF”; - 启用8位可能的32位 ......其他信号) 现在,您的转换和映射工具应检测由于常量输入和输出而未使用的逻辑,并对其进行优化。 也许你必须首先在翻译和mappping阶段启用这些优化。 尝试一下,但请记住这是一个肮脏的伎俩,可能无法在所有情况下都有效。 也许在优化之后,您的电路将无法再按预期工作。 您必须对最终网表进行后期路线模拟才能找到答案。 行为模拟不会告诉你。 有一个很好的综合 Eilert 以上来自于谷歌翻译 以下为原文 Hi Sridar, ok, now i'm slowly going to understand what you are doing. So you have written a HDL model (with generics may be) and already synthesized it to get a netlist and want to work with these netlists. I don't know why you are working this way, but you may have your reasons. But this way makes it hard to have flexibility in your design. The two normal ways are clear now: using source code <-> using generics using netlists <-> using multiple variants and if..generate If you don't want or cant use both it's time for some dirty tricks. :-) This won't work in any case but at least when you want to use different bus widths. Include a signal BUS_WIDTHS of the same widths as your maximum desired bus widths. Make an assignment INPUT_internal <= INPUT and BUS_WIDTHS; Maybe you have to do the same with your outputs Don't worry about synchronous design here. The ANDs will vanish later on. Synthesize this, to get the netlist... In your instantiation you map some constant value to your BUS_WIDTHS input like this: port map ( BUS_WIDTHS => X"FFFFFFFF"; --enable all 32 Bits --BUS_WIDTHS => X"0000FFFF"; --enable 16 Bits out of 32 possible --BUS_WIDTHS => X"000000FF"; --enable 8 Bits out of 32 possible ... other signals) Now your translate and mapping tool should detect the unused logic due to constant Inputs and outputs and optimize it away. Maybe you have to enable these optimizations in the translate and mappping phase first. Give it a try, but remember it's a dirty trick and may not work in all cases. Maybe after optimization your circuit won't work as desired anymore. You have to do a post route simulation of the final netlist to find out. Behavioral simulation won't tell you. Have a nice synthesis Eilert |
|
|
|
只有小组成员才能发言,加入小组>>
2395 浏览 7 评论
2810 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2277 浏览 9 评论
3354 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2445 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
780浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
558浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
405浏览 1评论
1985浏览 0评论
704浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-3 23:48 , Processed in 1.569081 second(s), Total 92, Slave 76 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号