不可合成的VHDL代码

不可合成的VHDL代码,vhdl,fpga,xilinx,xilinx-ise,Vhdl,Fpga,Xilinx,Xilinx Ise,我正在尝试为Spartan-S6系列FPGA制作一个使用VHDL过程的DNA读取器模块。问题是我的代码无法合成。它在模拟中起作用,但在合成过程中,它只会出问题。我也在谷歌上搜索过不可合成的VHDL进程,但我认为我做得对,而且必须很好地合成。 这是我的流程代码: FSMOutputController:process(state,readDnaCmd) variable clkCounter :unsigned(7 downto 0) := "00000000"; begin

我正在尝试为Spartan-S6系列FPGA制作一个使用VHDL过程的DNA读取器模块。问题是我的代码无法合成。它在模拟中起作用,但在合成过程中,它只会出问题。我也在谷歌上搜索过不可合成的VHDL进程,但我认为我做得对,而且必须很好地合成。 这是我的流程代码:

FSMOutputController:process(state,readDnaCmd)

variable clkCounter    :unsigned(7 downto 0) := "00000000";

begin

    case state is
        when zeroState =>
            if readDnaCmd = '1' then
                DNA_Read <= '1';
                SR_read   <= '0';
            else
                SR_read   <= '1';
            end if;
        when initState =>
            DNA_Read  <= '0';
            SR_read   <= '1';
            SR_clk    <= DNA_CLK_temp;
            DNA_Shift <= '1';

        when endReadState =>
            DNA_shift <= '0';
            SR_read   <= '0';
        when readState =>
            clkCounter := clkCounter + 1;
            --clkCounter2 <= clkCounter2 + X"01";
            SR_read   <= '0';
    end case;

end process FSMOutputController;

你可以从pastebin中查看我的完整和完整信息。

我不完全确定这是否是唯一的错误。但作为一个最低限度的东西,比如
DNA\u CLK\u Temp,显然你不知道在同步设计中如何处理时钟。恐怕你最需要的是一本VHDL的书或课程。与所有编程语言一样,如果没有起码的知识,就无法编写出像样的VHDL代码。雷诺:我知道它有一些重大错误,我应该了解更多。关于一本VHDL的书,我搜索了一下,但没有找到一本好的。你能介绍一本书吗?搜索“计时过程”,阅读和学习。。。synth报告说你有一个98兆赫的时钟可用。。。使用它。赋值
clkCounter:=clkCounter+1组合完成。一个(选通或启用)电路描述一个具有反馈的阵列值,以及一个或多个阵列元素反转的可能性)类似于振荡器。请注意,合成通常会忽略敏感度列表,它可以根据模拟期间的事件粒度提供“合理”的行为。组合逻辑在没有时钟和时序逻辑的实际硬件中不间断地连续运行。@reza:就我个人而言,我向我的学生推荐“VHDL设计者指南(Peter J.Ashenden),2008年,Morgan Kaufmann,936页”或“VHDL数字系统设计(Mark Zwolinski),2004年,Prentice Hall,384页”。但是还有很多其他的资源,有些是在线的。选择一个并尝试理解基本知识。顺便说一下,您还需要对数字硬件(触发器、锁存器、顺序设计、组合设计)有最低限度的了解。
=========================================================================
*                           HDL Synthesis                               *
=========================================================================

Synthesizing Unit <testDNALock>.
Related source file is "C:\Projects\Anti clone S6\code\test1\DNATest\testDNALock.vhd".
WARNING:Xst:647 - Input <CLK_98MHz> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved.
WARNING:Xst:2935 - Signal 'DNAVerify', unconnected in block 'testDNALock', is tied to its initial value (0).
Summary:
no macro.
Unit <testDNALock> synthesized.
FSMOutputController:process(state,readDnaCmd)

variable clkCounter    :unsigned(7 downto 0) := "00000000";

begin

    case state is
        when zeroState =>
            if readDnaCmd = '1' then
                --DNA_Read <= '1';
                --SR_read   <= '0';
            else
                --SR_read   <= '1';
            end if;
        when initState =>
            --DNA_Read  <= '0';
            --SR_read   <= '1';
            --SR_clk    <= DNA_CLK_temp;
            --DNA_Shift <= '1';

        when endReadState =>
        --  DNA_shift <= '0';
        --  SR_read   <= '0';
        when readState =>
            clkCounter := clkCounter + 1;
            --clkCounter2 <= clkCounter2 + X"01";
        --  SR_read   <= '0';
    end case;

end process FSMOutputController;
=========================================================================
*                            Design Summary                             *
=========================================================================

Clock Information:
------------------
No clock signals found in this design

Asynchronous Control Signals Information:
----------------------------------------
No asynchronous control signals found in this design

Timing Summary:
---------------
Speed Grade: -3

   Minimum period: No path found
   Minimum input arrival time before clock: No path found
   Maximum output required time after clock: No path found
   Maximum combinational path delay: No path found

=========================================================================

Process "Synthesize - XST" completed successfully