"FPGA技术培训"在线答疑 |
[主持人:ChinaECNet] |
各位听众(网友),下午好!欢迎参加中电网在线座谈。今天,我们有幸邀请到清华大学孟教授和Altera的资深应用工程师就“FPGA技术培训”举行在线答疑。在答疑中,您可就您关心的问题与专家在线进行直接、实时的对话交流。中电网衷心希望通过大家的共同努力,不仅能够增进各位听众(网友)对“FPGA技术培训”的了解和掌握,而且能够为大家事业的发展带来裨益。 |
[2006-11-14 14:47:33] |
[主持人:ChinaECNet] |
在此回答问题的专家是:清华大学孟教授和Altera的资深应用工程师FAE Jean Song、David
He 、Antony Yang 。 |
[2006-11-14 15:01:31] |
[问:hxf136] |
实验二中编译出现错误如下;
Error: Top-level design entity "sy2" is undefined
请问是什么错误,如何解决?谢谢老师! |
[答:Xianyuan] |
顶层设计中sy2没有定义,如果是I/O信号,请在实体(entity)中定义,如果是内部信号,则在结构体中添加此信号。 |
[2006-11-14 15:04:27] |
[问:ljp099] |
在使用quartus2软件的sopc buider工具时,是否需要PC与网络连接,以便更新IP
CORE? |
[答:David] |
可以连上也可以不连上。IP core不会自动更新,只会提示有新版本更新。如果没连上网就不会提示。 |
[2006-11-14 15:08:00] |
[问:zhngjnpng911] |
请问流水寄存器有什么作用?与移位寄存器有什么共同点和不同点,谢谢了 |
[答:Jean] |
流水寄存器具体指什么? |
[2006-11-14 15:08:54] |
[问:zhijun_du@msn.com] |
请问为什么我的SOPC内只有EP2C35 develop board,没有EP2C5的,这样外部RAM就没办法加进设计里面 |
[答:Jean] |
我们只提供EP2C35的开发板,没有EP2C5的开发板。 |
[2006-11-14 15:10:14] |
[问:ljp099] |
是否由于PC没有连接网络,才会导致在运行在生成nois2最小系统时,会有警告说“存在时间受限的core。。。”,并最终导致运行不了nois2
ide。 |
[答:David] |
不是。 那是因为你没有Nios II 的license。有这个警告表示,你运行在open core plus的方式。只要你不点掉这个窗口,而且把电缆连着,那其他的功能都能正常运行。 |
[2006-11-14 15:11:08] |
[问:lototol] |
请问:
1. 提交论文和答辩的时间和流程是如何安排的?何时公布?如何申请? |
[答:Xianyuan] |
完成自己的设计后,写好论文,提交论文和答辩申请到中电网。
我们要阅读和审核论文和答辩申请,再安排和组织人员到指定地点答辩。申请收到后一个月内通知你。(吴总你看可以吗?) |
[2006-11-14 15:11:39] |
[问:hxf136] |
实验三出现错误提示是:
Error: Top-level design entity "ps" is undefined
我理解的意思是最高设计实体“PS”是不明确,
请问老师如何解决呢 |
[答:Antony] |
这个错误的原因是你的顶层实体名字没有设定正确。请在Quartus II中点击Assignments菜单->Settings->General页面,并把你当前项目中的顶层实体名指定在"Top-level
Entity"中。 |
[2006-11-14 15:12:48] |
[问:zhngjnpng911] |
请问数据处理的速度"8DMIPS"这个的怎么读才是正确的呢? 谢谢你的解答! |
[答:Antony] |
8 /"di:"mips/ |
[2006-11-14 15:18:23] |
[问:hxf136] |
Error (10482): VHDL error at dff.vhd(18):
object "qtemp" is used but not declared
Error (10523): Ignored construct rtl at dff.vhd(7) due to previous errors
请问是什么错误如何解决 |
[答:Xianyuan] |
gtemp没有说明,如果是I/O信号,在实体中添加,如果是内部信号,在结构体中添加。 |
[2006-11-14 15:36:07] |
[问:ljp099] |
申请的license在安装时,我用的操作系统为windows xp,按正确步骤设置环境变量后,启动软件,在license
setup中,选择环境变量设置,显示无效,找不到license。这是为什么?当选择license安装路径后,软件再次启动后,不会出现“指定license”的页面,但同样运行不了“hello
world"实验 |
[答:Jean] |
你指定好路后,软件再次启动时,可以点击Tools下license setup查看license的信息。 |
[2006-11-14 15:36:16] |
[问:Deng] |
请问如何把编译好的程序写入FLASH里面呢,请告诉详操作细步骤,谢谢了 |
[答:David] |
这个步骤取决于你使用的Nios II(以及Quartus II)的版本.以5.1及以上的版本是这样的。首先定义一个board scription
文件(只要完成Flash Flow就可以)然后把SOPC的target board选定为该文件。生成SOPC 系统然后用Quartus编译,下载这个.SOF
映象到FPGA中,然后在Nios II IDE中运行flash programmer tool 勾中要烧写的elf文件,就可以开始烧写。 |
[2006-11-14 15:36:24] |
[问:hxf136] |
实验四在编译过程中出现错误如下:
Error: Node instance "ram0" instantiates undefined entity "RAMB4_S8"
请问什么错误,怎样解决?谢谢老师! |
[答:Antony] |
这个错误表示,在你的设计中,模块ram0调用了一个底层模块RAMB4_S8,而这个底层模块并没有包括到当前项目中,请找到你的这个底层模块并把他加到当前项目中。 |
[2006-11-14 15:37:29] |
[问:imbet] |
老师,您好!我在做培训的实验时,发现,时序分析报告中th大部分为负,这样是不是不太好 |
[答:Jean] |
应该没有问题,th指保持时间,当然是越短越好。 |
[2006-11-14 15:38:13] |
[问:hxf136] |
sy2 只是我的文件名,怎么会有上面的错误呢 |
[答:Antony] |
麻烦描述一下您遇到的错误好吗?谢谢。 |
[2006-11-14 15:38:14] |
[问:zhijun_du@msn.com] |
请问,实现一个UART到ETHERNET转换器需要多大的资源?ALTERA有没有这方面的一些设计参考? |
[答:David] |
目前没有这个参考设计。不过你可以尝试用Nios II +uart+ethernet Mac来实现,具体需要多上资源要等编译完才知道。Nios
II 大概要1200LEs Mac 如果用opencores 上的MAC需要2600LEs,其它的UART应该耗的资源应该比较少,但整个设计可能还需要存贮器等。 |
[2006-11-14 15:39:28] |
[问:luogongqiang] |
在NOIS2实验一中,在SOPC BUILDER的设置过程中,SRAM型IS61LV25616在软件中找不到,问是什么原因? |
[答:Xianyuan] |
此问题在学员的问题中有答案。IS61LV25616 SRAM是一个自定义组件,该组件的文件夹发在附件中,只要将该文件夹拷贝到QUARTUS安装目录下的altera\kits\nios2_50\components即可找到。 |
[2006-11-14 15:40:18] |
[问:imbet] |
培训中的nois ii的试验中,实验讲义中给的tri_state_bridge_0的tri_state_bridge_data为16位,而我用sopc
做出来的位32位,而且其中没有可以改位数的地方,请问这是怎么回事? |
[答:David] |
你在create SOPC component时应该指定数据宽度的位数。 |
[2006-11-14 15:41:12] |
[问:lototol] |
在fitter时警告输出引脚未指定负载电容,请问不同电平类型的端口,其容性负载各应设置为多少pF? |
[答:Jean] |
不同的器件不同的管脚会有不同的参数,没有设置也没有关系,如果你想知道具体的参数,可以查看器件的手册,一般都会注明的,通常10pF左右吧。 |
[2006-11-14 15:41:21] |
[问:Deng] |
实验教材中的第一个实验的程序编译已经通过,我想问一下,管脚如何分配;希望可以给我发一份实验板的原理图,格式是.sch的,谢谢了! |
[答:Jean] |
你能告诉我实验板的具体型号吗? |
[2006-11-14 15:42:11] |
[问:lototol] |
请问:对自选设计项目的难易程度有何要求?(如果选择难度大的设计怕时间不够,如果选择难度小的设计怕不被认可,不能通过) |
[答:Xianyuan] |
难易程度对于不同的对象是不同的,所以请针对自己的情况,合理选择,我们会做出判断的。 |
[2006-11-14 15:42:39] |
[主持人:ChinaECNet] |
各位观众,现在用户提问很踊跃,专家正在逐一回答。请耐心等待您问题的答案,同一问题请不要多次提交。 |
[2006-11-14 15:43:28] |
[问:yuanli25] |
我想问下,如果自己写IP模块,那么应该这样写控制寄存器来控制我的IP模块 |
[答:David] |
这个问题,你要找个例子看看。altera网上有一个PWM 模块的verlilog源码,你可以参考一下。一般说,要有控制寄存器和数据寄存器。 |
[2006-11-14 15:44:00] |
[问:meteor_chu] |
我想问一下灌电流和拉电流如何理解??他们如何对应的上拉电阻和下拉电阻? |
[答:Jean] |
灌电流和拉电流主要跟输入信号和输出信号有关。具体的上拉电阻和下拉电阻也跟电平标准有关,还跟信号的匹配有关。一般都会有推荐值的。 |
[2006-11-14 15:44:04] |
[问:imbet] |
培训中的nois ii实验中,部件is61lv25616_sram没有,请问能否提供这个部件的vhdl源码 |
[答:Xianyuan] |
IS61LV25616 SRAM是一个自定义组件,该组件的文件夹发在附件中,只要将该文件夹拷贝到QUARTUS安装目录下的altera\kits\nios2_50\components即可找到。
请从学员的问题解答得到此组件。 |
[2006-11-14 15:44:20] |
[问:imbet] |
毕业设计的难易应该在什么程度才能结业?与提供的实验相比 |
[答:Xianyuan] |
根据自己的情况合理选择,我们会做出判断的。 |
[2006-11-14 15:45:42] |
[问:zhijun_du@msn.com] |
请问,SOPC实验中实验一,建立NIOSII系统时,有如下操作:然后双击IS61LV25616 SRAM(在Avalon Components
-> EP2C5THC‖-1 Development Board 目录下),而我的SOPC Builder内没有这个目录,如何才能加入SRAM呢?
谢谢! |
[答:David] |
为了和SRAM相连, 你必须做一个SRAM接口。在component editor中可以做一个component接口,象SRAM这种简单的接口,可以不需要verlilog或vhdl文件,只要定义好信号及Avalon的信号的对应以及(TIMING)时序方面的信息(可以参考SRAM器件手册)关系就可以了。 |
[2006-11-14 15:47:35] |
[问:hxf136] |
实验二中编译出现错误如下;
Error: Top-level design entity "sy2" is undefined
sy2是文件名提示上面错误 |
[答:Antony] |
这个错误的原因是由于你的顶层设计文件名和顶层实体名不一致导致的。请在Quartus II中点击Assignments菜单->Settings->General页面,把你顶层设计的实体名输入到"Top-level
Entity"中,问题就可以得到解决。 |
[2006-11-14 15:48:11] |
[问:luogongqiang] |
我准备用THCII-1进行设计。为了实现必要的功能,至少还需要用到5条尚未使用的芯片引脚。我看到网上已经贴出了实验套件原理图,但是原理图很模糊,根本无法看清还有那些引脚可供我使用。希望中电网能再与清华方面协调一下,提供清楚的原理图,方便我们进行设计。 |
[答:Xianyuan] |
最后提供的原理图应该是清楚的。另外在实验板上关于出腿都有注明。 |
[2006-11-14 15:48:11] |
[问:lototol] |
关于到相关大学进行实验评定,该如何联系? |
[答:Xianyuan] |
提交答辩申请后,组织方会安排时间后通知你。 |
[2006-11-14 15:49:25] |
[问:imbet] |
关于扇出和扇入的概念我不是很理解,能不能详细通俗的解说一下 |
[答:Jean] |
扇出就是一个信号同时分多路信号送出。
扇入就是多个信号输入到选择器中。 |
[2006-11-14 15:49:39] |
[问:hxf136] |
实验板型号TH系列的用的FPGA芯片是EP2C5T144C8 |
[答:Xianyuan] |
|
[2006-11-14 15:49:57] |
[问:meteor_chu] |
在SOPC实验中(实验指导书61页),找不到IS61LV25616 SRAM项,也即是在Avalon
Compoents 下找不到EP2C5THC项,这是什么原因,如何加入这一component呢? |
[答:David] |
那你能找到该component放在哪个目录吗?如果可以的话,在SOPC的file下有一个setup选项。把这个目录添加到SOPC要搜索的路径列表(最下面的框)中用+连起来 |
[2006-11-14 15:51:15] |
[问:hxf136] |
我觉得提供的原理图不清楚,希望提供.sch |
[答:Xianyuan] |
放大文件看能否便清楚。 |
[2006-11-14 15:53:39] |
[问:hxf136] |
Info: Detected ripple clock "CLK" as buffer是什么意思,如何解决 |
[答:Jean] |
这是Quartus II的编译结果,在我们的器件中存在clock buffer。你可以不用关心。 |
[2006-11-14 15:57:33] |
[问:imbet] |
怎么把编译好的实验下载到配置器件中?是不是要把.sof文件转还成.pof文件,我这样试了,还是不行啊,请问怎么回事 |
[答:Xianyuan] |
两种情况来处理:
1.逻辑设计:使用AS模式下载时将FPGA的配置数据烧在专用的EPCS1配置芯片上(位于实验板左上角),
2.Nios设计:将编译后的C程序烧写在FLASH存储器中。在烧FLASH前需要预先自定义开发板。此组件请从学员问题解答中获得。
|
[2006-11-14 15:58:19] |
[问:hxf136] |
Error: Node instance "U2" instantiates undefined
entity "megafunction_counter"什么意思?如何解决?谢谢你! |
[答:Antony] |
这个错误的原因是底层模块megafunction_counter没有被加在你当前的项目中,导致Quartus II不能找到这个模块,请将这个底层设计文件添加到你的项目中,问题就可以得到解决。 |
[2006-11-14 16:03:28] |
[主持人:ChinaECNet] |
本次网上答疑马上就要结束了,各位学员如果有其他问题,请发email到lvjie@chinaecnet.com,我们会转给相关的专家予以解答。谢谢各位专家和学员的参加。 |
[2006-11-14 16:04:07] |
[问:Scholes] |
设计输入后,作功能验证或者仿真的时候,需要testbench,如何写好一个testbench?有没有相关的资料知道如何写好一个testbench?推荐一下,谢谢:) |
[答:Jean] |
testbench是仿真的重要方面,网上有很多的资料和书籍。比如Writing Testbench -Functional Verification
of HDL Models |
[2006-11-14 16:08:15] |
[问:hxf136] |
Error (10482): VHDL error at dff.vhd(18):
object "qtemp" is used but not declared这个问题如何解决呢 |
[答:Antony] |
这个错误的原因是信号"qtemp"没有在dff.vhd中定义,请对这个信号进行定义,问题就可以得到解决。 |
[2006-11-14 16:10:54] |
[问:imbet] |
在时序设置中,有个th,tco,tpd等的requird 的值,请问这个需要的值一般用设置么,根据身么设置。一般设置多大为好 |
[答:Xianyuan] |
设计的工作频率不高时,可以不用设置,即从设计的报告文件中查看结果是否符合要求。对于高速电路要使最小时钟周期能满足保持时间和建立时间的要求来设置。 |
[2006-11-14 16:11:04] |
[问:imbet] |
在ram实验中,输出脚clkout,和out是和哪些脚想连呢,我看了,好像用不着 |
[答:Jean] |
当然你可以不使用这两个管脚。 |
[2006-11-14 16:13:12] |
[问:hxf136] |
Error (10523): Ignored construct rtl at dff.vhd(7)
due to previous errors什么意思如何解决谢谢了 |
[答:Jean] |
你可以告诉我,你上面出现了什么错误吗? |
[2006-11-14 16:18:23] |
[问:imbet] |
国内那些机构,fpga做的最好 |
[答:Xianyuan] |
现在FPGA已得到广泛应用,学校教学中也都有此内容,所以FPGA已经成为电子系统设计首选的方案之一。通信、自控、航天到家用电器、汽车和医疗仪器等许多机构都有做得很好的。 |
[2006-11-14 16:18:49] |
[问:lototol] |
Avalon是32位的,如何与16位或8位的设备连接? |
[答:David] |
如果设备是存贮器,可以在生成component时使用动态地址对齐方式。如果设备不是存贮器,可以使用native对齐的方式。把低8位(或16位)和设备相连就可以。软件读写时可以使用IORD和IOWR宏。 |
[2006-11-14 16:23:01] |
[问:zzkeng] |
请文孟教授我想用Altium Desinger6对FPGA编译与Altera Nios有何不足? |
[答:Xianyuan] |
你没有说明是否要利用Altium Desinger6在FPGA中集成嵌入处理器,不好做比较。 |
[2006-11-14 16:23:50] |
[主持人:ChinaECNet] |
祝大家事业有成、生活愉快!欢迎多提宝贵意见,欢迎关注中电网,下次再见。 |
[2006-11-14 16:26:12] |
[问:Scholes] |
关于时钟使能,是为了避免门控时钟的出现,如果想用组合逻辑的输出来做控制时钟时,时钟使能便是用系统时钟对这个输出信号同步,然后把同步后的输出,作为后级的时钟使能端的输入,是这样吗?后级的时钟还是用系统时钟来控制,对吗?
谢谢:) |
[答:Antony] |
基本上是这样子的。利用时钟使能来代替门控时钟就是为了保证设计中的时钟数目尽量少,从而能更容易达到时序要求。所以,时钟使能是用来使能你所说的系统时钟的。 |
[2006-11-14 16:26:33] |
[问:Scholes] |
第5章40页,确保不产生准稳态的电路中,是仅仅增加一个系统时钟控制的reg就好呢?还是象图中表示的那样,先把非同步的输入作为第一个reg的时钟然后第一个reg的D接地,Q给第二个reg,然后Q非送到同步输入,这个图,我有点看不太明白,麻烦您给解释下,谢谢:) |
[答:Jean] |
推荐使用图中表示的那样。亚稳态现象经常是不可避免的,这主要跟晶体管的充放电有关。利用两个寄存器将信号和时钟同步上,可以降低亚稳态效应。 |
[2006-11-14 16:30:26] |
[问:lototol] |
我在FPGA内设计了一个VGA显示电路,用双口RAM(3072byte,地址线12位,数据线8位)作为Video RAM使之成为显示电路和Nios系统的桥梁。请问双口RAM如何实例化? |
[答:Xianyuan] |
双口RAM可以利用IP核或调用模块来实例化。但是双口ROM只能通过IP核,因为要提供初始化文件。关于块RAM/ROM已有实验提供,可以参考来实现双口RAM/ROM. |
[2006-11-14 16:31:07] |
[问:imbet] |
在串口的实验中,串口发送的部分,没有用到ieee.std_logic_unsigned.all包,是因为里面有个是unsigned(no_bits_sent)的信号么,这个信号能不能声名成std_logic_vector呢
为什么我用了ieee.std_logic_unsigned.all包后,结果显示不出来 |
[答:Antony] |
事实上unsigned是在std_logic_1164.all这个库中定义的。之所以没有用到std_logic_unsigned.all,原因是在你当前的设计中没有用到这个库中定义的VHDL语法元素。unsigned的信号一般情况下应该可以声明成std_logic_vector,不过也取决于你的具体设计。请问你所说的结果显示不出来代表什么意思? |
[2006-11-14 16:35:35] |
[问:lototol] |
Warning: ClockLock PLL "PLL:Modular_0|altpll:altpll_component|_clk0"
input frequency requirement of 31.5 MHz overrides default required fmax
of 36.0 MHz,如何处理 |
[答:Jean] |
你可以加一些时序约束,比如设定时钟约束为36MHz. |
[2006-11-14 16:37:19] |
[问:lototol] |
双口ram如何与Nios连接呢 |
[答:Xianyuan] |
设计的VGA显示是NiosII的外设吗?如果是,就要通过驱动程序来存取数据。所以,可以考虑直接由FPGA驱动VGA显示,双口ram的数据直接加到显示器。 |
[2006-11-14 16:39:15] |
[问:imbet] |
在串口实验中,我接受的数据有丢失,请问这个主要是什么原因,怎么改善提高呢 |
[答:David] |
这个问题只能在现场看看才能回答。 |
[2006-11-14 16:39:31] |
[问:hxf136] |
Error (10482): VHDL error at dff.vhd(18):
object "qtemp" is used but not declaredError (10523): Ignored construct
rtl at dff.vhd(7) due to previous errors这两错误是有那个引起的另一个的错误,怎么样解决,谢谢了 |
[答:Antony] |
第一个错误是根源。原因是信号"qtemp"没有在dff.vhd中进行定义,完成了这个信号的定义即可解决这个问题。如果qtemp信号在你的设计中是1
bit位宽的,请在代码中加入
signal qtemp : std_logic; |
[2006-11-14 16:39:57] |
[问:lototol] |
请问在什么地方增加对36MHz时钟的约束(针对刚才提的问题) |
[答:Jean] |
在Assignments菜单下Assignment Editor下点击Timing然后进行设置。 |
[2006-11-14 16:42:20] |
[问:hxf136] |
底层模块megafunction_counter如何添加 |
[答:Antony] |
在你的设计中应该有一个名为megafunction_counter.vhd或者megafunction_counter.v的文件,文件中定义了实体megafunction_counter。只要将这个文件放在你的项目目录中即可。 |
[2006-11-14 16:42:22] |
[问:hxf136] |
信号qtemp定义过了啊 |
[答:Antony] |
能不能把你的VHDL代码贴过来?谢谢。 |
[2006-11-14 16:43:33] |
[问:Scholes] |
关于状态机,状态机编码中会存在我们用不到的状态,最好在定义状态时,全部列出,在我们利用attribute定义了状态编码类型的情况下,也需要这样做,是吗?
谢谢:) |
[答:Xianyuan] |
利用FPGA时最好采用一个有效(one hot)编码。但是设计有多少状态,只要列多少状态。利用attribute定义状态编码类型也是这样。
为了避免出现锁存(组合逻辑)和不合理的使能(时序电路),利用case或if then else语句前加确省语句,可以省去列出全部情况。 |
[2006-11-14 16:48:32] |
[问:hxf136] |
library ieee;
use ieee.std_logic_1164.all;
entity dff1 is
port (d, clk : in std_logic; q:
out std_logic);
end dff1; |
[答:Antony] |
对不起,我这里看不到你完整的代码。请检查一下qtemp在你的设计中是不是在定义前就使用了。 |
[2006-11-14 16:49:50] |
[主持人:ChinaECNet] |
祝大家事业有成、生活愉快!欢迎多提宝贵意见,欢迎关注中电网,下次再见。 |
[2006-11-14 16:51:04] |
[问:lototol] |
我用FPGA设计的VGA显示电路已经可以正常显示ROM中的数据,将rom换为双口ram,双口ram如何与Nios的avalon连接? |
[答:David] |
你可以做一个有两个slave端口的component和它相连。每个slave端口应该和ROM接口没有明显的区别。一个slave和nios连,另一个个slave和VGA控制(master)连。 |
[2006-11-14 16:51:13] |
[主持人:ChinaECNet] |
祝大家事业有成、生活愉快!欢迎多提宝贵意见,欢迎关注中电网,下次再见。 |
[2006-11-14 16:53:04] |
[问:luyisa] |
请问在PS2实验中,键盘输入的是ASCII码吗?是怎样译码成8421码的?能描述一下它们的转换过程吗? |
[答:Xianyuan] |
键盘输入是11位的时钟和代码,每一个键有自己的相应的8位代码,获得此8位代码即可译出是输入什么键。8位代码前有1位起始位,后面是校验位和停止位,共11位。所以不是ASCII码。 |
[2006-11-14 16:55:00] |
[问:hxf136] |
architecture rtl of dff1 is
signal qtamp: std_logic;
begin
p0: process (d,clk)
begin if rising_edge(clk)
then |
[答:Antony] |
我想原因是你的信号名字取错了,请注意你用的是qtamp而非qtemp. |
[2006-11-14 16:58:34] |
[问:lototol] |
在Sopc中实例化的dpram无时钟线,不是同步RAM,而我用的是同步dpram,怎么办? |
[答:David] |
你可以用一个PLL产生一个和SOPC中的时钟一样的时钟引出来。 |
[2006-11-14 17:01:21] |