电气工程

电子和电气工程专业人士,学生和爱好者的问答

2
如何在VHDL中指定“无关”信号?
在逻辑设计课程中,我们都了解到可以最小化逻辑功能,例如通过使用卡诺图或Quine-McCluskey算法。我们还了解到“ Do n't Care”值增加了最小化的可能性。 例如拿一个注册文件。该write_address和write_data信号时,并不真正重要write_enable信号'0'。因此,应为它们分配“无关”值,以允许在驱动这些信号的逻辑中进行更多优化(即不在寄存器文件本身中)。 为了使综合工具有更多空间进行可能的优化,在VHDL中指定此类“无关”值的正确方法是什么? 到目前为止,我发现以下可能合适的方法。但是我不确定每个方法的优缺点是什么: 根本不分配信号。这似乎可以工作。但是我发现,当您想定义某种“不做任何操作的常量”时,它是行不通的record,因为需要完全指定记录常量(至少Modelsim告诉我了)。 所述std_logic_1164包定义的值'-' -- Don't care对std_ulogic。看起来这是一个明确的“无关”的语义正确选择,但我从未见过在任何地方使用它(除非在不相关的VHDL-2008 case?构造中)。 Modelsim使用该值'X'显示未定义的信号。但是我不确定综合工具是否将显式'X'分配理解为“无关紧要”。 这是一个过于简化的代码段,用于澄清,其中我已使用初始化了无关信号'-'。 正如你所看到的,信号control.reg_write_address可以有3个不同的值:"----",instruction(11 downto 8);和instruction(3 downto 0);。现在,如果'-'将其解释为“无关紧要”,我希望可以将其合成为2输入多路复用器。如果我使用(others => '0')而不是初始化信号'-',则该工具将不得不生成3输入多路复用器。 library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; package mytypes is type control_signals_t is record write_enable : std_logic; write_address : std_ulogic_vector(3 downto 0); read_address : std_ulogic_vector(3 downto 0); end record; …


4
音频放大器使用的最佳晶体管
这个学期,我们将设计一个音频放大器。到目前为止,在我们的演讲中,我们仍在BJT上,根据我所听到的内容,与BJT上的详细内容不同,将仅部分讨论FET。无论如何,我想尽早提出一个想法,以便我可以计划要使用哪种晶体管以获得最佳音频放大效果。我读过一些文章,其他晶体管(BJT / FET)的性能如何更好,但是其他论坛则指出,性能不取决于组件,而是取决于晶体管的正确偏置方式和电路的正确设计方式。 在设计音频放大器时,晶体管的四个子类型中哪一个最有效?(NPN / PNP / JFET / MOSFET) 顺便说一下,我教授的要求就是这样:打动我。目前,我的小组尚未决定具体的电路(功率,阻抗等)。


2
是否可以将引线连接到表面安装组件?
我订购了运算放大器进行实验。我订购时知道这是一个表面安装组件。我以为我可以以某种方式将引线连接到它,因此可以在面包板上使用它。使用简单的烙铁-有什么方法可以将引线连接到此组件上,以便在面包板上使用? 我知道将这些组件表面安装时,只能承受一到两秒钟的高温。我当时想在导线的末端上放一小滴焊锡-使用烙铁使焊锡融化-然后触摸导线,并将焊锡珠压到组件上的一个插针上(这样烙铁就不会碰到该组件直接)。

7
二进制补码的优点是什么?
在某些ADC / DAC器件中,它们是以2的补码形式输出/输入数据的选项。 用二进制补码形式表示数字数据有什么优势?当您可以简单地使用直接的二进制代码并节省转换时间时?
11 binary 


4
究竟是什么“磨损”并受热损坏?
众所周知,热量对电子产品有害。持续的高温会降低计算机部件的预期寿命,即使它们本身并未过热。 例如,如果灰尘使PC中的组件绝缘,则将其从正常气流中“切断”。在更高的温度下经历更高的“磨损”是什么?我已经看到,由于压力升高和导致泄漏,液体电容器的工作温度越高,它们失效的速度就越快。那是对的吗?但是可以肯定,还有很多其他事情吗?你能说一些吗?

4
STM32上的字节序问题
我正在使用arm gcc(CooCox)对STM32F4discovery进行编程,而我一直在努力解决字节序问题 我正在通过SPI使用24位ADC进行采样。由于要传入三个字节,因此MSB首先具有将它们加载到联合中的想法(无论如何,我都希望如此!),以便于使用。 typedef union { int32_t spilong; uint8_t spibytes [4]; uint16_t spihalfwords [2];} spidata; spidata analogin0; 我使用spi读取将数据加载到Analogin0.spibytes [0]-[2]中,其中[0]作为MSB,然后通过USART以8比特的高波特率将它们吐出。没问题。 当我尝试将数据传递到12位DAC时,问题就开始了。此SPI DAC需要16位字,其中包括从MSB开始的4位前缀,然后是12位数据。 最初的尝试是将ADC给我的二进制补码转换为二进制偏移量,方法是对0x8000的Analogin0.spihalfwords [0]进行异或运算,将结果移至最低12位,然后在算术上加上前缀。 令人难以置信的令人沮丧,直到我注意到对于analogin0.spibytes [0] = 0xFF和analogin0.spibytes [1] = 0xB5,analogin0.halfwords [0]等于0xB5FF而不是0xFFB5! 注意到这一点后,我停止使用算术运算和半字,并停留在按位逻辑和字节上 uint16_t temp=0; . . . // work on top 16 bits temp= (uint16_t)(analogin0.spibytes[0])<<8|(uint16_t)(analogin0.spibytes[1]); temp=temp^0x8000; // convert twos complement …
11 c  stm32  cortex-m  gcc 

4
Altium说我的标签是浮动的
一段时间以来一直在使用Altium和多表项目。我的最新项目涉及许多信号,因此我尝试使用大量标签,端口和总线使事情保持整洁。 所以我有一条总线,用于使能信号从微控制器表传到需要启用的东西。对于故障条件,电流感测等也是如此。 我喜欢4个相同的总线。现在,Altium一直说端口侧的所有NET标签都是浮动的。我对此无能为力:我尝试了所有我能想到的,但仍然有大约20个浮网。在下一张图片中,您可以看到我建立的多表连接:重复一个传感器表,所有8个传感器钩都挂在总线上,并且总线通向微控制器。 所以我真的没有任何浮动,但是Altium仍然这样看。这是为什么?

3
如何确定使用最多资源和面积的FPGA设计区域?
我正在做一个大型FPGA设计,并且我非常接近当前使用的FPGA的资源限制,即CSG225封装中的Xilinx LX16。 该设计几乎也已经完成,但是目前它已不再适合FPGA。我可以关闭零件使其适合,但是我需要减少资源使用量才能完成设计并使其符合时序和尺寸要求。 我想知道我们的报告中是否有任何工具可以帮助我确定设计中哪些部分消耗的资源最多。我的设计未分区,而是划分为大约十二个或更多的VHDL模块。 Xilinx时序报告非常棒,但是现在我需要知道在节省空间方面我能得到最好的回报。 我也很难告诉我我将要用尽哪种类型的资源,或对那些资源有什么影响。 另一个烦人的是,随着设计的扩大,用于满足时序要求的组件开始出现故障,因为它们的放置不再理想。 当前,我使用“放置后和路线静态”时序报告,并使用SmartXplorer。我正在使用设计策略来优化时序。 在关闭我的设计的一部分以使其适合之后,下面是一些结果: 切片寄存器利用率:42%切片LUT利用率:96%完全使用的LUT-FF对的数量:38%这是否意味着我对寄存器比较轻,但对门的使用却很繁重? 是否有工具可帮助开发人员针对区域进行优化,或者至少使他们对自己的代码有更深入的了解? 更新: 查看了模块级别的利用率后,我发现我在整个地方都有小的胶水异步fifo,大约占所有LUT的30%。我将它们用作高速总线的跨时钟域胶水。我应该能够消除这些问题,因为时钟紧密相关。(120 MHz输入,通过DCM产生100 MHz和200 MHz)

3
IEEE 802.11定义的RSSI,噪声和SNR的单位是什么?
我是计算机科学专业的毕业生,但令我感到羞耻的是,对电气工程尤其是天线理论的知识非常有限。 据我了解,RSSI确定测量者“听到”被测量对象的方式的质量。噪声决定了影响测量仪的环境条件。SNR就是RSSI比噪声好多少。这个理论(假设我掌握了基本知识)仅提出了一个问题: 单个固定测量器甚至如何确定RSSI和噪声? 现在一些练习。假设测量器是我的Macbook Air运行的内置无线诊断工具。被测物体是我的WiFi路由器。RSSI的观测值为-60 dBm,噪声的观测值为-92 dBm。因此,SNR为32 dB。我完全无法理解的是: 为什么两个值都是负值并以dBm为单位测量? 据我了解,-60 dBm表示10 -9 W,而-92 dBm表示10 -12W。但是,谁会散发这种功率呢?也许那个理论将噪声表示为另一个“天线”?但是,为什么它的价值那么小?还是我想念一些非常关键的观点?感谢您对这些内容的直观解释。
11 noise  wifi  snr 

1
如何使项目框的整个顶部均匀发光?
我有一个透明的项目框,上面装有LED,包裹着面包板。我想使用此LED来使盒子的整个顶部均匀发光。有人有什么想法吗?我尝试使用约4毫米厚的软塑料,并在其中途钻了整整一个LED。即使使用了砂纸,您仍然可以清楚地看到LED的位置,并且照明最多是盒子的四分之一。盒子大约5x7厘米。
11 led  enclosure 

1
DS1307 RTC可以在CR2032币形电池上运行多长时间?
我有一个基于atmega328和DS1307实时时钟的自制时钟。关断时,DS1307与往常一样由3V CR2032纽扣电池供电。 如果我大部分时间都打不开时钟,那么纽扣电池应该持续多长时间? 我知道用于计算电池放电时间的公式,但可能无法正确应用它们(我认为)。根据我的计算,根据电池的210mAh容量和数据表中的500nA电流,它应该可持续大约50年。但是电流消耗是如此之低,以至于必须有其他问题来决定电池的放电速率。 那么,有没有人比我有更好的数字?有什么实际经验吗?十年前有人的电池没电了吗?
11 rtc  coin-cell 

3
如何冷却DIP设备?
我的应用中有AD811,它工作正常,但由于它以大约14.5 mA的+/- 15 V电源工作,因此功率约为瓦特的三分之一。触摸时会很热。我在此网站上检查这是否是故障,并联系了ADI公司的技术支持,并且我确信这是该设备的正常行为。 现在,我正在考虑该设备的冷却方法,但是由于此DIP封装没有散热器的安装位置,因此我想到了一些类似的选择(关于该设备在高达50MHz的高频下工作): 使用风扇:风扇的马达可能会产生一些噪音 将平坦的散热器放在设备顶部,将其粘贴在硅膏上并接地 使用热电冷却剂元件。 我从未听说过DIP封装的冷却方法,尤其是在高频情况下,我想知道是否有任何标准方法。
11 heatsink  dip  cooling 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.