今天给大侠带来在FPAG技术交流群里平时讨论的问题答疑合集(三),以后还会多推出本系列,话不多说,上货。
FPGA技术交流群目前已有十多个群,QQ和微信均覆盖,有需要的大侠可以进群,一起交流学习,共同进步。
欢迎加入FPGA技术微信交流群14群!
交流问题(一)
Q:在初学电子信息工程,进行自学系统学习一个逐渐过程中,在什么阶段需要学什么呀?
在零基础的情况下,先学电路然后在电路分析后再学数电、模电?还是说电路可以不用学直接学电路分析,还是怎么说?
A:推荐学习顺序,仅供参考:
一、基础阶段
1. 电路基础
• 这是电子信息工程的入门知识,了解电路的基本概念,如电压、电流、电阻等。学习欧姆定律、基尔霍夫定律等基本电路定律,掌握电路的分析方法,包括串联、并联电路的分析。
• 此阶段可以通过一些基础的电路教材、在线课程进行学习,同时结合简单的电路实验,如使用面包板搭建简单的电路,加深对电路原理的理解。
二、电路分析阶段
1. 深入学习电路分析方法
• 在掌握电路基础后,进一步学习更复杂的电路分析方法,如节点电压法、回路电流法等。了解交流电路的分析,包括阻抗、相位等概念。
• 可以通过相关的电路分析教材和练习题来巩固知识,同时使用电路仿真软件(如 Multisim)进行电路模拟和分析,帮助理解抽象的概念。
三、数字电路阶段
1. 数字逻辑基础
• 学习数字电路的基本概念,如二进制数、逻辑门(与门、或门、非门等)、布尔代数等。了解数字信号的特点和数字电路的工作原理。
• 通过数字电路实验平台,进行简单的数字电路实验,如逻辑门电路的搭建和测试,掌握数字电路的实际操作。
2. 组合逻辑电路和时序逻辑电路
• 深入学习组合逻辑电路(如加法器、编码器、译码器等)和时序逻辑电路(如触发器、计数器、寄存器等)的设计和分析方法。
• 进行一些数字电路设计项目,如数字时钟、计数器等的设计和实现,提高实际设计能力。
四、模拟电路阶段
1. 模拟电路基础
• 学习模拟电路的基本概念,如放大器、滤波器、反馈等。了解半导体器件(二极管、三极管、场效应管等)的工作原理和特性。
• 通过模拟电路实验,如放大器的搭建和测试,了解模拟电路的实际性能和调试方法。
2. 复杂模拟电路设计
• 深入学习模拟电路的设计方法,包括放大器的设计、滤波器的设计、电源电路的设计等。掌握模拟电路的仿真和优化技术。
• 进行一些模拟电路设计项目,如音频放大器、电源适配器等的设计和实现,提高实际设计能力。
不建议跳过电路基础直接学习电路分析。电路基础为后续的学习提供了必要的概念和基础知识,直接学习电路分析可能会感到困难和抽象。每个阶段的学习都需要扎实的掌握,通过理论学习、实验实践和项目设计相结合的方式,逐步提高自己的综合能力。
交流问题(二)
Q:生成的mcs文件和bit文件的效果不一样,是不是因为在xdc文件中没有约束好?
请教一下,我生成的mcs文件和bit文件的效果不一样,mcs文件固化到flash中,以太网ping不通,bit文件能ping通。是不是因为在xdc文件中没有约束好?在xdc文件中,只约束了这个。
A:生成的 mcs 文件和 bit 文件效果不一样,有可能是因为在 xdc 文件中没有约束好,但也可能有其他原因。
一、关于 xdc 文件约束的可能性
如果在 xdc 文件中约束不完整或不准确,可能会导致某些功能在不同文件格式下表现不一致。例如,对于以太网通信相关的引脚约束、时钟约束等如果没有正确设置,可能会影响到以太网的连通性。
然而,仅仅因为只约束了特定部分并不一定能确定就是约束问题导致的差异。
二、其他可能的原因
1. 固化过程问题:
• mcs 文件的固化过程可能出现错误,导致数据没有正确写入 flash 或者在固化后出现了一些未知的错误状态。
• 检查固化工具的设置、操作步骤是否正确,以及固化过程中是否有报错信息。
2. 硬件差异:
• 不同的加载方式(bit 文件通过下载器直接加载,mcs 文件固化到 flash)可能会因为硬件的一些特性差异而导致不同的表现。
• 检查硬件电路是否存在潜在的问题,例如 flash 的连接是否稳定、电源供应是否正常等。
3. 软件配置差异:
• 可能在生成 mcs 文件和 bit 文件时,使用了不同的软件配置选项,导致最终的效果不同。
• 检查生成这两种文件的工具设置、编译选项等是否一致。
虽然 xdc 文件约束问题可能导致 mcs 文件和 bit 文件效果不一样,但也需要综合考虑其他可能的因素,通过逐步排查来确定具体原因。
交流问题(三)
Q:请教一个问题,直接调用一个双端口192KB的SRAM,和调用12个大小为16KB的SRAM,占用资源是一样的吗?
A:直接调用一个双端口 192KB 的 SRAM 和调用 12 个大小为 16KB 的 SRAM 占用的资源不完全一样。
一方面,如果单纯从存储容量角度看,最终可提供的存储总量是相同的,都是 192KB。但是,调用一个大的双端口 SRAM 可能在控制逻辑上相对简单,占用的控制逻辑资源可能会少一些。另一方面,使用 12 个小的 SRAM 需要更多的地址译码逻辑来分别选中不同的小 SRAM,并且可能在布局布线时需要更多的空间,占用更多的芯片面积资源。同时,多个小 SRAM 的功耗可能会与单个大 SRAM 有所不同,具体取决于其工作模式和设计特点。综上所述两者占用的资源在不同方面各有优劣,不能简单地认为是完全一样的。
交流问题(四)
Q:请问slicem中lut是6输入的,但实现移位寄存器深度是32,不是64,原因是什么呢?
A:在 Slicem 中,LUT输入为 6 但移位寄存器深度是 32 而非 64 ,可能有以下原因:
1. 资源限制:芯片的物理资源有限,设计上可能对移位寄存器的深度进行了权衡和优化,以适应整体的资源分配。
2. 功能需求:在特定的应用场景中,32 的深度已经能够满足功能要求,无需扩展到 64。
3. 性能和功耗平衡:较深的移位寄存器可能会增加功耗和延迟,为了在性能和功耗之间达到平衡,选择了 32 的深度。
今天先整理四个问题答疑,后续还会持续推出本系列。
往期精选
FPGA技术江湖广发江湖帖
无广告纯净模式,给技术交流一片净土,从初学小白到行业精英业界大佬等,从军工领域到民用企业等,从通信、图像处理到人工智能等各个方向应有尽有,QQ微信双选,FPGA技术江湖打造最纯净最专业的技术交流学习平台。
FPGA技术江湖微信交流群
加群主微信,备注职业+方向+名字进群
FPGA技术江湖QQ交流群
备注地区+职业+方向+名字进群