您的当前位置:首页FPGA经典100问之<设计实现 31 问>

FPGA经典100问之<设计实现 31 问>

2020-06-01 来源:乌哈旅游
FPGA经典100问之<设计实现 31问>

FPGA是什么?

FPGA即现场可编程逻辑门阵列(英语:Field Programmable Gate Array, FPGA),是一个含有可编辑元件的半导体设备,可供使用者现场程式化的逻辑门阵列元件。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

现把历年来众多网友和专家联手打造的FPGA经典100问奉献给大家,包括、<仿真20问>、<设计实现31问>、<下载验证16问>、<入门与提高5问>。初学者必备!

FPGA经典100问 之<HDL 28问>&<仿真20问>下载 点击下载>>45篇博文精粹《菜鸟变高手,草根成长记》 点击下载>>特权同学倾力巨献---FPGA学习资料下载汇总

1、CYCLONE3芯片DDR2控制器SSTL18疑问! xulong431 问:

根据SSTL18规范及C3的handbook指导,与DDR2芯片互连得管脚采用的是伪差分的方式,C3相关DDR2控制器块的Vrefb管脚接VTT电平;问题随之而来,我使用的是EP3C120F780芯片,在BANK3,4边使用了2个16bit DDR2控制器,因此BANK3,4两块3个Vrefb管脚我都接了VTT电平,除去DDR2使用的I/O管脚,大概还剩下25根I/O没有使用;在HANKBOOK里面没有具体说明此时剩下的I/O管脚可否正常驱动1.8-LVTTL或者1.8-LVCMOS;那位高工有类似的经验望分享。

smarteebit答: 可以的。

楼主在分配完后可以用QuartusII的IO分配检查验证一遍是否有错:“Processing”->\"Start\"->\"Start I/O assignment analysis\"

asyou 答:

当然可以了,不然那些IO不是浪费了吗?这样的性能怎么跟Xilinx竞争啊! 查看更多回答与讨论>>

2、求助,用单片机采用JTAG方式配置FPGA kanojoy问:

想用单片机对CycloneII器件进行配置,采用JTAG方式, 该解析哪种格式的配置文件?.rbf­.svf­ 怎么解析„求教

ilove314答: sof文件

查看更多回答与讨论>>

1

www.EDNChina.com

3、关于PFGA复位引脚的问题 忆年 问:

我刚开始学FPGA,写个数码管显示的代码遇到复位的问题,就是随便一个I/O口定义为复位引脚,下降沿有效,如果复位引脚悬空,能正常工作,但是我连上一条杜邦线,复位信号好像就一直高低电平的跳变,然后就一直处于不断的复位状态,为什么会这样?复位信号是要用按键来控制的吗?如果是按键抖动的话就就对复位信号很敏感?谁给讲讲复位的问题啊,谢谢了。

ilove314 答:

请确定把复位管脚连到高电平 查看更多回答与讨论>>

4、EP1C31144C8N学习板的256色数码相框显示结果是这样吗 bbsvs2000 问:

2

www.EDNChina.com

学习版例程的效果,色彩挺怪的 ?能调整的更好吗?

ilove314 答:

你的SD卡读取地址没有设置对。请按照光盘里面的说明文档进行设置。 查看更多回答与讨论>>

5、关于M4K块配置VGA显示的问题 zxl2431 问:

按照特权同学的视屏做这个实验时,有3个问题请教

1,配置好单端口ROM后,在顶层进行例化

reg[5:0] rom_addr; //ROM地址

3

www.EDNChina.com

reg[7:0] rom_data; //ROM数据

vga_rom uut_vga_rom( .address(rom_addr), .clock(clk_25m), .q(rom_data) );

这是特权的程序,我也是这样的写的,但是编译总是报错:

Error (10663): Verilog HDL Port Connection error at vga_rom_1.v(118): output or inout port \"q\" must be connected to a structural net expression

网上查了一下,说是定义的q的类型不对,后来改成

wire[7:0] rom_data; //ROM数据

后就编译成功了,不知道大家有没有遇到过这情况,为什么特权同学的就能编译成功了?谁能帮我解释一下这情况,谢谢!

2,关于ROM地址的计算问题

//ROM地址计算

always @(posedge clk_25m or negedge rst_n) if(!rst_n) rom_addr <= 6'd0;

else if(y_dis == 10'd230) rom_addr <= 6'h3f; //地址复位

else if(y_dis > 10'd230 && y_dis < 10'd467 && (x_cnt == 10'd440 | x_cnt == 10'd448 | x_cnt == 10'd456))

rom_addr <= rom_addr+1'b1;

这个比较好理解,有点小疑问就是,当到达显示区的时候,地址的复位为什么是6'h3f(63)最后一个,我认为是特权讲的时钟落后两拍的原因后面的x_cnt == 10'd440,也说明了这一点。我没能理解的是后面的

reg[4:0] char_bit; //显示位计算

原来的程序我们定义的是:

parameter char_line3 = 24'hfcf8c7,

一共24位,所以是 char_bit <= 5'd23; //显示最高位数据 ,但现在每一个rom_data 只有8位,还能这样 rom_data[char_bit] 写吗?我试了一下貌似是乱码也。还有就是在 .mif初始化文件中的这些数和parameter里面的数是怎么对应起来的。难道 .mif 初始化ROM文件中的数真的要一个一个的填进去吗?如果有几百个那个工程量是很大的,请问有没有什么简

4

www.EDNChina.com

单的方法直接复制粘贴就好。

00 00 00 00 00 00 FC F8 C7 42 44 62 48 42 62 48 42 52 78 42 52 48 42 4A 48 42 4A 40 42 4A 42 42 46 42 44 46 42 44 46 FC F8 E2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

3,如果我想在显示器上全屏显示一张图片,难道要用CASE语句,后面写上 0到479 呵呵,有什么简单方法。我觉得是类似C语言里面的2维数组就可以解决,还有我的 图像的海量数据放到哪里?难道要加个SD卡,那文件系统啊,图像格式的转化啊,又来了。不是一两天能够搞定得。

呵呵,我是个新手,学了不到一个月,以上问题请大家帮我解答一下,以后还有问题,请大家指教。

ilove314 答:

1. 确实应该是wire才符合语法,不可能用reg能通过编译; 2.你自己仿真一下就什么都

清楚了,不要在代码上推来推去; 3.Verilog里面有类似二维数组,但是用起来有很多限制,一般很少用。 查看更多回答与讨论>>

6、如何查看FPGA引脚分布 鱼晒太阳 问:

我在Altra官网上下了datasheet,可是没找到关于FPGA芯片的引脚分布的内容,比如FPGA电源、地、GPIO等,,,求助,谢谢!

ilove314答:

有专门的IO分配资料,好像是个txt文件,你仔细找找。另外,你使用altium design他们提供一些altera fpga的库文件

代号ET答:

下载器件管脚配置文档步骤:一、首先进入Altera官网,然后选择

5

www.EDNChina.com

二、然后在正文的下载栏目中选择第一项“器件管脚列表”(英文为DownLoad列表的 Device Pin-Outs),如下所示:

三、选择你需要的器件,在此假设我选择Cyclone系列的,如下图所示:

6

www.EDNChina.com

中英文显示都一样,然后点击Cyclone进入!

四、选择你所需要器件的具体型号,如:EP1C3T144的PDF文档格式。如下图所示:

五、选择EP1C3T144列表的Pin-Outs(PDF),然后就会显示我们所需要的器件管脚资料。

点击左上角的保存即可将器件管脚资料保存到你的电脑上!

★找Altera器件管脚资料也是我前不久找到的,刚开始也是胡乱搜索,有其他方法的请指教! 查看更多回答与讨论>>

7、关于sd卡初始化的问题 chentianyan 问:

我想问一下,TRC_CLK=6,这意味着是60ns,一个刷新周期不是60ms吗?是我理解错了,还是怎么样?求解释,谢谢

7

www.EDNChina.com

ilove314 答:

这个参数不是刷新周期,具体你去看看SDRAM的datasheet 查看更多回答与讨论>>

8、VGA显示问题 cissy33 问:

1.根据VESA标准,800*600分辨率的频率在60hz左右,网上看到一些源码的频率都是在MHZ级别,实验七VGA实验中用的频率为50MHZ,应该采用哪个数量级的才对? 2.在Nexy3板子上写了一段VGA控制器的代码,链接上显示器无任何显示,重启显示器会出现no signal detected警告,r,g,b,hs,vs等信号在led上能正确输出,请问这是什么原因,附上源码,请指教~

ilove314 答:

标准的VGA时序在实际应用中可能不完全是匹配的,或许还要做些微调 查看更多回答与讨论>>

9、quartusII编译后提示器件不支持怎么办?急!小白求助!Error: Cur 朝阳就要有朝阳的样子 问:

Error: Current license file does not support the EP4CE15F17C8 device 菜鸟一个 求大神帮忙啊! quartus II 11.0

ilove314 答:

英文读不懂吗?你的license不支持该器件,找一个更全的license安装 查看更多回答与讨论>>

10、Quartusii 不能建立Vector Waveform file 是怎么回事 HBBMAKEIT 问:

如图,Quartusii 不能建立Vector Waveform file 是怎么回事

8

www.EDNChina.com

ilove314答:

这个是小儿科的工具,最新的几个版本软件已经取消了。还是乖乖学写testbench吧 查看更多回答与讨论>>

11、求助ise14.3不支持virtex2p吗? 刀锋冷 问:

我新装的ise14.3但是选择器件的时候却没有virtex2p系列那位大神能帮助解决一下吗

ilove314 答:

找他们的技术支持吧,估计14版本的ISE已经没有老器件了 查看更多回答与讨论>>

12、FPGA上电后会自动清零吗? 特全 问:

最近在学习特权同学的视频,在特权同学的串口通信的实验中有这样一段代码:

always@(posedge clk or negedge rst_n) if(!rst_n) num<=13'd0;

else if(num==N-1) num<=13'd0; else if(count_sig) num<=num+1'b1; else num<=13'd0;

9

www.EDNChina.com

我想问一下,FPGA上电时会自动清零吗?如果不能的话,那上电时寄存器num的值是多少?如果上电时num是一个大于N的值,那上面的语句不就没法执行了吗?

JI 答:

上电默认值为0,不是自动清零。

寄存器映射到实际电路,不是0就是1,默认为0 查看更多回答与讨论>>

13、FPGA的接口问题 wenjiaopu 问:

本人想测试所编的程序,将外部信号发生器的电平信号输入到FPGA的I/O引脚,出现的问题是FPGA多少伏为低电平,多少伏为高电平?

如果与DSP相连的话,需不需要加入一些其它电路,还是直接将DSP-PWM口与FPGA 普通I/O用线相连吗?

jlx_cuc 答:

FPGA在分配管脚的时候,是可以选择输入端口的接口的类型的,比如3.3VTTL,那它的高低判断就和TTL标准是一样的 查看更多回答与讨论>>

14、【求助】在工程中选择子模块置顶后编译出错! jlx_cuc 问: 在一个工程中,想看一下其中一个子模块的编译报告,于是将子模块置顶后编译„„结果报错了!!查了很久后才找到原因,不知道大家遇到这样的问题没?

Error: Partition hierarchy \"PN_gen:inst2\" does not exist in the current design or refers to an inferred hierarchy

Error: Partition hierarchy \"TS_gen:inst5\" does not exist in the current design or refers to an inferred hierarchy „„

右键help,Altera给出的解释是:

大致意思就是设定的区域划分没有实体„„建议删除或者重建区域划分。 哪位大牛能仔细给讲讲么?

10

www.EDNChina.com

jlx_cuc 答:

其实,这是由于之前设置了增量编译造成的。详情可参考本人博文 http://bbs.ednchina.com/BLOG_ARTICLE_3007852.HTM

查看更多回答与讨论>>

15、新同学求助 DE2的管脚配置问题 风摇铃曳 问:

大家好 我是新同学 现在在调串口

用的DE2板子 看的是特权同学的串口通信的程序 好像板子不配套 我也不知道怎样去配置管脚 所以想请教大家 先谢谢~ jlx_cuc 答:

芯片型号是什么呢?DEII是自带管脚分配文件的,并且提供了一个配置工具,可直接使用Altera提供的工具自动生成带管脚配置的工程,很方便。

如上图,只不过是IO名称不匹配吧?把名称改过来就好了。

特别是对于LVDS的管脚分配,很多时候Quartus都会出bug,让信号对之间的关联紊乱,所以采用文本形式分配管脚会方便一些。 查看更多回答与讨论>>

16、大神救命呀,急!quartus II 12.1中如何建立矢量波形文件? 小小小菜 问 :

如题?我看很多教程,都是在file---------New 然后选择other files里面就有Vector Waveform File 选项可以选择,我是初学者,以前没用过,刚去altera网站下载的这个quartus II 12.1,找了半天都没有这个选项,请问这个选项在哪里去了?没有的话请问如何进行仿真的?

wdzfd 答:

现在矢量波形文件仿真用的较少了吧,建议楼主用HDL描述

pxx444021003 答:

quartus II 从9.1版本开始就没有自带的 波形仿真了 ! 你可以用ModelSim进行仿真的! 查看更多回答和讨论>>

11

www.EDNChina.com

17、求助!FPGA 如何指定用哪个PLL? JatonLee 问:

我的fpga型号为EP2S180F1020I4,怀疑内部PLL有问题,现在片外有一晶振,想通过PLL分频检查哪个PLL是坏的,但是不知道如何设置用哪个特定的PLL,求高手解答,谢谢

hanyb_xiyou 答:

以将每个PLL的输出引出来,测试下就知道那个坏了呀。 rainsy_edn 答:

PLL设置的对不对 PLL的电源、地是不是焊接好了,有无电压 查看更多回答与讨论>>

18、关于时序优化问题的求教 greenapl1985 问:

之前写了一个FPGA程序,实现HSSL的协议,一直都运行的没有问题,今天上板测,发现接收端一直收不到信号,程序绝对没有改动,硬件也没有问题(因为下其他程序都是好的)目前不知道是什么原因,有一个critical warning: timing requirements not met,不知道会不会对程序产生影响呢,对于这种critical warning不知道要怎么去改,看往上说,设置setup,hold的时间,可是这个时间要怎么给呢?

另外,我的这个问题可能是因为critical warning造成的吗?也太彻底了,什么信号都没有,不过以前虽然是好好的,但经常出现实际数据(通过memory查看)与stp文件探测到的数据不一样的情况,不过都没在意过。

huagongxuezi 答:

这种问题我觉得不太像这个时序优化问题,setup hold time之类的不符合,可能会有错误数据产生,但你这个完全没有工作,有可能是时钟、或者复位信号没加上的现象。你最好测下时钟及复位信号,一级一级的排除问题。不过这个critical warning最好还是解决掉。时序优化还是很有用的,查看时序报告,编辑个sdc文件,以后会用的比较多的。 maybe_or_mustbe 答:

critical warning: timing requirements not met会使得你的程序不稳,严重时会完全彻底不工作。 关于critical warning怎么修改,这个问题有点大,要看你具体使用的是什么开发平台和你的应用程序,建议楼主先在EDN的搜索栏里搜搜\"时序优化\等关键词,里面有很多精彩的博文和帖子,可以供你学习参考。 查看更多回答与讨论>>

19、求助:quartus生成的FIR滤波器为什么编译不过呢 longjf_007 问:

用quartus生成的FIR滤波器 在编译时候出现

Error: Node instance \"fircore\" instantiates undefined entity \"filter2_st\" 请问是怎么回事呢

QUARTUS生成的其他的像RAM这些都能编译好好的呀,就是滤波器这块编译时候出现错误 希望帮我下 谢谢

12

www.EDNChina.com

西瓯骑士 答:

下载 Microsoft Visual C++ 2008 SP1 Redistributable Package (x86) 安装上即可。 查看更多回答与讨论>>

20、quartus报的这些错误是啥意思啊,好多啊 pbwy123123 问:

EPM7128SLC84-15 是俺的芯片

Warning: Macrocell buffer inserted after node \"dataout[53]~reg0\" Warning: Macrocell buffer inserted after node \"dataout[55]~reg0\" Warning: Macrocell buffer inserted after node \"dataout[56]~reg0\" Error: Can't pack LABs

Error: Can't place node \"jsq.state_bit_0\" of type max_mcell Error: Can't place node \"outbit\" of type max_mcell Error: Can't place node \"data[1]\" of type max_mcell

Error: Can't place node \"jsq.state_bit_1\" of type max_mcell Error: Can't place node \"data[3]\" of type max_mcell

Error: Can't place node \"jsq.state_bit_2\" of type max_mcell Error: Can't place node \"data[0]\" of type max_mcell Error: Can't place node \"data[2]\" of type max_mcell Error: Can't place node \"data[4]\" of type max_mcell Error: Can't place node \"data[5]\" of type max_mcell Error: Can't place node \"temp2[3]\" of type max_mcell Error: Can't place node \"temp2[2]\" of type max_mcell Error: Can't place node \"temp2[1]\" of type max_mcell Error: Can't place node \"temp2[0]\" of type max_mcell Error: Can't place node \"temp1[3]\" of type max_mcell Error: Can't place node \"temp1[2]\" of type max_mcell Error: Can't place node \"temp1[1]\" of type max_mcell Error: Can't place node \"temp1[0]\" of type max_mcell

Error: Can't place node \"dataout[53]~reg0\" of type max_mcell Error: Can't place node \"dataout[55]~reg0\" of type max_mcell Error: Can't place node \"dataout[56]~reg0\" of type max_mcell Error: Can't place node \"Selector4~27\" of type max_mcell Error: Can't place node \"Selector2~23\" of type max_mcell Error: Can't place node \"Selector4~35\" of type max_mcell Error: Can't place node \"Selector2~31\" of type max_mcell Error: Can't find fit

Error: Quartus II Fitter was unsuccessful. 27 errors, 3 warnings Error: Peak virtual memory: 161 megabytes

Error: Processing ended: Thu Mar 22 16:41:34 2012 Error: Elapsed time: 00:00:01

13

www.EDNChina.com

Error: Total CPU time (on all processors): 00:00:01

Error: Quartus II Full Compilation was unsuccessful. 29 errors, 3 warnings 测控 答:

这个软件有一个特点,就是前面错了一个地方后面很多地方都会错。其实不是后面的错了,而是编译报错而已,你的这个程序应该是前面有个节点设置错误了,然后后面跟着全部都报错了。再看看你的针脚吧。 查看更多回答与讨论>>

21、问一个signaltap II的问题 ppc68 问:

为什么有的信号在signaltap II里找不到呢,修改了限制条件如:pre-post或者pre- synthesis等都找不到,是什么原因呢? 同样是reg型的信号,好像有的就找不到呀,不知道原因,请高手赐教,谢谢!

maybe_or_mustbe 答:

综合布局会优化你的原始时序逻辑,所以最终网表的逻辑时序的表达方式和你原始文件的方式会有不同,所以网表会修改你原reg的命名是很正常的事情,而pre-post里能找到的都是网表里的命名,你真的要找可以再entry里看看,或者直接打开technology map view 看看你找的reg再网表里的命名变为什么了,再回到pre-post去找。 查看更多回答与讨论>>

22、用FPGA实现ATA控制器,感觉困难,请教大家 nightmara 问:

从网上找的一个OCIDEC的源码,我用的是里面的ata\\rtL\\verilog\\ocidec-1的源码文件,看了一天还是对里面个模块的功能比较模糊,ATA接口信号,还有PIO接口信号各有什么用途,还有atahost_wb_slave.v什么功能,里面信号线很多,刚涉及FPGA的我感觉比较吃力,朋友可以给我大概讲解一下吗,谢谢啦

tyj0423 答: 过时了。。。这个东西是PATA年代用的,。。。现在都是SATA了,建议你了解一下GTP以及SATA协议

查看更多回答与讨论>>

23、求高人解答FPGA接口电平互联问题! hanyb_xiyou 问:

FPGA控制1.8V的AD,AD数据输出采用LVDS格式,FPGA的I/OBANK电压采用2.5V,而控制AD的逻辑电平需采用1.8V,这两种电压可以在同一个I/OBANK中实现吗?

冲出藩篱 答:

14

www.EDNChina.com

不能在一个Bank 中实现2.5V和1.8V,关键看AD的SPEC ,如果不行的话2.5V分下压到1.8V就可以了 paradoxfx 答:

是说不一样的电平直接连接吗,这个有点危险,至少要加个限流电阻 查看更多回答与讨论>>

24、dds如何实现 cheng516328387 问: (1)如何仅仅只用QuartusII软件实现DDS呢??不用MATLAB+Dspbuilder+quartus的模式,即不用在MATLAB的Simlink里面设计模型,仿真再直接由软件Dspbuilder生成代码,不需要手动写代码!

(2)如果可输出三角波,方波,正弦波三种波形 幅度,频率可调。那么在quartus下如何定制正弦波,方波,三角波的ROM呢?? 我看了关于fpga实现DDS方面的内容,可还不大清楚。比如就是一段代码如何实现三角波,方波,正弦波三种波形的产生。在quartus下到底要如何做才算定制了正弦波,方波,三角波的ROM呢??

希望好心人能帮帮我这个菜鸟呀。。。。。。。

paradoxfx 答:

直接调用DDS的IP核啊 查看更多回答与讨论>>

25、能把NIOS和非NIOS的设计共存吗? lcyacp 问:

项目需要在一片FPGA上跑一个CPU的同时,还需要一堆比较复杂的高速数字逻辑,不知道这两个是否能同时共存于一片FPGA上,如果能,是分别设计然后分别下载还是在NIOS的开发环境中就能一次搞定? 谢谢!

tony2512115 答:

我用的是MicroBlaze,在ISE中是可以实现CPU和逻辑程序共存的,方法是在逻辑设计中加入嵌入式CPU IP核,然后与逻辑程序进行顶层例化就可了,然后编译后产生一个.bit文件,一次下载到FPGA就能搞定,相信Altera的工具应该是一样的方法! 查看更多回答与讨论>>

26、求助啊,关于FIFO的满控制问题 MYchenxizhou 问:

1、如果FPGA跟ADC相连,里面设计一个FIFO,若写时钟比读时钟快,FIFO被写满了。此时,是控制FIFO不让写数据了还是控制ADC不让采数据了?

15

www.EDNChina.com

2、我的疑惑是不管控制哪个好像都不太对,如果控制FIFO不让写数据了,那么ADC才回来的数据就会丢失,如果控制ADC不让采数据了,FIFO应该会溢出啊,因为,ADC总不能那么及时得救停止采数吧。请教啊请教

Long.Pershing 答:

如果你真的需要提前量,那就用fifo的almost full之类的信号,提前停止ADC采样。 ppc68 答:

FIFO不会溢出,或者计数在快满的时候停止采集,因为FIFO满信号可能会有延迟,就是不延时也未必能正好停在那 查看更多回答与讨论>>

27、【开发求助】VGA转PAL yaominghero 问:

ad725能否把1024×768的vga信号转换为pal信号,请指教?谢谢?

lu_xin_yu 答:

肯定不行~~~行、场频不同 查看更多回答与讨论>>

28、FPGA 数码管静态显示0到7,verilog的!没能实现! nomember123 问;

我的FPGA 数码管静态显示0到7,verilog的!程序下载到开发板后,没有实现“数码管静态显示0到7”,而且八位数码管只有最后一个是亮着的,总显示“0”,还发出“滴。。。”叫声!

问题出在哪里呀?请高手帮忙解答!

我的开发板是EP2C8Q208C8N开发板,verilog程序如下 //7段数码管测试实验:以动态扫描方式在8位数码管 //“同时”显示0--7

//实验的目的是向用户介绍多个数码管动态显示的方法。

//动态显示的方法是,按一定的频率轮流向各个数码管的COM端送出低电平 //,同时送出对应的数据给各段

module led0_7 (clk,rst,dataout,en);

input clk,rst; //系统时钟50M输入 从12脚输入。 output[7:0] dataout; //数码管的段码输出 output[7:0] en; //数码管的位选使能输出 reg[7:0] dataout; reg[7:0] en;

reg[15:0] cnt_scan;//扫描频率计数器 reg[4:0] dataout_buf;

16

www.EDNChina.com

always@(posedge clk or negedge rst) begin

if(!rst) begin cnt_scan<=0; end

else begin

cnt_scan<=cnt_scan+1; end end

always @(cnt_scan) begin

case(cnt_scan[15:13]) 3'b000 :

en = 8'b1111_1110; 3'b001 :

en = 8'b1111_1101; 3'b010 :

en = 8'b1111_1011; 3'b011 :

en = 8'b1111_0111; 3'b100 :

en = 8'b1110_1111; 3'b101 :

en = 8'b1101_1111; 3'b110 :

en = 8'b1011_1111; 3'b111 :

en = 8'b0111_1111; default :

en = 8'b1111_1110; endcase end

always@(en) //对应COM信号给出各段数据begin case(en)

8'b1111_1110: dataout_buf=0; 8'b1111_1101: dataout_buf=1; 8'b1111_1011: dataout_buf=2; 8'b1111_0111:

17

www.EDNChina.com

dataout_buf=3; 8'b1110_1111: dataout_buf=4; 8'b1101_1111: dataout_buf=5; 8'b1011_1111: dataout_buf=6; 8'b0111_1111: dataout_buf=7; default:

dataout_buf=8; endcase end

always@(dataout_buf) begin

case(dataout_buf) 4'b0000:

dataout=8'b1100_0000; 4'b0001:

dataout=8'b1111_1001; 4'b0010:

dataout=8'b1010_0100; 4'b0011:

dataout=8'b1011_0000; 4'b0100:

dataout=8'b1001_1001; 4'b0101:

dataout=8'b1001_0010; 4'b0110:

dataout=8'b1000_0010; 4'b0111:

dataout=8'b1111_1000; 4'b1000:

dataout=8'b1000_0000; 4'b1001:

dataout=8'b1001_1000; 4'b1010:

dataout=8'b1000_1000; 4'b1011:

dataout=8'b1000_0011; 4'b1100:

dataout=8'b1100_0110; 4'b1101:

18

www.EDNChina.com

dataout=8'b1010_0001; 4'b1110:

dataout=8'b1000_0110; 4'b1111:

dataout=8'b1000_1110; endcase end

endmodule

junjietianya 答:

1,时钟有没有连接到clk,各io端口都连接正确?

2,每次计时时间太短,50M的数到cnt【15:0】只有1ms。 查看更多回答与讨论>>

29、FPGA晶振输出波形问题 linuxp 问:

请问有谁研究过晶振的输出波形吗?我给晶振直接上电,然后用示波器看输出的幅值,结果输出是正负的正弦波,峰峰值为3.3V,但是却是从 -1.6V~1.6V左右,请问这样能驱动FPGA吗?是怎么回事呢?

smarteebit 答:

楼主是不是示波器没设置好啊,交流耦合时就是你这样的测量结果。 查看更多回答与讨论>>

30、FPGA管脚如何分配? lcyacp 问:

听说FPGA的管脚可以随意指定,这是真的吗?那它的VCC,GND也可以随意指定吗? CLOCK或是一些别的东东,I2C,TXD,RXD,这些都可以随意指定吗?

还是是不是也像单片机一样,一些管脚是固定用途的,另一些普通的I/O才可以随意指定? 那些可以指定的应该遵守什么原则呢????

zhli11 答:

VCC,GND固定CLOCK有专用引脚可选,普通IO可互换,但DDR2,GXB有部分引脚相对固定。 查看更多回答与讨论>>

31、SD卡工作模式的问题 wonderlost 问:

有这样一个SD卡的电路图,原理图上说是工作在SD模式,请问能不能将DAT1,DAT2不接引脚,让SD卡工作在SPI模式下呢?

19

www.EDNChina.com

daxiadian 答:

可以的,那两个引脚不接就是了! 查看更多回答与讨论>>

20

www.EDNChina.com

因篇幅问题不能全部显示,请点此查看更多更全内容