虽然学过一段时间的Verilog,但有些相关的问题还是不怎么明白
发布网友
发布时间:2022-05-12 01:36
我来回答
共3个回答
热心网友
时间:2023-11-01 23:44
1.#10一般在test仿真文件里使用,表示延迟10个单位时间
2.`define是宏定义,它的一般形式为:`define 标识符(宏名)字符串(宏内容)
如`define signal string,它的作用是指定用标识符signal来代替string这个字符串,在编译预处理时,把程序中在该命令以后所有的signal都替代称string。这个方法使用户能以一个简单的名字代替一个长的字符串,也可以用一个有含义的名字来代替没有含义的数字和符号。
$display(p1,p2,...,pn);作用是用来输出信息,即将参数p2到pn按参数p1给的格式输出。
在QuartusII上进行仿真,就要建立一个wave文件,
在modelsim上进行仿真,就必须再写一个test文件,然后编译仿真
3.你可以去下载FPGA设计培训指导手册,里面有例子,可以按着例子一步一步的做下来,我也是这么做的《FPGA设计初级班培训实验指导手册》《FPGA设计提升班培训实验指导手册》
参考资料:verilog数字系统设计教程
热心网友
时间:2023-11-01 23:44
1.begin areg = breg; #10 creg = areg; //在两条赋值语句间延迟10个时间单位。 end
一般用于对时序有严格的要求
2.Verilog HDL语言*有以下一些系统函数和任务: $bitstoreal, $rtoi, $display, $setup, $finish, $skew, $hold。 $setuphold, $itor, $strobe, $period, $time, $printtimescale。 $timefoemat, $realtime, $width, $real tobits, $write, $recovery。 在Verilog HDL语言中每个系统函数和任务前面都用一个标识符$来加以确认。这些系统函数和任务提供了非常强大的功能。
define跟C语言类似,用于定义的。
$display (p1,p2,....pn); $write (p1,p2,....pn); 这两个函数和系统任务的作用是用来输出信息,即将参数p2到pn按参数p1给定的格式输出。参数p1通常称为“格式控制”,参数p2至pn通常称为“输出表列”。这两个任务的作用基本相同。$display自动地在输出后进行换行,$write则不是这样。
3.你可以试试自己焊板子连接到FPGA、CPLD上完成综合型的系统设计,这样你才会提高。
其实你之前提到的那些译码器,计时器等都是一些很简单的功能,CPLD、FPGA开发板还有其他强大的功能。详细可以参考
[1] Alter公司.Quartus II Getting Started,1997
[2] Alter公司.Quartus II Handbook,2007
[3] 宋万杰,等.CPLD技术及其应用[M].西安:西安电子科技大学出版社,1999.
[4] 夏宇闻.Verilog数字系统设计教程[M].北京:北京航空航天大学出版社,2007.
热心网友
时间:2023-11-01 23:44
1. 这个是在仿真中用的,延时10个单位
2. 'define就和C语言的define一个用法, $display一样是用于仿真的。10us/1us是说一个时间单位为10us但是精度是1us啦
3. 我感觉有开发板就能学好,关键是想学啦,你可以学学NIOS II,这个很强大也很好用。你可以试试低级建模啊,根据这个做做不错,可以搜索特权同学的视频,一步步跟着视频做不错。还可以去黑金开发板的论坛下载他们的教程,verilog那些事儿系列,学习下。最后有个实际项目做做是最好啦