完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我很欣赏这可能是一个在导师面前提问的问题,但我认为这里的人会多次这样做,并且也有Xilinx的观点。
而且,这可能比Irealise更简单! 所以,先做我想做的事...... 我有一个V5 / ISE设计,我正在转换为Kintex Ultrascale / Vivado,并希望将一个前后的实例放入一个测试平台进行比较,但我该怎么做: 1)让modelsim使用2套原始库(即V5和Kintex) 2)告诉我的testbech中的每个实例使用哪个库 我猜测另一种方法是运行旧设计保存向量,然后在运行Kintex版本的新TB中进行波形比较? (只有我用这种方法看到的问题是我对结核病做出的任何改变意味着我必须每次在2阶段过程中返回并运行旧设计) 提前感谢您的任何建议! :) 以上来自于谷歌翻译 以下为原文 I appreciate this could be a question to ask over at mentor, but I reckon people here would have done this many times and also have a Xilinx perspective. Also, there is probably a much simpler way of doing this than I realise! So, first off what I want to do... I have a V5/ISE design that I am converting to Kintex Ultrascale/Vivado and would like to place an instance of before and after into a single test bench for comparison, BUT how do I: 1) Get modelsim to use 2 sets of primitive libraries (i.e. V5 and Kintex) 2) Tell each instance in my testbech which library to use I am guessing another approach would be to run the old design saving the vectors and then waveform compare these in the new TB running the Kintex version? (Only issue I see with this approach is any changes I make to the TB means I have to go back and run the old design each time in a 2 stage process) Thanks in advance for any advice! :) |
|
相关推荐
3个回答
|
|
你不能在同一次运行中使用两套库。
每次目标设备库发生更改时,您都需要单独运行。 谢谢和RegardsBalkrishan ----------------------------------------------- ---------------------------------------------请将帖子标记为 一个答案“接受为解决方案”,以防它有助于解决您的查询。如果一个帖子引导到解决方案,请给予赞誉。 以上来自于谷歌翻译 以下为原文 you can't use two set of library in same run . You need to run separately each time when target device library got change.Thanks and Regards Balkrishan -------------------------------------------------------------------------------------------- Please mark the post as an answer "Accept as solution" in case it helped resolve your query. Give kudos in case a post in case it guided to the solution. |
|
|
|
我认为没有一个简单的解决方案,这在以前没有“多次”完成 - 这是一个相当新的问题。
Xilinx一直采用一套统一的仿真库。 过去,只有一套图书馆,它包括所有设备系列的电池; 同一个图书馆拥有多代设备的细胞; 你可以在同一组库中找到Spartan-3单元和Virtex-4和Virtex-5(...)。 这可能是因为单元格没有代代相传,或者它们会得到新名称(例如,我们有RAMB16.RAMB18,RAMB18E1 ......)。 如果一个单元具有相同的名称但行为略有不同,则它将使用SIM_DEVICE参数/ generic来确定它正在模拟的族。 所以这绝不是一个问题 - 如果你有一个Spartan-3和Virtex-5的设计,你只需要一套库,模拟器将拥有它所需要的一切。 然而,随着ISE / Vivado分裂,事情变得复杂。 ISE仍然拥有包含7个系列的所有内容的库。 Vivado只有7系列及更高版本(现在包括UltraScale和UltraScale +) 比如使用Spartan-6(用ISE实现)和Kintex-7(用Vivado实现)进行模拟,可以想到你可以简单地使用ISE库(因为它们包含7系列),但它实际上是 事实证明,ISE和Vivado中的7系列库略有不同。 Vivado库中的某些单元格具有ISE库中不存在的其他参数。 这些参数由Vivado(生成网表时)使用,但不由ISE使用。 这些必须手动解决。 但是对于V5和KintexUltrascale,你处于新的领域...... ISE库不包括UltraScale,而Vivado库不包括V5 ...... 话虽这么说,我仍然认为细胞是独一无二的。 如果两个库中都存在具有相同名称的单元格,那么它应具有相同的功能,否则它将具有SIM_DEVICE参数(可能有一些新参数的警告,如上所述)。 我认为即使在V5和Kintex UltraScale之间仍然如此(它们从未共享过一个库)。 因此,您必须手动合并两个库 - 保留两个独特的单元格,保留两个库中相同的单元格的描述。 但是,您会发现一些不同的相同单元格的描述。 这些必须手动按摩。 您甚至可能需要进入V5网表描述并修改单元格的实例化(这很麻烦)。 所以(除非有人知道我不知道的事情),我认为没有一个干净的解决方案。 如果你能成功完成这项工作,请告诉我们...... Avrum 以上来自于谷歌翻译 以下为原文 I don't think there is a simple solution to this, and this has not been done "many times" before - this is a fairly new problem. Xilinx has always taken the approach of having one unified set of simulation libraries. In the past, there has only been one set of libraries, and it has included cells from all families of devices; the same library had the cells from many generations of devices; you would find Spartan-3 cells and Virtex-4 and Virtex-5 (...) all in the same set of libraries. This was possible either because cells didn't change functionality from generation to generation, or they would get new names (for example, we have RAMB16. RAMB18, RAMB18E1...). If a cell had the same name but slightly different behavior it would use the SIM_DEVICE parameter/generic to determine which family it was simulating. So this was never a problem - if you had a design with Spartan-3 and Virtex-5, you just needed the one set of libraries and the simulator would have everything it needed. However, with the ISE/Vivado split, things have become complicated. ISE still has its libraries that has everything up to and including 7 series. Vivado has only the 7 series and beyond (which now includes UltraScale and UltraScale+) For simulating, say, a design with Spartan-6 (implemented with ISE) and Kintex-7 (implemented with Vivado), one would have thought that you could simply use the ISE libraries (since they include the 7 series), but it actually turns out that the 7 series libraries in ISE and Vivado are slightly different. Some cells in the Vivado library have additional parameters that don't exist in the ISE libraries. These parameters are used by Vivado (when generating a netlist), but not by ISE. These had to be resolved manually. But with V5 and KintexUltrascale, you are in new territory... The ISE libraries do not include UltraScale, and the Vivado libraries do not include V5... That being said, I still think the cells are unique. If a cell with the same name exists in both libraries, then it should have the same functionality, or else it will have the SIM_DEVICE parameter (with the caveat of possibly having some new parameters, as I mentioned above). I think this is still true even between V5 and Kintex UltraScale (which have never shared a library together). So you would have to manually merge the two libraries - keeping the unique cells from both, keeping either description for cells that are identical in both libraries. However, you will find some descriptions of the same cells that are different. These will have to be manually massaged. You might even need to go into your V5 netlist description and modify the instantiation of cells (which is messy). So (unless someone knows something about this that I don't), I don't think there is a clean solution. Let us know if you manage to get this work... Avrum |
|
|
|
这里有一些想法:
比较可能并不那么容易:有些事情可能不会完全发生在锁定步骤中 - 可能会使眼球难以进行。 例如:PLL可能会在不同的时间锁定,某些IP接口可能会有稍微不同的延迟等等.BRAM可能或多或少相同,但DSP48已经改变了一点。 更复杂的核心现在可能有不同的接口。 可以在没有波形的情况下完成:如果你有自检的测试平台,那么两个设计的传递都是完成任务而不需要查看波形。 但是:前后都有一个舒适的因素。 要同时运行2个库,不应该通过操作库映射,配置等来实现吗? 也许有一个问题,但这里有一些猜测: 猜测#1:逻辑上将库分开:1)“让modelsim使用2套原始库(即V5和Kintex)”: - 假设该库名为“xilinx_lib”.-使V5库在逻辑上是唯一的:vmap ise_xilinx_lib ./ise/xilinx_lib vmap xilinx_lib ./vivado/xilinx_lib2)“告诉我的testbech中的每个实例使用哪个库”: - 使用配置告诉v5设计使用逻辑库ise_xilinx_lib。 - 对于VHDL和Verilog,这可能略有不同 - 查看幻灯片9:http://www.sutherland-hdl.com/papers/2000-HDLCon-presentation_Verilog-2000.pdf - 或者,在VHDL设计中使用“ise_xilinx_lib”强制搜索和替换V5设计中对“xilinx_lib”的引用 猜#2:使用系统verilog嵌套模块 1)“让modelsim使用2套原始库(即V5和Kintex)”: 2)“告诉我的testbech中的每个实例使用哪个库”: - 使用System Verilog嵌套模块围绕V5设计包装模块。 这将在与kintex设计分开的命名空间内编译V5库。 模块v5_top; `include“ise / bufg.v” `include“ise / buf_io.v” ... yada yada ... `include“my_design.v” endmodule 以上来自于谷歌翻译 以下为原文 Here's a few thoughts: Comparing may not be that easy: Some things might not happen exactly in lock step - could make eyeballing difficult. Ex: PLLs might lock at different times, some IP interfaces might have slightly different latencies, etc.. BRAMs are probably more or less the same, but DSP48s have changed a bit. More complicated cores might have different interfaces now. Can do it without waveforms: If you have self-checking testbenches, then a pass on both designs is mission accomplished without looking at waveforms. However : There is a comfort factor is seeing before and after. For running 2 libraries at the same time, shouldn't it be possible by manipulating library mappings, configurations and so on? Maybe there's a gotcha, but here's a few guesses: guess #1: Logically separate the libraries: 1) "Get modelsim to use 2 sets of primitive libraries (i.e. V5 and Kintex)" : - Say the library is called "xilinx_lib". - Make the V5 library logically unique : vmap ise_xilinx_lib ./ise/xilinx_lib vmap xilinx_lib ./vivado/xilinx_lib 2) "Tell each instance in my testbech which library to use": - Use a configuration to tell the v5 design to use the logical library ise_xilinx_lib. - This might work for slightly differently for VHDL and Verilog - Check out slide 9: http://www.sutherland-hdl.com/papers/2000-HDLCon-presentation_Verilog-2000.pdf - OR, brute force search and replace references to "xilinx_lib" in the V5 design with "ise_xilinx_lib" in VHDL design guess #2: Use system verilog nested modules 1) "Get modelsim to use 2 sets of primitive libraries (i.e. V5 and Kintex)" : 2) "Tell each instance in my testbech which library to use": - Wrap a module around the V5 design using System Verilog nested modules. This compiles the V5 library inside a namespace separate from the kintex design. module v5_top; `include "ise/bufg.v" `include "ise/buf_io.v" ... yada yada ... `include "my_design.v"endmodule |
|
|
|
只有小组成员才能发言,加入小组>>
2380 浏览 7 评论
2797 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2262 浏览 9 评论
3335 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2428 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
756浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
545浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
366浏览 1评论
1963浏览 0评论
682浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 07:10 , Processed in 1.347075 second(s), Total 83, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号