Questions tagged «programmable-logic»

可编程数字逻辑设备包括FPGA,CPLD和GAL和PAL等较旧的设备。可编程逻辑可以在单个芯片中灵活地实现复杂的数字功能,从胶合逻辑的几个门到整个微处理器或复杂的信号处理系统。

7
有模拟FPGA吗?
据我了解,FPGA是灵活的“数字”电路,可让您设计,构建和重建数字电路。 听起来天真或愚蠢,但我想知道是否有FPGA或其他“灵活”技术也使设计人员可以使用模拟组件,例如放大器,A / D或D / A或收发器,甚至更简单的组件?

5
是什么让我选择Verilog或VHDL而不是CPLD或FPGA上的原理图设计?
我绝对没有可编程逻辑方面的背景知识,在我的项目中主要使用微控制器,但是最近我需要处理视频,并且微控制器的速度太慢了,因此我开始使用CPLD。 仅使用原理图设计,我就能用CPLD取得良好的结果,但是当搜索有关CPLD的信息时,我遇到了许多使用VHDL和Verilog的示例。我很好奇我可能想用其中一种语言定义设备。他们无法做原理图设计做什么?它们主要用于功能吗? 到目前为止,我仅使用CPLD,使用这些语言,FPGA设计是否比CPLD受益更多?

6
离散逻辑设计
我的任务是构建一个简单的警报设备。它只需要测量一些输入,输出就会做出相应的响应(简单地说!)。在我看来,使用几个离散的逻​​辑门就可以完成工作,但是一位同事(与我一起工作)决定我们应该改用可编程逻辑。他的案子获胜,因为首先,他比我高得多,其次,他的主要论点是可编程设备是未来,我们希望制造出可以证明未来的产品。 我的问题是,如果您的设计可以通过几个离散逻辑门轻松实现,那么是否值得再使用离散逻辑进行设计?使用它们比可编程有什么好处吗?还是它会慢慢被可编程逻辑完全淘汰?明确地说,我不希望得到“我相信是这样”或“我个人认为这是……”的答案。我想知道离散设计与可编程设计相比是否有任何实际优势,并且这些天是否值得与他们一起设计消费电子产品?


3
当FPGA上电且未配置时会发生什么?
我试图对如果长时间不编程对FPGA会发生的情况有一个大致的了解。 假设您有一个FPGA,并且长时间未编程(在加电后数分钟至数小时),即FPGA上没有比特流,这对器件不利吗?是否建议始终在加电的FPGA上保留一些比特流?对此有什么普遍看法? 在不同的设备或制造商(Xilinx与Altera与其他产品)上,结果是否有所不同? 附加信息: 我有一个使用Xilinx Virtex-6 FPGA的定制SoC板。我也有一个Xilinx ML605,仅供参考。 自定义板:我打开板电源。我注意到使用XMD(Xilinx微处理器调试器)对其进行编程的时间很短。如果我失去20-30秒的窗口,则必须先关闭电源然后再打开板子再尝试。ML605不会发生这种情况。 当我尝试通过XMD对定制板进行编程时,我得到类似以下内容的信息: Error: Device Reset by JPROGRAM command, failed. INIT_COMPLETE did not go high. 让我知道你的想法。

2
我最便宜的CPLD入门选择有哪些?
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为电气工程堆栈交换的主题。 5年前关闭。 我想闲逛一些CPLD的东西,我看到我有几个选择。我没有特定的应用程序;似乎有很多可能性,其中有些比其他的更容易使用。 主要制造商都有开发板,有些比其他的贵。他们也有通常似乎不便宜的编程器电缆。进行一些挖掘时,我遇到了几种选择,我希望了解每种选择的利弊。 可以说带有X个宏单元的CPLD大致相同吗? 尽管JTAG接口是标准的,但出于对零件进行编程的目的,之前没有标准的JTAG Question。这是供应商软件与程序员对话的问题吗?如果我使用其他实用程序转储二进制文件,事情是否会变得更标准? 一些平台有更便宜的选择。我想知道在USB /并行端口,Linux / Windows方面有什么收获。 假设我对开发板感到满意,那么直接使用其中一个基础部件的过渡有多困难?我的印象是,在主要选项中,只需几个插头引脚和几个二极管/电阻即可。我还远吗? 我将如何在自己的设计中对设备进行编程?如果我有开发板或入门套件,那么我是否必须回去购买昂贵的编程器?为什么开发板价格便宜,而程序员却要花费数百美元?大概开发板具有编程能力。 这里有一些对我来说很突出的选择。我列出价格只是为了区别于数百美元的选择。他们全都在我的球场上。我正在寻找有关易用性,软件问题等方面的隐性成本。 Xilinx是一条流行的道路。我可以做: Digilent C-Mod板,售价17美元:http : //www.digilentinc.com/Products/Detail.cfm? NavPath=2,400,798&Prod=CMOD 和他们的一根编程电缆(并行的价格为12美元,USB的价格为48美元) http://www.digilentinc.com/Products/Catalog.cfm?NavPath=2,395&Cat=5 Digilent电缆需要使用其软件,该软件目前仅在Windows中使用,因此我需要使用48美元的USB路由。 Xilinx的另一种可能性是 Bus Pirate board($ 28) http://www.seeedstudio.com/depot/bus-pirate-v3-assembled-p-609.html?cPath=61_68 和Coolrunner开发板(15美元) http://www.seeedstudio.com/depot/xc9572xl-cpld-development-board-p-799.html?cPath=174 将公司切换到莱迪思: 他们有一个Breakout Board开发套件(29美元) http://www.latticesemi.com/products/developmenthardware/breakoutboardevalkits.cfm 我喜欢在Mouser.com随身携带Lattice零件时使用它们的想法(我在那儿看不到很多Xilinx)。我倾向于从他们那里订购更多。一旦我对他们的东西感到满意,我猜测我可以根据此板的原理图破解编程器电缆。看起来真的很简单。我可以将评估板用作程序员吗?是否公开了JTAG标头? Lattice MachXO2 Pico套件(29美元)看起来也很有价值,尽管它展示的零件更贵。 Altera也有不错的产品。 可以以15美元的价格从EBay获得一名程序员 可以从eBay购买演示板,价格为28美元。 或者,Altera有 入门套件,售价50美元 对于初学者来说,哪一种是更容易上班的更好路线(驾驶员等),具有一些持久力,并且可能提供最大的灵活性?

4
不同复杂度的可编程逻辑IC有什么用?
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 可编程逻辑可以在您的窗口小部件中以多种不同的方式实现,从刻录几个门或使用MUX到具有内置微控制器和IO外设的最新FPGA,更不用说ARM的PrimeCell GPIO或其他更具体的示例。在哪些应用中使用了各种级别的可编程逻辑器件复杂性?尽管这些分组似乎在其定义的极端情况下融合在一起,但我认为这是可以接受的列表: PAL / PLA / GAL:可编程逻辑阵列;似乎在Digikey上被列为“嵌入式-PLD”,涵盖了异步10/8 I / O(ATF16V8C)至50MHz,192个宏单元(CY7C341B),并且大多数都是可重新编程的。 CPLD:复杂的可编程逻辑设备;Digikey列出了它们,它们在7.5ns 10 I / O(ATF750C)至233 MHz中提供了428 I / O“ FPGA密度下的CPLD”(CY39100V484B)。 FPGA:现场可编程门阵列;提供58种I / O(XC2064)至1023种I / O BGA野兽(EP1S80F1508C7N)。 带有硬MCU的FPGA:这是将MCU物理布局在FPGA IC中而不进行仿真的时候。 维基百科报价: FPGA和CPLD之间的区别在于,FPGA在内部基于查找表(LUT),而CPLD构成具有逻辑门的逻辑功能(例如,乘积之和)。CPLD用于更简单的设计,而FPGA用于更复杂的设计。通常,CPLD是广泛组合逻辑应用程序的不错选择,而FPGA更适合大型状态机(即微处理器)。 这并不能解释使用233 MHz,400 I / O CPLD和类似FPGA的区别。或在192个宏单元PLD和相当的CPLD之间。我无法根据可靠的准则来缩小设计范围。请注意,我目前没有特定的应用程序,但经常想知道“我将用什么来做呢?” 我已经收到了极好的建议异地关于具体要求,但还是觉得这个问题可以从一些例子,说明了可编程逻辑器件的一个家庭偏好好处,当另一个可能出现同样适用或更为合适。


1
我应该在MCU / CPLD的输入引脚和VCC / GND之间使用电阻吗?
有时候,我希望我的MCU或CPLD输入静态逻辑。因此,我选择将其连接到VCC或GND。问题是我应该串联一个电阻来限制电流吗?我只是想了一会儿,得到了自己的答案:不!以STM32F103(数据表)为例,第86页: 从“输入泄漏电流”中,我知道当施加VDD时,输入电阻至少为1 M ohm,因此不需要串联电阻来限制电流。那合理吗?

2
I2C总线上的MITM
我一直在尝试设计一个模块,该模块将允许我修改I2C总线上的选定从属响应。这是原始总线配置(为清楚起见,未显示上拉和电源连接: 该总线上只有2个设备,并且只有100kHz。控制器MCU(I2C主设备)和RFID读卡器(I2C从设备)NXP PN512。我无法修改控制器固件或更改I2C总线事务。好消息是控制器仅发送两种交易类型: Master (Write Register) - <s><address+W><register number><data><p> Master (Read Register) - <s><address+W><register number><p><s><address+R><data><p> 我想做的是用我自己的字节替换在主寄存器读取期间选择的数据字节。我可以通过UART(921.6kbaud)将MCU希望读取的寄存器号发送到我的PC。我可以在那里用C / C ++或Python处理它们。当我收到需要替换其值的寄存器号时,可以将假字节发送回我的设备,它将负责将其发送回控制器,以替换原始卡的响应。 首先,我将I2C总线分为两部分: 我尝试了Arduino Nano,后来尝试了使用时钟扩展的CPLD。面对MCU控制器的ATmega328硬件I2C不能跟上,因为有时启动序列的产生早于上一个停止周期后的5us。因此,AVR时不时要进行NAK读取事务。CPLD可以处理停止/启动速度,结果证明在MCU中禁用了总线扩展。 我想出了一个可以通过检测单字节写入来“预测”主寄存器读取的想法,因为我确信它后面会进行读取。在下一个读周期地址写入期间,似乎有足够的时间从从设备引入字节。那不是很有效。总线事务在开始时(大约前5秒)似乎还不错,但随后控制器停止了总线上的所有通信,就好像它检测到不是在直接与标签读取对话一样。 读卡器还可以产生对主机的中断。IRQ是基于计时器或事件的。我将问题归因于本来是在总线上引入的延迟。我可能错了,但我想出了另一种“零延迟”设计。 我的想法是,我只能断开SDA线,而使SCL线保持连接在主机和从机之间。这样,我仍然可以在任一方向上替换数据线上的字节。由于我必须根据总线周期来控制SDA线的方向,因此设计变得更加复杂。这是处理总线事务并通过UART将十六进制字节发送到计算机的VHDL代码。从计算机接收字节尚未实现: library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity I2C_Sniffer is port ( clk : in std_logic; scl_master : in std_logic; sda_master : inout std_logic; sda_slave : …

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.