完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好
我是FPGA项目的初学者,我做了一个项目,但是没有用。 合成过程以最高频率结束:20 MHZ,我的项目需要64 MHZ。 所以我用2个计数器和2个DCM来降低项目,但问题仍然存在。 任何人都可以解释原因吗? 我正在使用斯巴达3E。 它遵循我的代码: 核心 -------------------------------------------------- -------------------------------- library IEEE;使用IEEE.STD_LOGIC_1164.ALL;使用IEEE.STD_LOGIC_ARITH.ALL;使用 IEEE.STD_LOGIC_UNSIGNED.ALL; ----如果在此code.library UNISIM中实例化----任何Xilinx原语,则取消注释以下库声明;使用UNISIM.VComponents.all; 实体核心是端口(clk:在STD_LOGIC中; rst:在std_logic中; led1:输出STD_LOGIC; led2:输出STD_LOGIC);结束核心; 架构核心的行为是 COMPONENT low_dcmPORT(CLKIN_IN:IN std_logic; RST_IN:IN std_logic; CLKDV_OUT:OUT std_logic; CLKIN_IBUFG_OUT:OUT std_logic; CLK0_OUT:OUT std_logic; LOCKED_OUT:OUT std_logic); END COMPONENT; COMPONENT core_dcmPORT(CLKIN_IN:IN std_logic; RST_IN:IN std_logic; CLKFX_OUT:OUT std_logic; LOCKED_OUT:OUT std_logic); END COMPONENT; COMPONENT counterPORT(clk:IN std_logic; saida:OUT std_logic); END COMPONENT; signal reset_dcm,reset_locked,low_dcm_locked:std_logic; signal clock_6m,clock_4m,clk4mhz,clk_in:std_logic; signal clkin_ibufg,clock_64m,core_dcm_locked,mclk:std_logic; 开始 reset_dcm Inst_low_dcm:low_dcm PORT MAP(CLKIN_IN => clk,RST_IN => reset_dcm,CLKDV_OUT => clock_4m,CLKIN_IBUFG_OUT => clkin_ibufg,CLK0_OUT => clock_6m,LOCKED_OUT => low_dcm_locked); Inst_core_dcm:core_dcm PORT MAP(CLKIN_IN => clkin_ibufg,RST_IN => reset_dcm,CLKFX_OUT => clock_64m,LOCKED_OUT => core_dcm_locked); Inst_counter1:计数器端口映射(clk => clock_4m,saida => led1); Inst_counter2:计数器端口映射(clk => clock_64m,saida => led2); 结束行为; 柜台 库IEEE;使用IEEE.STD_LOGIC_1164.ALL;使用IEEE.STD_LOGIC_ARITH.ALL;使用IEEE.STD_LOGIC_UNSIGNED.ALL; ----如果在此代码中实例化----任何Xilinx原语,则取消注释以下库声明.-- library UNISIM; - 使用UNISIM.VComponents.all; 实体计数器是端口(clk:在STD_LOGIC中;表示:输出STD_LOGIC);结束计数器; 建筑的行为是 信号计数:std_logic_vector(23 downto 0); 开始 process(clk)beginif clk ='0'和clk'event thencount end if if; end process; 说最终行为; 合成结果: 时间概要:---------------速度等级:-4 最小周期:50.187ns(最大频率:19.926MHz)时钟前的最小输入到达时间:未找到路径时钟后的最大输出所需时间:4.310ns最大组合路径延迟:未找到路径 我发现当我评论CORE_DCM组件和实例化时,以及COUNTER2实例化项目运行时: 时间概要:---------------速度等级:-4 最小周期:3.137ns(最大频率:318.810MHz)时钟前的最小输入到达时间:未找到路径时钟后的最大输出所需时间:4.310ns最大组合路径延迟:未找到路径 非常感谢。 以上来自于谷歌翻译 以下为原文 Hi I'm a beginner in fpga projects and I have made a project, but it didn't work. The synthesize process ends with maximum frequency very low: 20 MHZ and my project need 64 MHZ. So I made a project lower with 2 counters and 2 DCMs, but problem persists still. Can anybody explain why? I'm using Spartan 3E. It follows my code: THE CORE ---------------------------------------------------------------------------------- library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; ---- Uncomment the following library declaration if instantiating ---- any Xilinx primitives in this code. library UNISIM; use UNISIM.VComponents.all; entity core is Port ( clk : in STD_LOGIC; rst : in std_logic; led1 : out STD_LOGIC; led2 : out STD_LOGIC); end core; architecture Behavioral of core is COMPONENT low_dcm PORT( CLKIN_IN : IN std_logic; RST_IN : IN std_logic; CLKDV_OUT : OUT std_logic; CLKIN_IBUFG_OUT : OUT std_logic; CLK0_OUT : OUT std_logic; LOCKED_OUT : OUT std_logic ); END COMPONENT; COMPONENT core_dcm PORT( CLKIN_IN : IN std_logic; RST_IN : IN std_logic; CLKFX_OUT : OUT std_logic; LOCKED_OUT : OUT std_logic ); END COMPONENT; COMPONENT counter PORT( clk : IN std_logic; saida : OUT std_logic ); END COMPONENT; signal reset_dcm, reset_locked, low_dcm_locked : std_logic; signal clock_6m, clock_4m, clk4mhz, clk_in : std_logic; signal clkin_ibufg, clock_64m, core_dcm_locked, mclk : std_logic; begin reset_dcm <= '1' when rst = '1' else '0'; Inst_low_dcm: low_dcm PORT MAP( CLKIN_IN => clk, RST_IN => reset_dcm, CLKDV_OUT => clock_4m, CLKIN_IBUFG_OUT => clkin_ibufg, CLK0_OUT => clock_6m, LOCKED_OUT => low_dcm_locked ); Inst_core_dcm: core_dcm PORT MAP( CLKIN_IN => clkin_ibufg, RST_IN => reset_dcm, CLKFX_OUT => clock_64m, LOCKED_OUT => core_dcm_locked ); Inst_counter1: counter PORT MAP( clk => clock_4m, saida => led1 ); Inst_counter2: counter PORT MAP( clk => clock_64m, saida => led2 ); end Behavioral; THE COUNTER library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; ---- Uncomment the following library declaration if instantiating ---- any Xilinx primitives in this code. --library UNISIM; --use UNISIM.VComponents.all; entity counter is Port ( clk : in STD_LOGIC; saida : out STD_LOGIC); end counter; architecture Behavioral of counter is signal count : std_logic_vector (23 downto 0); begin process (clk) begin if clk = '0' and clk'event then count <= count + 1; end if; end process; saida <= count(23); end Behavioral; SYNTHESIZE RESULTS: Timing Summary: --------------- Speed Grade: -4 Minimum period: 50.187ns (Maximum Frequency: 19.926MHz) Minimum input arrival time before clock: No path found Maximum output required time after clock: 4.310ns Maximum combinational path delay: No path found I discovered that when I comment CORE_DCM component and instantiation, and COUNTER2 instantiation the project run at: Timing Summary: --------------- Speed Grade: -4 Minimum period: 3.137ns (Maximum Frequency: 318.810MHz) Minimum input arrival time before clock: No path found Maximum output required time after clock: 4.310ns Maximum combinational path delay: No path found Thanks so much. |
|
相关推荐
14个回答
|
|
p,
你是如何限制你的设计的? 在论坛页面上查看我的博客,了解如何限制时间限制。 我是第5部分中的第3部分,但您已经讨论过所需要的内容。 这些工具只会像你告诉他们一样努力。 如果没有周期时间限制,它将在放置和路由方面做最少量的工作,然后说“我已经完成了”。 你得到的就是你所要求的:一个运行的解决方案(功能)。 如果你想拥有速度,你需要问工具给你速度。 如果适当约束,24位同步计数器将运行得更快。 添加或删除内容时为什么会发生变化非常简单:由于您没有要求任何性能,因此在设计中进行小的更改时,性能会随机变化。 Austin Lesea主要工程师Xilinx San Jose 以上来自于谷歌翻译 以下为原文 p, How are you constraining your design? See my blog on the forums page on how touse timing constraints. I am on part 3 of 5, but what you need has already been discussed. The tools will only work as hard as you tell them to. With no period timing constraint, it will do the least amount of work on placement and routing, and then say "I am all done." What you get is what you asked for: a solution that runs (functions). If you wish to have speed, you need to ask the tools to give you than speed. A 24 bit synchronous counter, if properly constrained, will run much faster. Why it changes when you add or drop something is very simple: since you did not ask for any performance, performance will vary at random when small changes are made in the design. Austin Lesea Principal Engineer Xilinx San Jose |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
p,
对输入时钟网络名称应用一个约束(仅限)。 将它设置为您想要的。 如果需要100 MHz或10ns,请指定。 如果时钟占空比为50%,那就告诉它。 所有派生的时钟都应该得到适当的约束(如果它们相乘或分开则进行缩放),并且任何不同相位的直通时钟也应该得到适当的约束。 如果这不起作用,请发布错误消息,以便我可以尝试猜测你做错了。 Austin Lesea主要工程师Xilinx San Jose 以上来自于谷歌翻译 以下为原文 p, Apply ONE constraint, for the input clock net name (only). Set it to what you want. If you want 100 MHz, or 10ns, then specify that. If the clock is 50% duty cycle, then tell it that. All derived clocks should get constrained properly (scaled if they are multiplied or divided) and any pass-through clocks of different phase should also get constrained properly. If this does not work, please post the error rmessage so I can try to guess whta you did wrong. Austin Lesea Principal Engineer Xilinx San Jose |
|
|
|
|
|
|
|
|
|
|
|
p,
CLKFX的M和D值是多少? 这是什么部分? 哪个版本的ISE工具? 出于某种原因,这些工具似乎根本没有应用任何约束。 你有什么警告吗? 你试过把时钟信号限制在24位计数器吗? (或者,这是“clk”这个信号吗?) Austin Lesea主要工程师Xilinx San Jose 以上来自于谷歌翻译 以下为原文 p, What is the M and D values for CLKFX? What part is this? Which version of the ISE tool? For some reason, the tools do not seem to be applying any constraint at all. Did you get any warnings? Have you tried constraining just the clock signal to the 24 bit counter? (or, is this "clk" this signal?) Austin Lesea Principal Engineer Xilinx San Jose |
|
|
|
None
以上来自于谷歌翻译 以下为原文 Hi, ISE tool Release version : 11.4 Application version: L.68 In create timming constraints show only clock signal that is it "clk" All results from synthesize: Started : "Convert HDL Source". Process "Convert HDL Source" completed successfully Started : "Convert HDL Source". Process "Convert HDL Source" completed successfully Reading design: core.prj ========================================================================= * HDL Compilation * ========================================================================= Compiling vhdl file "G:/isetest/low_dcm.vhd" in Library work. Architecture behavioral of Entity low_dcm is up to date. Compiling vhdl file "G:/isetest/core_dcm.vhd" in Library work. Architecture behavioral of Entity core_dcm is up to date. Compiling vhdl file "G:/isetest/counter.vhd" in Library work. Architecture behavioral of Entity counter is up to date. Compiling vhdl file "G:/isetest/core.vhd" in Library work. Entity Entity ========================================================================= * Design Hierarchy Analysis * ========================================================================= Analyzing hierarchy for entity Analyzing hierarchy for entity Analyzing hierarchy for entity Analyzing hierarchy for entity ========================================================================= * HDL Analysis * ========================================================================= Analyzing Entity Entity Analyzing Entity Set user-defined property "CAPACITANCE = DONT_CARE" for instance Set user-defined property "IBUF_DELAY_VALUE = 0" for instance Set user-defined property "IBUF_LOW_PWR = TRUE" for instance Set user-defined property "IOSTANDARD = DEFAULT" for instance Set user-defined property "CLKDV_DIVIDE = 1.5000000000000000" for instance Set user-defined property "CLKFX_DIVIDE = 1" for instance Set user-defined property "CLKFX_MULTIPLY = 4" for instance Set user-defined property "CLKIN_DIVIDE_BY_2 = FALSE" for instance Set user-defined property "CLKIN_PERIOD = 166.6670000000000000" for instance Set user-defined property "CLKOUT_PHASE_SHIFT = NONE" for instance Set user-defined property "CLK_FEEDBACK = 1X" for instance Set user-defined property "DESKEW_ADJUST = SYSTEM_SYNCHRONOUS" for instance Set user-defined property "DFS_FREQUENCY_MODE = LOW" for instance Set user-defined property "DLL_FREQUENCY_MODE = LOW" for instance Set user-defined property "DSS_MODE = NONE" for instance Set user-defined property "DUTY_CYCLE_CORRECTION = TRUE" for instance Set user-defined property "FACTORY_JF = C080" for instance Set user-defined property "PHASE_SHIFT = 0" for instance Set user-defined property "STARTUP_WAIT = FALSE" for instance Entity Analyzing Entity Set user-defined property "CLKDV_DIVIDE = 2.0000000000000000" for instance Set user-defined property "CLKFX_DIVIDE = 3" for instance Set user-defined property "CLKFX_MULTIPLY = 32" for instance Set user-defined property "CLKIN_DIVIDE_BY_2 = FALSE" for instance Set user-defined property "CLKIN_PERIOD = 166.6670000000000000" for instance Set user-defined property "CLKOUT_PHASE_SHIFT = NONE" for instance Set user-defined property "CLK_FEEDBACK = NONE" for instance Set user-defined property "DESKEW_ADJUST = SYSTEM_SYNCHRONOUS" for instance Set user-defined property "DFS_FREQUENCY_MODE = LOW" for instance Set user-defined property "DLL_FREQUENCY_MODE = LOW" for instance Set user-defined property "DSS_MODE = NONE" for instance Set user-defined property "DUTY_CYCLE_CORRECTION = TRUE" for instance Set user-defined property "FACTORY_JF = C080" for instance Set user-defined property "PHASE_SHIFT = 0" for instance Set user-defined property "STARTUP_WAIT = FALSE" for instance Entity Analyzing Entity Entity ========================================================================= * HDL Synthesis * ========================================================================= Performing bidirectional port resolution... Synthesizing Unit Related source file is "G:/isetest/counter.vhd". Found 24-bit up counter for signal Summary: inferred 1 Counter(s). Unit Synthesizing Unit Related source file is "G:/isetest/low_dcm.vhd". Unit Synthesizing Unit Related source file is "G:/isetest/core_dcm.vhd". Unit Synthesizing Unit Related source file is "G:/isetest/core.vhd". WARNING:Xst:1780 - Signal WARNING:Xst:1780 - Signal WARNING:Xst:646 - Signal WARNING:Xst:646 - Signal WARNING:Xst:646 - Signal WARNING:Xst:1780 - Signal WARNING:Xst:1780 - Signal Unit ========================================================================= HDL Synthesis Report Macro Statistics # Counters : 2 24-bit up counter : 2 ========================================================================= ========================================================================= * Advanced HDL Synthesis * ========================================================================= ========================================================================= Advanced HDL Synthesis Report Macro Statistics # Counters : 2 24-bit up counter : 2 ========================================================================= ========================================================================= * Low Level Synthesis * ========================================================================= Optimizing unit Mapping all equations... Building and optimizing final netlist ... Found area constraint ratio of 100 (+ 5) on block core, actual ratio is 1. Final Macro Processing ... ========================================================================= Final Register Report Macro Statistics # Registers : 48 Flip-Flops : 48 ========================================================================= ========================================================================= * Partition Report * ========================================================================= Partition Implementation Status ------------------------------- No Partitions were found in this design. ------------------------------- ========================================================================= * Final Report * ========================================================================= Clock Information: ------------------ -----------------------------------+--------------------------------+-------+ Clock Signal | Clock buffer(FF name) | Load | -----------------------------------+--------------------------------+-------+ clk | Inst_core_dcm/DCM_SP_INST:CLKFX| 24 | clk | Inst_low_dcm/DCM_SP_INST:CLKDV | 24 | -----------------------------------+--------------------------------+-------+ Asynchronous Control Signals Information: ---------------------------------------- No asynchronous control signals found in this design Timing Summary: --------------- Speed Grade: -4 Minimum period: 50.187ns (Maximum Frequency: 19.926MHz) Minimum input arrival time before clock: No path found Maximum output required time after clock: 4.310ns Maximum combinational path delay: No path found ========================================================================= Process "Synthesis" completed successfully Tks |
|
|
|
p,
当ip核心生成器为DCM创建包装器时,输入周期被指定为6 MHz(166.66667 MHz)。 因此,您的时序约束被忽略(您已经告诉DCM他们必须运行多快,因此工具不必比从这个6 MHz信号得到的频率更难工作)。 没有必要比现在更快。 没有好处。 你完成了:时间关闭(好)。 当您移除DCM时,不再指定时钟,然后您可以将约束放在ucf中并实际获得结果。 对现有DCM规范施加约束是我认为导致错误的(当你生效时,对于相同的时钟,两个规范)。 对“clk”信号的单一约束只是被忽略了......为什么它也没有给出错误或警告我不知道。 但是,工具报告他们遇到了所有事情(他们做了)。 Austin Lesea主要工程师Xilinx San Jose 以上来自于谷歌翻译 以下为原文 p, When the ip core generator made the wrappers for the DCM's, the input periods were specified as 6 MHz (166.66667 MHz) by you. So your timing constraint is ignored (you already told the DCMs how fast they have to run, so the tools do not have to work any harder than the frequncies that are derived from this 6 MHz signal). There is no need to go any faster than it is already going. No benefit. You are done: timing is closed (good). When you remove the DCM's the clocks are no longer specified, and you could then place the constraint in the ucf and actually get a result. Placing a constraint over the exisiting DCM specification is what I think caused the errors (when you in effect, ahd two specifications, for the same clocks). The single constraint on the "clk" signal is just ignored... why it also doesn't give an error or a warning I don't know. But, the tools report they met everything (which they did). Austin Lesea Principal Engineer Xilinx San Jose |
|
|
|
他现阶段只做合成。
合成工具给出的“最大频率”值有多准确? 综合工具真的关心时序约束吗? 我的理解是,设计的实际时间发生在“实施设计”阶段。 以上来自于谷歌翻译 以下为原文 He is only doing synthesis at this stage. How accurate is the "Maximum Frequency" value given by the synthesis tool? Does the synthesis tool really care about the timing constraints? It was my understanding that the real timing of the design takes place in the "Implement Design" stage. |
|
|
|
一个,
好点子! 是的,你是对的:我的错误。 感谢您的观察,我自动认为他正在做地点和路线,以及比特流.... Austin Lesea主要工程师Xilinx San Jose 以上来自于谷歌翻译 以下为原文 a, Good point! Yes, you are correct: my mistake. Thank you for the observation, I automatically assumed he was doing the place and route, and bitstream.... Austin Lesea Principal Engineer Xilinx San Jose |
|
|
|
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
2385 浏览 7 评论
2800 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2264 浏览 9 评论
3336 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2433 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
759浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
548浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
371浏览 1评论
1966浏览 0评论
685浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 07:00 , Processed in 1.555066 second(s), Total 106, Slave 89 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号