×

Verilog基础入门

前端技术网 前端技术网 发表于2024-01-29 01:57:31 浏览2919 评论0

抢沙发发表评论

一、关于学习verilog的问题,高分悬赏!希望大家帮助!

首先,我是一名FPGA编程人员,并不是什么外行;

我逐点回答:

Verilog基础入门

1.Verilog并不难学,只要肯下功夫,3个星期就能入门,主要还是要多动手编程;

2.参考书一般就两本:(1)夏宇闻编《Verilog数字系统设计教程》;(2)【美】J.BHASKER编写的原名为《A Verilog HDL Primer,Third Edition》,夏宇闻,甘伟翻译的中文名为《Verilog HDL入门》这本书。先学(1),再学(2);

3.只要懂数字电路的基本知识就可以,如果想以后有大发展,可以学一些数字信号处理或者信息论与编码理论的知识;

4.一块好的开发板,一般是Altera公司的。不过前期无须购买,等语言学的差不多了再上板子,前期学习都是仿真为主。

最后我再加一点:

5.开发环境可以用QuartusII8.1版本,配合ModleSim6.5g版本仿真,你很快就可以靠它吃饭了。

Verilog基础入门

祝你学习愉快!

二、verilog基础

学习Verilog语法

模块定义、接口定义、模块例化、寄存器定义、线定义、always块

Verilog与软件语言最大的区别:他是描述电路的,写法固定。从基础开始,一点点积累类似计时器、译码器这样的小型电路描述方法很重要!

verilog鼓励在电路中创新,不是在描述方法上创新。

学习FPGA的重要理念:正确的设计!=正确的RTL,而是“正确的设计==正确的RTL+正确的时序约束”

正确的时序约束通常包括管脚约束和时钟约束

Verilog抽象级别:行为级、 RTL级、门级、开关级

行为级:有关行为和技术指标模块

RTL级:有关逻辑执行步骤的模块

门级:有关逻辑部件互相连接的模块

开关级:有关物理性状和布局参数的模块

逻辑功能定义:assign声明、实例元件、always块

assign语句是描述组合逻辑最常用的方法之一

always块既可以描述组合逻辑也可以描述时序逻辑。

三、我入门级的FPGA学习者,学FPGA还是Verilog

FPGA是你要用到的工具,而Verilog是你在使用FPGA时所运用语言。也就是说,在你设计一个项目之前,你要先通过verilog语言吧他描述出来(也就是写代码),然后再通过软件(如ISE)将代码移植到FPGA开发板上进行验证(用眼睛看)。你所要研究是应该是FPGA设计,将来要干的职位是:FPGA硬件开发工程师,那么现在你要学的书有两个,1是verilog HDL设计技术,2是数字电路设计。问题补充:硬件语言常用分为两种verilog是一种,还有一种是VHDL。祝你好运!~

四、请教Verilog的基础知识~

A=0;//初始化A的值

B=0;//初始化B的值

case(ADDRESS)

5'b00???: A=1;//只要高两位为00,不管低三位是什么,都让A为1

5'b01???: B=1;//只要高两位为01,不管低三位是什么,都让B为1

5'b10?00,5'b11?00://如果最高两位是10或者11,第3位不管是什么,最低两位是00的话,执行下面的语句块,其实,完全可以用5'b1??00代替,如果你不在乎高阻态和未知态的话!

begin

A=1;//给A赋1

B=1;//给A赋1

end

endcase

解释:想算对结果,必须得理解阻塞赋值的特点才行。

阻塞赋值的特点是如果对一个信号两次赋值的话,第二次赋值有效。刚开始的时候你赋初始值都为0,然后会根据ADDRESS的值对A和B的值进行改动,这时如果你的ADDRESS为5'b00???,所以仅对A进行了第二次赋值,赋为1,而B没有变化,这也就是你的结果。

学习verilog,我觉得首先要分清阻塞赋值和非阻塞赋值的区别,很重要,不过只要是verilog的资料都会有说这方面的。

感谢您花时间阅读本文!我们希望通过对Verilog基础入门的问题进行探讨,为您提供了一些有用的见解和解决方案。如果您需要更多帮助或者有其他疑问,请不要犹豫与我们联系。