登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

IC技巧FAQ

作者:rickyice 栏目:IC设计
IC技巧FAQ
1. 什么是.scf?
答:SCF文件是MAXPLUSII的仿真文件,  可以在MP2中新建.

1.    用ALTERA_Cpld作了一个186(主CPU)控制SDRAM.html">SDRAM的控制接口, 发现问题:要使得SDRAM.html">SDRAM读写正确, 必须把186(主CPU)的clk送给SDRAM.html">SDRAM, 而不能把clk经cpld的延时送给SDRAM.html">SDRAM. 两者相差仅仅4ns. 而时序通过逻辑分析仪测试没有问题. 此程序在XILINX器件上没有问题. 这是怎么回事?
答:建议将所有控制和时钟信号都从PLD输出, 因为SDRAM对时钟偏移(clock skew)很敏感, 而ALTERA的器件PLL允许对时钟频率和相位都进行完全控制. 因此, 对于所有使用SDRAM的设计, ALTERA的器件PLL必须生成SDRAM时钟信号.
要利用SDRAM作为数据或程序存储地址来完成设计, 是采用MegaWizard还是Plug-In Manager来将一个PLL在采用Quartus II软件的设计中的顶层示例?可以选择创建一个新的megafuntion变量, 然后在Plug-In manager中创建ALTCLKLOCK(I/P菜单)变量. 可以将PLL设置成多个, 或是将输入划分开来, 以适应设计需求. 一旦软件生成PLL, 将其在设计中示例, 并使用PLL的“Clock”输出以驱动CPU时钟输入和输出IP引脚.

2.    在MAX7000系列中, 只允许有两个输出使能信号, 可在设计中却存在三个, 每次编译时出现“DEVICE need too many [3/2] OUTPUT enable signal”. 如果不更换器件(使用的是max7064lc68). 如何解决这个问题?
答:Each of these unique OUTPUT enables may CONTROL a large NUMBER of tri-stated signals.  For example,  you may have 16 bidirectional I/O pins.  Each of these pins require an OUTPUT enable signal.  If you GROUP the signals into a 16-bit bus,  you can use one OUTPUT enable to CONTROL all of the signals instead of an individual OUTPUT enable for each signal.  (参考译文:这两个独特的输出使能中每个都可能控制大量三相信号. 例如, 可能有16个双向I/O引脚. 每个引脚需要一个输出使能信号. 如果将这些信号一起分组到一个16位总线, 就可以使用一个输出使能控制所有信号, 而不用每个信号一个输出使能. )

3.    关于vhdl的问题:PROCESS.html">PROCESS(a, b, c) begin… end PROCESS.html">PROCESS; 如果a、b、c同时改变, 该进程是否同时执行三次?
答:PROCESS STATEMENTS 中的执行跟逻辑有关系,  假如是同步逻辑,  则在每次时钟的触发沿根据A, B, C的条件来执行一次;假如是异步逻辑,  则根据判断A、B、C的条件来执行. 一般我们都推荐使用同步逻辑设计

4.    在设计最初, 由于没有将时钟信号定义在全局时钟引脚上, 导致MAXPLUS II 在时间分析时提示错误:(时钟偏斜加上信号延迟时间超过输入信号建立时间). 全局时钟引脚的时钟信号到各个触发器的延时最小, 有没有可能通过编译软件设置, 将普通I/O脚上的时钟信号也经过芯片内部的快速通道以最小的延迟送到每个触发器时钟引脚?
答:you can register that signal and assign it as the GLOBAL signal,  by the step flow: assign->LOGIC option->Individual LOGIC options->GLOBAL signal.  But you'd better input the clock signal through the dedicated input pin. (参考译文:可以寄存这个信号, 并将它指定为全局信号, 步骤如下:指定—>逻辑选项—>个别逻辑选项—>全局信号. 但是, 最好通过专用输入引脚输入时钟信号. )

5.    用MaxplusII 软件设计完后, 用Delay MATRIX.html">MATRIX查看延迟时间. 由于内部触发器的时钟信号用了一个输出引脚的信号, 譬如将一引脚ClkOut定义为Buffer, Clkout是一时钟信号, 然后反馈到内部逻辑, 内部逻辑用此信号作为时钟信号, 但用Delay MATRIX.html">MATRIX, 却查看不到一些信号相应于ClkOut的延迟, 因为ClkOut是一OUTPUT引脚, 在Delay MATRIX.html">MATRIX source 一栏中没有ClkOut信号, 如何解决这个问题?
答:这种做法在逻辑设计中称为GATE CLOCK,  所谓GATE CLOCK就是将设计中的组合逻辑结果拿来做时钟信号,  这是一种异步逻辑设计.
现在都推荐使用同步逻辑设计方法. 可以将该信号(CLKOUT)拿来作使能信号,  即ENABLE信号,  而时钟信号还是采用原来的统一时钟,  使设计用尽量少的同步时钟,  这样一来就还是用DELAY MATRIX来分析原有的时钟.

6.    我是一个epld的初学者, 目前看到XILINX的Virtex-II中嵌入大量的资源如:powerpc、ram等, 究竟如何在fpga中使用这些资源?
答:XILINX Virtex-II中嵌入的资源非常丰富, 如BlockRAM、DIGITAL Clock Manager、On-chip termination等等. ISE 4.2i软件完全支持这些资源. 可以举出单元库中相应基本数据的实例. XILINX Core Generator中也还支持BlockRAM等特性. 至于PowerPC和MGT设计, 可以使用Virtex-II Pro开发者套件.  

7.    在设计中, 往往需要对某个信号做一定(任意长)的延时, 有没有好的方法来实现?而不是采用类似移位寄存器的方法来延时.  
答:使用移位寄存器在FPGA中对信号进行延时是一种好方法. XILINX Virtex架构中每个对照表(LUT)都能够设置成为具有可编程深度(最多为16)的移位寄存器. 这就提供了一种高效的途径来在FPGA中实现移位寄存器. 无须使用触发器就可以实现一个16位寄存器. 作为一个好的设计习惯, 任何情况下都不要通过闸延迟来实现延迟逻辑.  

8.    ISE中的PAD TO PAD CONSTRAINT 是否是包括输入输出的pad时延之和再加上输入输出之间的组合逻辑的时延?还是只是输入输出之间的组合逻辑的时延?
答:XILINX PAD-to-PAD contraint的确涉及到输入输出PAD时延. 这从布局后时序报告中可以看出.  

9.    由于现在的设计基本上都是同步设计, 那么PAD TO PAD CONSTRAINT 在什么情况下使用?
答:虽然现今多数设计都是完全同步, 但仍有一些情况需要从一个输入引脚到另一个输出引脚的纯粹组合路径. 因此, 仍然需要PAD-to-PAD constraint控制这些路径的时延.

10.    如何在ISE 中看到PAD TO PAD 的布线情况?
答:通常不必在意信号在FPGA内的路线, 只要它涉及到时序问题. 这种工具将对以优化的方式对设计进行路由. 如果希望检查具体路由, 可以使用XILINX FPGA Editor, 它包含在ISE4. 2i软件中.

11.    在XILINX Foundation 3. 1i下用JTAG PROGRAMER下载程序到芯片中, 可是总是出现如下错误:If the security flag is turned on in the bitstream,  PROGRAMMING status can not be confirmed;others,  PROGRAMMING terminated due to error.  测量电路信号, 没有相应的波形, 显然下载没有成功. 所用的芯片是:XILINX Spartan2 XC2S50TQ144. 怎么解决?
答:This is a security feature.  By disabling readBACK,  the configuration data cannot be read BACK from the FPGA.  This prevents others from pirating your intellectual properties.  You can enable or disable this feature during bitstream generation.  
The proper way to determine if the configuration is finished without error is to check the status of the DONE pin on the FPGA.  DONE pin should goes high if the bitstream is received correctly.  Also,  since you are using JTAG configuration,  please make sure you have selected JTAG clock (not CClk) as your Startup clock during bitstream generation. (参考译文:这是保密功能. 通过禁用回读, 配置数据不能从FPGA回读. 这可以防止其他人盗用你的成果. 在生成位元流过程中, 可以启用或禁用这个功能.
确定配置是否准确无误地完成, 适合的方法就是检查FPGA上DONE引脚的状态. 如果正确地接收了位元流, 则DONE引脚将会升高. 而且, 既然使用JFAG配置, 就要确保在生成位元流过程中, 已经将JGAG时钟(而不是CClk)选作了Startup时钟. )

12.    XILINX Virtex架构中每个对照表(LUT)都能够设置成为具有可编程深度(最多为16)的移位寄存器. 可否理解为, 在写设计的时候如果设计了一个深度不大于16位的移位寄存器, ISE综合时就会用一个LUT来替代它?
答:Most synthesis tools (e. g.  Synplify Pro,  XILINX XST) are able to infer LUT based shift register (SRL16E) from your source code.  Even for depth greater than 16,  the tool is SMART enough to infer multiple SRL16E to realize the shift register.  Another way to utilize this feature is to instantiate an SRL16E in the source code.  You can REFER to the Library Guide in the XILINX ISE SOFTWARE PACKAGE for more details.  (参考译文:大多数综合工具, 例如Synplify Pro和XILINX XST, 都能根据源代码中的移位寄存器SRL16E来推断 LUT. 即使是深度大于16的情况, 此类工具也能够推断出多SRL16E, 从而实现移位寄存器. 利用此功能的另一种途径是在原代码中例示一个SRL16E. 详细说明可以参考XILINX ISE软件包中的库指南. )

13.    LUT是实现组合逻辑的SRAM, 怎样实现一个时序的移位寄存器, 是不是必须加一个触发器来配合LUT?   
答:The LUTs in XILINX Vir
2楼: >>参与讨论
rickyice
2
48.    想自己设计一块TMS320F240试验电路板, 包括A/D、D/A、键盘显示接口, 其中译码、键盘显示部分想用EPM7128来做, 不知道具体怎么与TMS320F240接口?
答:所谓PLD为可编程器件, 其IO口的连接非常地灵活, IO 口的功能可以按照自己的定义来设定. 只需将希望的TMS320F240连接口连接到PLD的任意IO口上, 然后在PLD中编写相应的控制逻辑,  即可进行数据传输与控制.  

49.    变频器盘中使用一芯片是ALTERA EP330PC-12烧坏, 请问如何处理?
答:这是一款旧型号的芯片.  可以利用ALTERA或第三方提供的编成器将下载文件重新下载到一个好的器件中去, 或者采用MAXPLUSII软件通过BYTEBLAST(MV)连接到板子上将编成文件读出再下载到新的器件中去.

50.    SRFF = SR flipflop SRFF和SR latch有何区别?
答:FUNCTION SRFF (S,  R,  CLK,  CLRN,  PRN) RETURNS (Q);
//VHDL Component Declaration:
COMPONENT SRFF
PORT (s : IN STD_LOGIC;
r : IN STD_LOGIC;
clk : IN STD_LOGIC;
clrn: IN STD_LOGIC;
prn : IN STD_LOGIC;
q : OUT STD_LOGIC);
END COMPONENT;
FUNCTION LATCH (D,  ENA)
RETURNS (Q);
//VHDL Component Declaration:
COMPONENT LATCH
PORT (d : IN STD_LOGIC;
ena: IN STD_LOGIC;
q : OUT STD_LOGIC);
END COMPONENT;
不同点在于SRFF是一个触发器,  而LATCH只是一个锁存器,  更详细的真值表可以从软件的HELP文档中可以查到.

51.    想在内部上拉输入信号, 所使用的设备是FLEX6016. 怎么做?
答:可以在MAXPLUSII中选定该信号,  然后选择assign-> LOGIC option->Individual LOGIC options -> Enable pull-up RESISTOR.  然后重新编译一下就可以了.

52.    有关输入信号的上拉问题(前题), 按照专家的回答做过, 但是失败了, 不知道是什么原因导致了此法不可行?还有没有别的办法?
答:ALTERA的FLEX6000系列在I/O管脚上是没有上下拉电阻的, 所以加了约束也没有作用.
   
53.    使用AHDL语言编写的程序. 在Quartus II 1. 0下编译, 使用的是20K400EBC652-3的片子. 将编译产生的pof文件下载到EPROM里, 但是在程序没有多大修改的情况下(仅仅改变一些测试管脚), 程序运行结果不一样. 具体表现在DSP芯片启动FPGA里的一根控制线不稳.
答:逻辑功能仿真结果如何?在修改前后有没有改变?假如说功能仿真是对的, 请确认设计Timing是否满足要求, 尤其是IO的Timing 要求是否达到.  在可能的情况下进行后仿真, 其仿真结果能够确保你的逻辑在PCB板上正常地工作.  假如仿真结果与Timing要求都没有问题, 其逻辑一定能在板子上正常地工作.  

54.    当一个输入信号不满足触发器的Setup/Hold时间时, 触发器的输出信号是不是一稳定状态(或为0, 或为1, 当下一次的输入信号满足Setup/Hold时间时, 触发器能正确地输出)?由于此时触发器处于亚稳态, 以前看过一些资料, 某些器件的输出可能是振荡状态, 即此时、将来的输出信号不可预测, 与时钟信号、输入信号无关. 我想问的是ALTERA器件对此情况是如何处理?因为某些情况下, 当输入信号超过1个Clk时间, 只是在第一个Clk周期内, 不满足Setup/Hold, 但是其他的Clk周期内, 满足Setup/Hold.  
答:关于这个问题,  建议参考一下ALTERA的文档AN42.  该文档详细地讨论了ALTERA器件的亚稳态性. 网上的地址是http://www. ALTERA. com/literature/an/an042. pdf.   

55.    在中国市场上, 可以容易买到使用ALTERA公司的软件MAX+PlussII进行VHDL和FPGA设计的教程书籍, 但是却鲜有使用XILINX.html">XILINX foundation软件平台的书籍, XILINX.html">XILINX是否考虑增强这方面内容?
答:Thank you for your input.  In fact there are a NUMBER of books available in the market on XILINX.html">XILINX FPGA and development tools.  A GOOD example is the title "XILINX 数字系统集成技术" by Professor 朱明程,  published by Southeast UNIVERSITY Press.  We will work closely with local publishers to bring out more titles on XILINX.html">XILINX products.  (市场上还是有几本XILINX.html">XILINX FPGA和开发工具的书. 比较好的有朱明程教授编的《XILINX 数字系统集成技术》, 东南大学出版社出版. XILINX.html">XILINX公司也将会与本地出版商密切合作, 推出更多针对XILINX.html">XILINX产品的书籍. )

56.    在ISE4. 1环境下编写一个包结构, 里面有几个函数, 编译通过, 而MODELSIM 仿真出错, 提示:没有找到此PACKAGE, 为什么?
答:After you have created the PACKAGE,  you need to add it to your project.  In the source window,  right click and SELECT "Add source",  pick the source file for your vhdl PACKAGE,  and then SELECT "Vhdl PACKAGE".  The PACKAGE will then be added to your ISE project.  (参考译文:创建了这个包之后, 需要将它添加到项目中. 在源代码窗口, 右键单击并选择“Add source”, 为vhdl包选择源文件, 然后选“Vhdl PACKAGE”. 这个包就添加到ISE项目中了. )

57.    布板时, 时钟信号没有接全局时钟, 如何处理时钟使之可以更好(不需飞线)?
答:You can bring the signal BACK to the GLOBAL clock network by inserting a BUFG. (参考译文:可以通过插入一个BUFG将一个信号返回全局时钟网络. )

58.    准备使用XCV50 FPGA, 前面有16个模块, 本来每个模块都须要一个27M的时钟, 为了达到同步, 初步设想外部接一个27M时钟, 最后由FPGA产生16个27M的时钟输出, 这样做驱动会不会有问题?
答:A possible way is to feed your 27MHz input clock to a DLL.  The OUTPUT of the DLL drives multiple OBUF.  In this way you can create multiple copies of your input clock to drive other components on your board.  You don't actually need 16 OBUFs since each OBUF can drive several loads.  Note that although the DLL OUTPUT can drive multiple OBUF,  ONLY the one which provides feedBACK to the DLL can be completely deskewed.  You can also add a MAXSKEW constraint on the OUTPUT net of the DLL to minimize skew among the OBUFs.  This may not be a big issue since 27MHz is relatively slow.  (参考译文:可能的方法是将27MHz输入时钟传递给DLL. DLL输出驱动多重OBUF. 用这种方法可以创建输入时钟的多个副本以驱动板子上的其它组件. 实际上, 不需要16个OBUF, 因为每个OBUF都可以驱动几个负载. 请注意, 虽然DLL输出能驱动多个OBUF, 但只有那个向DLL提供反馈的OBUF可以完全对称(deskewed)的. 也可以在DLL的输出量上添加MAXSKEW限制, 以最小化OBUF间的偏斜. 因为27MHz相对比较慢, 所以问题不大. )
For more information regarding the use of DLL,  please REFER to the application note XAPP132 which can downloaded from the XILINX websitewww. XILINX. com(关于DLL的使用, 请参考XAPP132的应用手册. )

59.    IP CAPTION 就是核发生器, 它运行在核发生器目录下吗?
答:I think you mean "IP Capture".  The IP Capture tool provides designers with an automated method to identify,  capture,  and document a core.  The core can exist in the form of synthesizable VHDL or Verilog code,  or a fixed function netlist.  Once the new MODULE has been captured,  it can be installed into and distributed from a user's local copy of the XILINX.html">XILINX CORE Generator SYSTEM.  (参考译文:所指的应该是"IP Capture"吧. IP Capture工具为设计者提供了自动识别、捕获和归档核的方法. 核可以综合VHDL或Verilog码, 或固定功能连接表的形式存在. 一旦捕获了新模块, 就能够将核装入, 并从用户的本机XILINX.html">XILINX CORE Generator副本中分配此核. )
Details of the IP Capture tools can be found from XILINX.html">XILINX website .  http://www. XILINX. com/page_moved/ipcenter_e. htm?url=/ipcenter/designreuse/ipic. htm(有关IP Capture工具的详细资料, 请访问相关网站. )

60.    制作了一块试验板, CPLD使用EPF10K20TI144-4.html">EPF10K20TI144-4. 用max+plus II 10. 1编程, 完成后, 下载至片子内, 经过几次下载尝试(一直提示configuration failure: SRAM load unsucessful), 直至提示“configuration complete”——这应该是表示下载成功吧, 可是片子却无法实现任何功能(连最基本的一个或门都无法实现)——不起任何作用, 我使用TQFP-144的适配座放置EPF10K20TI144. 现在有几个问题:
①    编译前选择的是EPF10K20TC144-3芯片(max+plus II的器件库中没有EPF10K20TI144-4.html">EPF10K20TI144-4), 有没有关系?也用EPF10K10TC144-4试过, 也是可以下载但无法实现功能.
②  &nb
3楼: >>参与讨论
tntcnn
学习中、、、、、、、、、、、、、、
 
4楼: >>参与讨论
flanix
好东西
好东西可惜太少了.能全面一点吗.谢谢

5楼: >>参与讨论
jason_30
谢谢楼主
真是好东西,谢谢

6楼: >>参与讨论
古道西风
能否转载啊    的确是好东西啊
 
7楼: >>参与讨论
rickyice
re
可以,为的是知识传播。

8楼: >>参与讨论
rickyice
IC设计流程
1.使用语言:VHDL/verilog HDL
2.各阶段典型软件介绍:
输入工具:    Summit                          Summit   公司
仿真工具:    VCS, VSS                        Synopsys 公司
综合器:      DesignCompile, BC Compile       Synopsys 公司
布局布线工具:Preview 和SILICON Ensemble       Cadence  公司
版图验证工具:Dracula, Diva                    Cadence  公司
静态时序分析: Prime Time                       Synopsys 公司
测试:        DFT  Compile                    Synopsys 公司
3.流程
第一阶段:项目策划
形成项目任务书(项目进度,周期管理等)。流程:【市场需求--调研--可行性研究--论证--决策--任务书】。
第二阶段:总体设计
确定设计和目标,进一步明确芯片功能、内外部性能要求,参数指标,论证各种可行方案,选择最佳方式,加工厂家,工艺水准。流程:【需求分析--系统方案--系统设计--系统仿真】。
第三阶段: 详细设计和可测性设计
分功能确定各个模块算法的实现结构,确定设计所需的资源按芯片的要求,速度,功耗,带宽,增益,噪声,负载能力,工作温度等和时间,成本,效益要求
选择加工厂家,实现方式,(全定制,半定制,ASIC,FPGA等);可测性设计与时序 分析可在详细设计中一次综合获得,可测性设计常依据需要采用
FullScan,PartScan等方式,可测性设计包括带扫描链的逻辑单元,ATPG,以及边界扫描电路BoundScan,测试MEMORY的BIST。流程:【逻辑设计--子
功能分解--详细时序框图--分块逻辑仿真--电路设计(算法的行为级,RTL级描述)--功能仿真--综合(加时序约束和设计库)--电路网表--网表仿真】。
第四阶段:时序验证与版图设计
静态时序分析从整个电路中提取出所有时序路径,然后通过计算信号沿在路径上的延迟传播,找出违背时序约束的错误(主要是SetupTime 和 HoldTime),
与激励无关。在深亚微米工艺中,因为电路连线延迟大于单元延迟,通常预布局布线反复较多,要多次调整布局方案,对布局布线有指导意义。流程:【预布
局布线(SDF文件)--网表仿真(带延时文件)--静态时序分析--布局布线--参数提取--SDF文件--后仿真--静态时序分析--测试向量生成】
第五阶段:加工与完备
流程:【工艺设计与生产--芯片测试--芯片应用】


9楼: >>参与讨论
randman
经典就是经典
 
10楼: >>参与讨论
谦虚ic
很好,要好好学习
 
11楼: >>参与讨论
pop_mos
pop_mos
高手!学习学习!

12楼: >>参与讨论
mingjie
hao
 
参与讨论
昵称:
讨论内容:
 
 
相关帖子
请问 振荡器出来的正弦波 怎么变得更规则
请教模拟DX关于混合信号仿真IE的写法
关于噪声消除方法请教高手
关于X-bus的规范
单片机在低温(超出标称工作温度)工作时可能出现异常?
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号