




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、注释无法直接打出中文,用文本编辑器打出后复制到注释处Quartus起名要求总共涉及到的名字有工程名,模块名,具体描述模块的Verilog文件名,原理图文件名。工程名为A,那么最终需要编译的文件的名字必须和工程名相同。只能将最终需要编译的原理图命名为A(可能一个工程下不只一个原理图,要将最后仿真需要的总原理图命名为A),而模块名一定不能为A。在Verilog程序中描述模块时,可以给模块起名为B,程序完成后不需要编译,直接create symbol,在一个Verilog程序中可以定义多个模块,名字均不同,并且可以在一个模块中使用其他的模块,在create symbol时程序中有几个模块就会相应产生
2、几个器件。这个Verilog程序文件(.v文件)的名字可以为A或不为A。总之:工程名为A,最终要编译的总原理图名一定要为A,原理图中使用的各模块名一定不能为A,定义这些模块的Verilog文件名可以为A或不为A。建立相应的文件block diagram/schematic file 建立原理图、表模块文件vector waveform file 建立矢量波形文件,保存后仿真,分为功能仿真与时序仿真,功能仿真忽略了延时,时序仿真加上了延时方法:assignments-settings,在simulation mode 中选择functional是功能仿真,timeing是时序仿真设置完成后,要生
3、成功能仿真网络表processing-generate functional simulation netlist再点击按钮进行仿真规划引脚分布:assignmentspin planner(必须要选定器件才能规划引脚)触发器D:Q*=DJK:Q*=JQ+KQT:Q*=TQ+TQSR:Q*=S+RQ混合编辑自底向上:建立工程,建立2个(或以上)所需的VerilogHDL文件,并输入代码保存。创建图元:file-creat/update-creat symbol files for current file,生成.bsf格式的图元文件。再新建原理图文件,上述图元文件就可以添加进原理图文件中了。自
4、顶向下:建立工程,建立原理图文件,放置符号块(block tool),在block properties中设置名字、I/O类型等,添加模块引线(node tool/ bus tool等)并设置属性(general选项卡设置I/O类型,mappings设置连线节点名称)。右击符号块选择create design file form selected block,选择verilogHDL语言,单击OK,在生成的“.v”文件中修改代码VerilogHDL语言都是以module开始以endmodule结束的一段程序Module<模块名>(<端口列表>)<定义><
5、;模块条目>endmodule其中注意:工程名,verilogHDL文件名,模块名要相同才不会报错。Assign连续赋值语句,一直检测等式左右两端变量,一旦其中一个发生变化,就重新赋值并传给等式左端输出。在一个VerilogHDL文件中调用子模块:3个方法法一:首先建立工程(eg.lm),再建立VerilogHDL文件(lm),编写完成后将其设置为顶层文件,project -set as top level entiey。再建立VerilogHDL文件(ll),当做子文件。即可在lm中调用ll了。VerilogHDL区分大小写;并且包含102个关键词,关键词必须小写Parameter(小
6、写)进行参数声明,eg:parameter param1=count,BIT=1;可以声明数字也可以是计算表达式。预处理命令:见VerilogHDL程序设计与应用P19include中的是键盘左上角1旁边的那个键在英文状态下的输入法二:include "F:quartusexercise4调用子模块ll.v"module lm(in1,in2,out);input in1,in2;output out;wire w1;ll ll1(in1,in2,w1);ll ll2(w1,w1,out);endmodule法三:等价于module ll(in1,in2,out);inpu
7、t in1,in2;output out;assign out=(in1&in2);endmodule module lm(in1,in2,out);input in1,in2;output out;wire w1;ll ll1(in1,in2,w1);ll ll2(w1,w1,out);endmoduleO(o)八进制 B(b)二进制 D(d)十进制 H(h) 十六进制 线网的声明语法:net_kind msb:lsb net1;Net_kind是网线类型,msb:lsb 定义网线宽度,不写默认是1(2:0宽度为3) net1网线变量的名称具体语句赋值总是从最低位(右侧)开始向最高位
8、进行,任何多余的位都会被截断。有两种赋值方法:一是“=”阻塞赋值,相当于串行,必须执行完这一句才能完成下一句;二是“<=”非阻塞赋值,看成并行,与下一句可以同时执行;但是只能给寄存器赋值。If条件语句下没有大括号,用begin-end来代替用if语句最好加上else,用case,最好加上default,防止出现锁存器。Begin If()q=d;end (1)1产生了锁存器,因为在不满足时无定义,q还要保持原先的值Begin if() q=d;else q=0;end (2)2没有锁存器。在不满足时,q被赋值为0.顺序语句块Begin-end并行语句块:并行执行,与书写顺序无关Fork
9、- joinCase语句:多选一Case(判断)A:-;B:-;Default:-;EndcaseCasez语句:条件表达式和分支表达式的值z被认为是无关值。Casex:x,z被认为无关Casez(Ask) 4b1?:bus1=0; /ask第一位为1,忽略其他位,bus1赋值04b01?:bus0=0; endcase/ask第2位为1,忽略其他,bus1赋值1.Initial语句只执行一次,一个模块可含多个initial,并行执行Always语句只要满足规定的条件,就一直执行;而initial语句整个仿真过程就执行一次。always (*) /后加敏感信号列表,加*是省略Always #5
10、 clk=clk;时延五秒后再执行并且可以用控制always语句的发生:always (A)/语句发生的条件是A发生(有值改变)。定义边沿出发事件,有电平跳变就执行。Wait控制电平敏感事件。(negedge A)B=$time;/在A的下降沿执行把当前时间赋给B;/negedge下降沿;posedge上升沿Always Wait () -;end 等待值为1,向下执行。屏幕显示display,输出会自动换行$display(”-is %b”,A);/屏幕显示-is A$write(“-”)/输出不会自动换行,要加换行符n循环语句Forever永远执行Repeat(loop_count)语句;
11、loop_count控制循环次数While带条件循环表达式For类似C语言画原理图可以画出如图a的波形将图中的起始值进行更改即可位与和逻辑与&&是逻辑与 即判断&&两侧的表达式是否都为真,都为真则此&&表达式值为真;& 是按位与 即将&两侧的数用二进制展开,每一位都求与运算(二进制与运算,跟逻辑与差不多),最后得到的二进制数即为结果;逻辑与结果只讲真和假,而按位与得出的却是实实在在的一个数数据流描述:采用assign连续赋值语句行为描述:使用always语句或initial语句块中的过程赋值语句结构化描述:实例化已有的功能模块或原
12、语(include”-.v ”.)四位全加器数据流描述module Full_Add_4b_1( A, B, Cin, Sum, Cout ); input3:0 A;input3:0 B; input Cin; output3:0 Sum; output Cout; assign Cout, Sum = A + B + Cin; endmodule行为描述module Full_Add_4b_2( A, B, Cin, Sum, Cout );input3:0 A; input3:0 B;input Cin; outp
13、ut3:0 Sum; output Cout; reg 3:0 Sum; reg Cout; always (A or B or Cin) begin Cout, Sum <= A + B + Cin; end endmodule基于时序逻辑的时候就用reg,组合逻辑一般用wire。always中只能用reg,才能对其赋值。Always模块内要被赋值的每一个信号都要定义为reg16b1010_1011_1111_1010 “_”用于每四位数之间,增加程序可读性。Parameter定义一个标识符代表一个常量。Parameter A=3.14Memory类型Reg n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏扬州历年中考作文题与审题指导(2006-2023)
- 保时捷应聘测试题及答案
- 2024年纺织品检验员学习方法试题及答案
- 张衡传教学课件
- 服装与实际穿着体验的结合试题及答案
- 病原检测面试题目及答案
- 安全测试面试题目及答案
- 商业美术设计师市场推广试题及答案
- 2024年纺织品检验员考试亮点试题及答案
- 提升考试水平的国际商业美术设计师试题及答案
- 2024至2030年中国高密度聚乙烯树脂行业投资前景及策略咨询研究报告
- 仿制药与原研药竞争分析
- 脑洞大开背后的创新思维学习通超星期末考试答案章节答案2024年
- 科傻平差软件说明指导书
- 临时聘用司机合同范本
- ipo上市商业计划书
- 抖音短陪跑合同范本
- HJ 636-2012 水质 总氮的测定 碱性过硫酸钾消解紫外分光光度法
- 山东省青岛市市北区2023-2024学年七年级下学期英语期末考试试题
- 现代风险导向审计在天衡会计师事务所的应用研究
- 拔牙技巧必成高手
评论
0/150
提交评论