关于verilog代码在FPGA上实现的问题

是不是先根据设计要求写出verilog代码,(前仿真和验证就不说了)然后再用基于目标FPGA的综合软件综合,生成网表,布局布线,后仿真什么的,是这样吧?
这个综合过程是不是就是自动生成硬件电路的过程,不需要人工设计电路图吧,只要在硬件电路图生成之后根据网表布线就好了吗?
另外,我看到过FPGA管脚分配选择的问题,这个是怎么回事呢?不是不用自己设计硬件电路吗?怎么会有选择管脚这一步呢?希望高手赐教,谢谢!!!
大家能说的浅显易懂一点吗?
我记得有一种叫做查找表结构的实现方法,就是FPGA自动找到符合你设计的输入输出引脚进行分配,是这个意思吗?这不也不用人工选择管脚吗?

哈哈,自己写好代码就可以了,由软件自动造成网表。
布局,布线也是由软件自动规划在FPGA芯片里面的连接问题。(注意是芯片里面的连接)规划好了,下载进芯片的话,芯片里面就是那种规划的结构了
(理解成没有下载程序的芯片是一张白纸)。

至于管脚分配就举个例子吧,假如你写了一个2选一的选择器。
输入端口有a,b,sel.输出口有c
你得把a,b,sel,c分配到FPGA芯片上的具体某个管脚。
下载完后,芯片上那几个脚就相当于这个选择器的脚了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-09-27
FPGA也是一个芯片啊,你要把外部信号引入到系统中,输出信号肯定要有引脚啊!
第2个回答  2010-09-28
如果是初级的应用,一般只要实现RTL级的实现就可以了。比如你用的是altera的FPGA/CPLD,只要在quartus的环境里新建Verilog文件,并进行verilog程序的编写(严格意义上不能称之为程序,因为他对应的是具体的硬件,如门电路)。经验证之后,quaruts软件会自动进行布局布线,你只需把编译好的文件(pof或sof)烧写进FPGA或者EPCS就可以进行调试了。
如果是高级的应用,一般指高速应用,那你需要对quartus的综合进行时序约束(Timequest或者classic),再之后还是交给软件自己执行,当然再复杂的话也可以对具体的寄存器等进行布局限制(使用Chip Planner或Technology Map Viewer)。
总之,繁杂的布局布线过程大体上是交给EDA软件自动完成,有点类似Altium Designer的自动布线。人为地参与可以根据应用的复杂程度适当增加,一般除100M以上,或读写DDR这种对时序要求很高的应用外,不用人工参与。
至于引脚的问题,除了特殊管脚如VCC、PLL等,一般的IO是根据你的PCB来定,PCB怎么走线方便怎么配置。可以通过“assisgnments-》pins”或者TCL文本来设置引脚。
第3个回答  2010-10-04
FPGA是硬件的东西,硬件一般都有输入输出的。FPGA内部的布线都是自动完成的,外部的管脚同FPGA的连接需要通过管脚定义来指定。
比如说你用FPGA连接一个LED灯,通过FPGA内部逻辑控制LED的亮灭。(不妨说这个LED灯连接在FPGA的第10个管脚上,这样就需要指定FPGA内部控制LED的信号连接在FPGA的第10个管脚上,这步操作就是管脚锁定。
第4个回答  2021-02-02

使用Verilog语言,在FPGA开发板上,做出一个简易密码锁

verilog编写计算器,然后下载到FPGA上怎么实现
怎么写加法的代码就不用说了吧?你应该会的,很简单。代码如下 module add(clk,rst,a,b,sum);input clk,rst;input [7:0] a,b;output [8:0] sum;always @(posedge clk or posedge rst)if(rst)sum <= 9'd0;else sum <= a + b;endmodule 做加法用二进制还是十进制是无所谓的。...

FPGA纯verilog代码实现图像对数变换,提供工程源码和技术支持
使用MATLAB生成log系数,转换为.coe文件,再通过Verilog代码固化为查找表,形成log系数表。借助FPGA实现图像对数变换,只需将图像像素与查找表一一对应输出。顶层Verilog代码负责实现这一流程。使用Vivado与MATLAB联合仿真,展示变换效果。仿真结果表明,变换后的图像对比度提升,暗部细节明显增强。Vivado工程设计包...

一个小实验:如何利用Verilog语言使用FPGA控制数码管动态显示字符串...
基于此,开发板上的FPGA需要控制两个功能:一是实现视觉残留效应,快速逐次点亮六个数码管,形成连续显示图像;二是定时改变图像内容,即在位选信号输出时,I\/O口的段选信号相应改变。为了完成这一目标,我们需要两个独立时钟信号控制。一个频率较高,用于控制快速逐次点亮功能;另一个频率较低,用于定时...

FPGA高端项目:纯verilog的 25G-UDP 高速协议栈,提供工程源码和技术支持...
第三,一些方案使用了Xilinx的Tri Mode Ethernet MAC三速网IP,尽管功能强大,但同样面临源码缺失的问题。第四,使用FPGA的GTX资源通过SFP光口实现UDP通信,这种方案便捷且无需额外网络变压器。最后,真正意义上的纯verilog实现的UDP协议栈,即全部代码均使用verilog编写,不依赖任何IP,这种方案在市面上较少...

本人FPGA verilog 初学者,近日写程序遇到问题,向各位大神请教。_百度知 ...
按照你上面的程序,这个警告是对的,你的L只是在上电延时一段时间直接是高电平不变了。如果你是这样设计的就不要管Warning (13410): Pin "L" is stuck at GND。

如何用Verilog语言使得FPGA输出一个时钟信号
你可以定义 wire out_clk;assign out_clk=clk;还有一个比较重要的问题,你这个模块没有输入时钟,你那个clk<=~clk;是运行不了的,你需要定义一个input的输入时钟,如果仿真时 需要写 :#时间 clk<=~clk;并且在initial 定义clk=0;或者clk=1;的初值。

不能被综合的Verilog语句能烧写到FPGA里面吗?
1、可以在RTL里面查看 2、只要正常全局编译通过,就可以配置到FPGA中 3、VERILOG中有很多不可综合的语句是用来仿真的,部分可综合语句,由于设计者使用原因,也有可能不被综合。有些语句也有可能被编译器优化了,没被综合。从事音频设备开发好多年——VX:xuquanfugui-2020 ...

14,FPGA_Verilog基础篇:移位与拼接实现
本文旨在深入探讨Verilog中的移位与拼接实现,这两项操作在FPGA设计中扮演着重要角色。通过理解它们的应用,我们可以更高效地进行硬件描述语言的编写,实现复杂的功能。移位操作是Verilog中用于位操作的关键手段,包括逻辑移位、算术移位和循环移位。逻辑移位只影响数据的位顺序,而算术移位则考虑了数值的符号位...

labview编译fpga卡住
1、顶层名称与edf网表名称不匹配:LabVIEWFPGA需要确保顶层名称与edf网表名称相匹配,否则会导致编译错误。2、Verilog代码的规范性问题:NI的FPGA编译器对Verilog代码的支持有限,特别是对于不规范的Verilog代码。如果遇到编译错误,可以尝试使用更规范的Verilog代码或者尝试使用VHDL语言。3、底层Xilinx编译器错误...

如何用verilog语言在fpga中实现双向数据总线?
inout [8:0] data = read_en ? data_read : 8'bz;只要让数据总线在读有效的时候等于你模块内部的由地址线决定的要读出的数据,其他时间保持高阻态即可。至于写数据,直接取data值就行了。还有什么不明白的可以加我QQ问我。

相似回答