Nand2tetris加载芯片提示未在工作及内置文件夹找到故障排查
Nand2tetris 芯片加载报错「在工作目录和内置文件夹中找不到芯片」排查方向
这个报错和你贴的Mux HDL代码逻辑没有关系,你写的这版基于Nand实现的Mux功能是正确的。报错本质是模拟器没法在指定路径找到需要加载的芯片(包括当前芯片和它依赖的所有底层芯片),常见原因有这几个:
- 文件名不符合规则
模拟器对HDL文件名要求非常严格:文件名必须和文件内声明的芯片名完全一致,大小写敏感,后缀必须是.hdl。比如CHIP Mux对应的文件必须叫Mux.hdl,Mux4way16对应Mux4way16.hdl,写成mux.hdl、Mux_new.hdl、Mux.hdl.txt都会被判定为找不到芯片。 - 依赖文件缺失或放错位置
模拟器只会在你设置的当前工作目录、内置芯片库两个位置找文件,不会递归扫描子文件夹,也不会读取其他路径的文件。你加载Mux4way16、Mux8way16时报错,大概率是依赖链上的文件没凑齐:Mux4way16依赖Mux、Mux16,Mux8way16依赖Mux、Mux16、Mux4way16,只要其中任意一个文件不在工作目录里,哪怕你当前要加载的Mux4way16文件本身没问题,也会报找不到芯片的错。 - 工作目录设置错误
打开模拟器后要先确认你指定的工作目录就是你存放所有HDL文件的目标文件夹,要是误设成了上层目录、其他项目的目录,模拟器自然扫描不到你写的文件。 - 自定义文件覆盖内置芯片出错
Nand、Not、基础Mux这类芯片属于模拟器内置库,不需要自行实现,如果你不小心在工作目录放了和内置芯片同名的HDL文件,而且文件内容存在错误,模拟器会优先读取你放的自定义文件,识别失败就会抛出这个错,把这类和内置芯片重名的自定义文件删掉即可。
内容的提问来源于stack exchange,提问作者ViggeMcFly
相关产品推荐
相关产品推荐

