-1

当仅在 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 以获得最佳编码。

4

1 回答 1

2

几点...注意合成工具告诉您的内容:无论是在消息中还是在其他方面。

0)如果你还没有让它在模拟中工作,请在这里停下来,现在就去做。

1)在您之前的问题 “如何从综合报告中推断”中 ,您的大案例陈述已经很明显给您带来了麻烦,我建议了一种开始简化它的方法。

2)如果对于最初只需要 20000(?)个晶体管的 CPU 来说,合成需要这么长时间,你需要做一些不同的事情。

3)在您提供的巨大且大多数不必要的列表中,有关于闩锁和不完整案例覆盖的警告。找到并修复这些:它们当然不会帮助合成器收敛到一个好的解决方案!

4)查看每个输出或相关输出组对每个操作码或操作码组做了什么;你会发现巨大的简化。将 n 个单独的小型状态机组合成一个巨大的 SM 不仅会给您带来 n**2 的问题,而且几乎不可能解开。例如,可以将锁存器问题隔离到更小的代码块并在那里修复;在这个大 SM 中追踪它会……很困难。

“一个过程”模型在许多情况下都是很好的风格;但它可能会走得太远。

于 2012-11-15T09:37:03.033 回答