当仅在 xilinx 13.2 上合成我的 VHDL 程序时,xilinx 在这部分合成了很长时间(> 几个小时)。这异常长,因为一台像样的机器通常需要 20 分钟来合成代码。
有关如何通过此“分析 FSM 以获得最佳编码”的任何提示。阶段 ?
开始:“合成 - XST”。运行 xst... 命令行:xst -intstyle ise -ifn "C:/Users/Farmer/Desktop/CG3207 BACKUP/12 Nov 2012/ISA NOMX/i8051_top.xst" -ofn "C:/Users/Farmer/Desktop/ CG3207 BACKUP/12 Nov 2012/ISA NOMX/i8051_top.syr" 阅读设计:i8051_top.prj
==================================================== ======================= * HDL编译* ======================= ====================================================在库工作中编译 vhdl 文件“C:/Users/Farmer/Desktop/CG3207 BACKUP/12 Nov 2012/ISA NOMX/constants.vhd”。在库工作中编译 vhdl 文件“C:/Users/Farmer/Desktop/CG3207 BACKUP/12 Nov 2012/ISA NOMX/ext_interrupt.vhd”。实体 ext_interrupt 的架构行为是最新的。在库工作中编译 vhdl 文件“C:/Users/Farmer/Desktop/CG3207 BACKUP/12 Nov 2012/ISA NOMX/csadde2.vhd”。实体 csadde2 的体系结构 csadde2beh 是最新的。在库工作中编译 vhdl 文件“C:/Users/Farmer/Desktop/CG3207 BACKUP/12 Nov 2012/ISA NOMX/csadder.vhd”。Entity csadder 的架构 csadderbeh 是最新的。在库工作中编译 vhdl 文件“C:/Users/Farmer/Desktop/CG3207 BACKUP/12 Nov 2012/ISA NOMX/sequencer2.vhd”。Entity sequencer2 的架构 seq_arch 是最新的。在库工作中编译 vhdl 文件“C:/Users/Farmer/Desktop/CG3207 BACKUP/12 Nov 2012/ISA NOMX/fastalu.vhd”。实体 fastalu 的架构 fastalu_arch 是最新的。在库工作中编译 vhdl 文件“C:/Users/Farmer/Desktop/CG3207 BACKUP/12 Nov 2012/ISA NOMX/int_rom.vhd”。Entity int_rom 的架构行为是最新的。在库工作中编译 vhdl 文件“C:/Users/Farmer/Desktop/CG3207 BACKUP/12 Nov 2012/ISA NOMX/int_ram.vhd”。Entity internal_ram 的架构 syn 是最新的。编译 vhdl 文件“C:
==================================================== ======================= * 设计层次分析 * ====================== ==================================================== = 分析库中实体的层次结构(架构)。
分析库中实体的层次结构(架构)。
分析库中实体的层次结构(架构)。
分析库中实体的层次结构(架构)。
分析库中实体的层次结构(架构)。
使用泛型分析库(架构)中实体的层次结构。宽度 = 16
分析库中实体的层次结构(架构)。
分析库中实体的层次结构(架构)。
分析库中实体的层次结构(架构)。
分析库中实体的层次结构(架构)。
分析库中实体的层次结构(架构)。
分析库中实体的层次结构(架构)。
分析库中实体的层次结构(架构)。
==================================================== ======================= * HDL 分析 * ======================= ====================================================分析库中的实体(架构)。分析的实体。单位生成。
分析库中的实体(架构)。INFO:Xst:2679 - 单元中的寄存器在电路操作期间具有恒定值 0。寄存器被逻辑取代。INFO:Xst:2679 - 单元中的寄存器在电路操作期间具有恒定值 0。寄存器被逻辑取代。INFO:Xst:2679 - 单元中的寄存器在电路操作期间具有恒定值 0000000000000000。寄存器被逻辑取代。INFO:Xst:2679 - 单元中的寄存器在电路操作期间具有恒定值 0000000000000000。寄存器被逻辑取代。INFO:Xst:2679 - 单元中的寄存器在电路操作期间具有恒定值 0000000000000000。寄存器被逻辑取代。INFO:Xst:2679 - 单元中的寄存器在电路操作期间具有恒定值 1111111111111111。寄存器被逻辑取代。INFO:Xst:2679 - 单元中的寄存器在电路操作期间具有恒定值 1111111111111111。寄存器被逻辑取代。INFO:Xst:2679 - 单元中的寄存器在电路操作期间具有恒定值 0。寄存器被逻辑取代。INFO:Xst:2679 - 单元中的寄存器在电路操作期间具有恒定值 0。寄存器被逻辑取代。分析的实体。单位生成。寄存器被逻辑取代。分析的实体。单位生成。寄存器被逻辑取代。分析的实体。单位生成。
分析库中的实体(架构)。INFO:Xst:1561 -“C:/Users/Farmer/Desktop/CG3207 BACKUP/12 Nov 2012/ISA NOMX/fastalu.vhd”第 261 行:Mux 已完成:默认情况被丢弃 WARNING:Xst:819 -“C :/Users/Farmer/Desktop/CG3207 BACKUP/12 Nov 2012/ISA NOMX/fastalu.vhd”第 245 行:过程灵敏度列表中缺少一个或多个信号。为了启用 FPGA/CPLD 硬件的合成,XST 将假定所有必要的信号都存在于灵敏度列表中。请注意,综合结果可能与初始设计规范不同。缺失的信号是: , , , , 分析的实体。单位生成。
分析库中的实体(架构)。分析的实体。单位生成。
分析库中的实体(架构)。分析的实体。单位生成。
分析库中的实体(架构)。分析的实体。单位生成。
分析库中的实体(架构)。WARNING:Xst:819 - “C:/Users/Farmer/Desktop/CG3207 BACKUP/12 Nov 2012/ISA NOMX/regfile.vhd”第 89 行:过程敏感度列表中缺少一个或多个信号。为了启用 FPGA/CPLD 硬件的合成,XST 将假定所有必要的信号都存在于灵敏度列表中。请注意,综合结果可能与初始设计规范不同。缺失的信号是: , , , , , , , , , , , , , , , , ,
分析库中的实体(架构)。INFO:Xst:2679 - 寄存器 > in unit 在电路操作期间具有恒定值 0。寄存器被逻辑取代。分析的实体。单位生成。
分析库中的实体(架构)。分析的实体。单位生成。
==================================================== ========================
* 高密度脂蛋白合成 *
正在执行双向端口解析...
合成单元。相关源文件是“C:/Users/Farmer/Desktop/CG3207 BACKUP/12 Nov 2012/ISA NOMX/sequencer2.vhd”。警告:Xst:647 - 从不使用输入。如果该端口属于顶级块或属于子块并且该子块的层次结构被保留,则该端口将被保留并保持未连接。警告:Xst:647 - 从不使用输入。如果该端口属于顶级块或属于子块并且该子块的层次结构被保留,则该端口将被保留并保持未连接。警告:Xst:647 - 从不使用输入。如果该端口属于顶级块或属于子块并且该子块的层次结构被保留,则该端口将被保留并保持未连接状态。警告:Xst:647 - 从不使用输入。如果该端口属于顶级块或属于子块并且该子块的层次结构被保留,则该端口将被保留并保持未连接状态。警告:Xst:647 - 从不使用输入。如果该端口属于顶级块或属于子块并且该子块的层次结构被保留,则该端口将被保留并保持未连接。警告:Xst:646 - 已分配信号但从未使用过。这个未连接的信号将在优化过程中被修剪。INFO:Xst:1799 - 在 FSM 中从未达到状态 e19。INFO:Xst:1799 - 在 FSM 中从未达到状态 e20。INFO:Xst:1799 - 在 FSM 中从未达到状态 e21。INFO:Xst:1799 - 在 FSM 中从未达到状态 e22。INFO:Xst:1799 - 在 FSM 中从未达到状态 e23。INFO:Xst:1799 - 在 FSM 中从未达到状态 e24。-------------------------------------------------- --------------------- | 国家 | 14 | | 过渡 | 37 | | 输入 | 23 | | 输出 | 9 | | 时钟 | 时钟(上升沿) | | 重置 | 第一(正)| | 重置类型 | 异步 | | 重置状态 | e1 | | 通电状态 | e1 | | 编码 | 自动 | | 实施 | 查找表 | -------------------------------------------------- --------------------- 找到信号的有限状态机。-------------------------------------------------- --------------------- | 国家 | 6 | | 过渡 | 1068 | | 输入 | 177 | | 输出 | 6 | | 时钟 | 时钟(上升沿) | | 重置 | 第一(正)| | 重置类型 | 异步 | | 重置状态 | e7 | | 通电状态 | e7 | | 编码 | 自动 | | 实施 | 查找表 | -------------------------------------------------- --------------------- 找到信号的有限状态机。-------------------------------------------------- --------------------- | 国家 | 6 | | 过渡 | 33886 | | 输入 | 361 | | 输出 | 6 | | 时钟 | 时钟(上升沿) | | 重置 | 第一(正)| | 重置类型 | 异步 | | 重置状态 | e13 | | 通电状态 | e13 | | 编码 | 自动 | | 实施 | 查找表 | -------------------------------------------------- --------------------- 找到信号的 8 位寄存器。找到信号的 1 位寄存器。找到信号的 4 位寄存器。找到信号的 1 位寄存器。找到信号的 8 位寄存器。找到信号的 1 位寄存器。找到信号的 16 位寄存器。找到信号的 1 位寄存器。找到信号的 1 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 1 位寄存器。找到信号的 1 位寄存器。找到信号的 8 位寄存器。找到信号的 1 位寄存器。找到信号的 4 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 16 位寄存器。发现 8 位比较器不等于在第 1190 行创建的信号。摘要:推断出 3 个有限状态机。推断出 184 个 D 型触发器。推断出 1 个比较器。单位合成。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 16 位寄存器。发现 8 位比较器不等于在第 1190 行创建的信号。摘要:推断出 3 个有限状态机。推断出 184 个 D 型触发器。推断出 1 个比较器。单位合成。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 16 位寄存器。发现 8 位比较器不等于在第 1190 行创建的信号。摘要:推断出 3 个有限状态机。推断出 184 个 D 型触发器。推断出 1 个比较器。单位合成。发现 8 位比较器不等于在第 1190 行创建的信号。摘要:推断出 3 个有限状态机。推断出 184 个 D 型触发器。推断出 1 个比较器。单位合成。发现 8 位比较器不等于在第 1190 行创建的信号。摘要:推断出 3 个有限状态机。推断出 184 个 D 型触发器。推断出 1 个比较器。单位合成。
合成单元。相关源文件是“C:/Users/Farmer/Desktop/CG3207 BACKUP/12 Nov 2012/ISA NOMX/multiplier.vhd”。找到信号的 32 位寄存器。找到信号的 16x16 位乘法器。摘要:推断出 32 个 D 型触发器。推断出 1 个乘数。单位合成。
合成单元。相关源文件是“C:/Users/Farmer/Desktop/CG3207 BACKUP/12 Nov 2012/ISA NOMX/int_rom.vhd”。警告:Xst:647 - 从不使用输入。如果该端口属于顶级块或属于子块并且该子块的层次结构被保留,则该端口将被保留并保持未连接。WARNING:Xst:647 - Input > 从未使用过。如果该端口属于顶级块或属于子块并且该子块的层次结构被保留,则该端口将被保留并保持未连接。为第 175 行创建的信号找到 4096x8 位 ROM。摘要:推断 1 个 ROM。单位合成。
合成单元。相关源文件是“C:/Users/Farmer/Desktop/CG3207 BACKUP/12 Nov 2012/ISA NOMX/int_ram.vhd”。WARNING:Xst:736 - 为第 38 行创建的信号找到 1 位锁存器。锁存器可能由不完整的 case 或 if 语句生成。我们不建议在 FPGA/CPLD 设计中使用锁存器,因为它们可能会导致时序问题。WARNING:Xst:736 - 为在第 37 行创建的信号找到 8 位锁存器。锁存器可能由不完整的 case 或 if 语句生成。我们不建议在 FPGA/CPLD 设计中使用锁存器,因为它们可能会导致时序问题。WARNING:Xst:736 - 为第 38 行创建的信号找到 1 位锁存器。锁存器可能由不完整的 case 或 if 语句生成。我们不建议在 FPGA/CPLD 设计中使用锁存器,因为它们可能会导致时序问题。信息:Xst:2371 - HDL ADVISOR - 分别驱动此锁存器的数据和门使能输入的逻辑功能共享通用术语。这种情况可能会导致建立/保持违规,从而导致仿真问题。这种情况可能来自不完整的 case 语句(未涵盖所有选择器值)。如果您打算描述这样的闩锁,您应该仔细检查。WARNING:Xst:736 - 为第 37 行创建的信号找到 1 位锁存器。锁存器可能由不完整的 case 或 if 语句生成。我们不建议在 FPGA/CPLD 设计中使用锁存器,因为它们可能会导致时序问题。INFO:Xst:2371 - HDL ADVISOR - 分别驱动此锁存器的数据和门使能输入的逻辑功能共享通用术语。这种情况可能会导致建立/保持违规,从而导致仿真问题。这种情况可能来自不完整的 case 语句(未涵盖所有选择器值)。如果您打算描述这样的闩锁,您应该仔细检查。找到信号的 1 位三态缓冲区。找到信号的 8 位三态缓冲区。为第 42 行创建的信号找到 8 位 128 对 1 多路复用器。为第 49 行创建的信号找到 8 位 128 对 1 多路复用器。找到信号 > 的 640 位寄存器。找到信号 > 的 256 位寄存器。INFO:Xst:738 - HDL ADVISOR - 1024 触发器被推断为信号。您可能试图以与赛灵思器件上可用的块和分布式 RAM 资源不兼容的方式描述 RAM,或使用不受支持的特定模板。请查看 Xilinx 资源文档和 XST 用户手册以了解编码指南。利用 RAM 资源将提高器件使用率并缩短综合时间。
合成单元。相关源文件是“C:/Users/Farmer/Desktop/CG3207 BACKUP/12 Nov 2012/ISA NOMX/csadder.vhd”。警告:Xst:1780 - 从未使用或分配信号。这个未连接的信号将在优化过程中被修剪。找到信号 > 的 1 位 xor3。为信号找到 2 位 xor2。为第 60 行创建的信号找到 1 位 xor2。为信号找到 3 位 xor2。为第 82 行创建的信号找到 1 位 xor2。为信号找到 4 位 xor2。为第 110 行创建的信号找到 1 位 xor2。为第 118 行创建的信号找到 1 位 xor2。为第 124 行创建的信号找到 1 位 xor2。为信号找到 6 位 xor2。为第 144 行创建的信号找到 1 位 xor2。为第 150 行创建的信号找到 1 位 xor2。为第 156 行创建的信号找到 1 位 xor2。为信号 > 找到 1 位 xor2。找到信号 > 的 2 位 xor2。为第 89 行创建的信号找到 1 位 xor2。为信号 > 找到 3 位 xor2。为信号 > 找到 5 位 xor2。为第 163 行创建的信号找到 1 位 xor2。为第 170 行创建的信号找到 1 位 xor2。摘要:推断出 1 个 Xor(s)。单位合成。
合成单元。相关源文件是“C:/Users/Farmer/Desktop/CG3207 BACKUP/12 Nov 2012/ISA NOMX/csadde2.vhd”。警告:Xst:1780 - 从未使用或分配信号。这个未连接的信号将在优化过程中被修剪。找到信号 > 的 1 位 xor2。找到信号 > 的 1 位 xor2。找到信号 > 的 2 位 xor2。找到信号 > 的 3 位 xor2。为信号 > 找到 5 位 xor2。单位合成。
合成单元。相关源文件是“C:/Users/Farmer/Desktop/CG3207 BACKUP/12 Nov 2012/ISA NOMX/ext_interrupt.vhd”。WARNING:Xst:646 - Signal > 已分配但从未使用过。这个未连接的信号将在优化过程中被修剪。WARNING:Xst:646 - Signal > 已分配但从未使用过。这个未连接的信号将在优化过程中被修剪。WARNING:Xst:646 - Signal > 已分配但从未使用过。这个未连接的信号将在优化过程中被修剪。找到信号的 8 位寄存器。找到信号 > 的 4 位寄存器。找到信号 > 的 2 位寄存器。找到信号 > 的 2 位寄存器。找到信号的 1 位寄存器。找到信号的 1 位寄存器。摘要:推断出 10 个 D 型触发器。
合成单元。相关源文件是“C:/Users/Farmer/Desktop/CG3207 BACKUP/12 Nov 2012/ISA NOMX/fastalu.vhd”。找到信号的 1 位 4 对 1 多路复用器。找到信号的 1 位 4 对 1 多路复用器。找到信号的 1 位 4 对 1 多路复用器。为第 261 行创建的信号找到 1 位 xor2。为第 258 行创建的信号找到 1 位 xor2。为第 255 行创建的信号找到 1 位 xor2。为第 252 行创建的信号找到 1 位 xor2。找到 8 -bit xor2 用于在第 210 行创建的信号。找到 8 位 xor2 用于在第 207 行创建的信号。摘要:推断出 3 个多路复用器。单位合成。
合成单元。相关源文件是“C:/Users/Farmer/Desktop/CG3207 BACKUP/12 Nov 2012/ISA NOMX/fastal2.vhd”。警告:Xst:646 - 已分配信号但从未使用过。这个未连接的信号将在优化过程中被修剪。警告:Xst:646 - 已分配信号但从未使用过。这个未连接的信号将在优化过程中被修剪。警告:Xst:646 - 已分配信号但从未使用过。这个未连接的信号将在优化过程中被修剪。警告:Xst:646 - 已分配信号但从未使用过。这个未连接的信号将在优化过程中被修剪。警告:Xst:646 - 已分配信号但从未使用过。这个未连接的信号将在优化过程中被修剪。警告:Xst:646 - 已分配信号但从未使用过。这个未连接的信号将在优化过程中被修剪。单位合成。
ADVISOR - 分别驱动该锁存器的数据和栅极使能输入的逻辑功能共享通用项。这种情况可能会导致建立/保持违规,从而导致仿真问题。这种情况可能来自不完整的 case 语句(未涵盖所有选择器值)。如果您打算描述这样的闩锁,您应该仔细检查。找到信号的 8 位寄存器。找到信号的 1 位三态缓冲区。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位三态缓冲区。找到信号 > 的 4 位寄存器。找到信号 > 的 2 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号 > 的 2 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。为第 169 行创建的信号找到 1 位 xor8。为信号找到 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。摘要:推断出 168 个 D 型触发器。推断出 1 个异或。推断出 9 个三态。单位合成。找到信号的 8 位寄存器。找到信号 > 的 2 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。为第 169 行创建的信号找到 1 位 xor8。为信号找到 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。摘要:推断出 168 个 D 型触发器。推断出 1 个异或。推断出 9 个三态。单位合成。找到信号的 8 位寄存器。找到信号 > 的 2 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。为第 169 行创建的信号找到 1 位 xor8。为信号找到 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。摘要:推断出 168 个 D 型触发器。推断出 1 个异或。推断出 9 个三态。单位合成。为第 169 行创建的信号找到 1 位 xor8。为信号找到 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。摘要:推断出 168 个 D 型触发器。推断出 1 个异或。推断出 9 个三态。单位合成。为第 169 行创建的信号找到 1 位 xor8。为信号找到 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。找到信号的 8 位寄存器。摘要:推断出 168 个 D 型触发器。推断出 1 个异或。推断出 9 个三态。单位合成。找到信号的 8 位寄存器。找到信号的 8 位寄存器。摘要:推断出 168 个 D 型触发器。推断出 1 个异或。推断出 9 个三态。单位合成。找到信号的 8 位寄存器。找到信号的 8 位寄存器。摘要:推断出 168 个 D 型触发器。推断出 1 个异或。推断出 9 个三态。单位合成。
合成单元。相关源文件是“C:/Users/Farmer/Desktop/CG3207 BACKUP/12 Nov 2012/ISA NOMX/8051_top_fpga.vhd”。警告:Xst:647 - 从不使用输入。如果该端口属于顶级块或属于子块并且该子块的层次结构被保留,则该端口将被保留并保持未连接。警告:Xst:646 - 已分配信号但从未使用过。这个未连接的信号将在优化过程中被修剪。警告:Xst:1780 - 从未使用或分配信号。这个未连接的信号将在优化过程中被修剪。警告:Xst:1780 - 从未使用或分配信号。这个未连接的信号将在优化过程中被修剪。单位合成。
==================================================== ======================= HDL综合报告
宏观统计
ROM:1 4096x8 位 ROM:1
乘法器:1 16x16 位乘法器:1
加法器/减法器:1 个 16 位减法器:1
计数器:1 4 位递减计数器:1
寄存器:453 个 1 位寄存器:306 个 16 位寄存器
: 6 个 3 位寄存器 : 1 个 32 位寄存器 : 1 个 4 位寄存器
: 2 个 8 位寄存器 : 137锁存器:8 个 1 位锁存器:6 个 8 位锁存器
: 2
比较器:5 个 16 位比较器 相等:1 个 16 位比较器
不等于:2 4 位比较器更大
:1 8 位比较器不等于:1多路复用器:5 个 1 位 4 对 1 多路复用器:3 个 8 位 128 对 1
多路复用器:2
三态:4 个 1 位三态缓冲区:2 个 8 位三态
缓冲区:2
异或:57 1 位异或 2:53 1 位异或 3
: 1 1 位 xor8 : 1 8 位 xor2 : 2
==================================================== ========================
==================================================== ========================
* 高级 HDL 综合 *
分析 FSM 以获得最佳编码。