
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、verilog学习手记一设计输入(verilog语言描述系统) 前仿真(验证设计系统的功能) 编译和综合(把设计的各个部分翻译成一个中间格式,再把全部部分衔接起来,生成对应的规律,然后再目标硬件上布局布线,生成时序信息) 后仿真(考虑时序信息,修改设计) 生成硬件电路 所谓的寄存器传输级(rtl)描述指的就是:数据在总线以及寄存器与寄存器之间的传递,用高层次的语法来描述一个所要设计的系统,将这个设计分成若干小模块,用总线将其衔接搭建起来,然后再描述以及实现这些小模块的设计办法。 用rtl级描述verilog结构包括三种形式: 过程解释:过程化的描述系统,例如用法if ee和case等过程结构;
2、 延续赋值:描述系的规律块,总线赋值和总线输入、输出互联线; 例化解释:高层次的设计挺直引用低层次的模块,用低层次的原件挺直搭建一个完整的系统。 所谓前仿真:即是不考虑系统的线延迟、门延迟等时序问题(竞争冒险,毛刺,建立保持时光),而仅仅是想从行为上推断系统是否能够达到设计目的;后仿真则是针对建立的硬件模型,要考虑完整的时序信息(又编译和综合生成),如时光延迟、时钟频率、门级延迟、电路的建立保持时光等问题,重新仿真,以便修改设计。 rtl的设计首先将设计分成数据部分以及控制部分。数据部分又叫数据单元、数据通道:包括寄存器、组合规律单元、寄存器阵列、衔接它们的总线,它的输入输出来自外部,控制信号
3、来信控制单元,同时也可以反馈给控制单元控制信号;控制部分又叫控制单元,通常由一个或多个状态机构成,接受并反馈给外部控制信号。如下图(1)所示: 图(1) verilog模块的描述方式: 原语例化:所谓原语(基元)指的是最基本的规律门。该方式就是在设计中挺直调用这些原语。 延续赋值:用布尔表达式来描述规律关系,常用assign语句举行赋值。 条件表达式:w = s ? a :b ,若s=1,则w=a;否则,w=b。 过程块: 常用always,if else和case等过程结构。 模块例化: 将自己设计的模块当做原语调用。该方式要注重调用模块的实际端口要与电路中的信号端口要对应精确。例如:全加器
4、full_aer(input a,b,output m,count), 举行模块例化为 full_adder u1(.a(u1_a),.b(u1_b),.sum(u1_sum),.count(u1_count),书写格式为: 以(.)开始,后面紧跟调用模块的实际端口,括号内书写电路中的信号端口。 或者例化为; full_adder u1(u1_a,u1_b,u1_sum,u1_count), 格式为:根据对应位置书写。 wire与reg类型的区分: wire型数据常用来表示以assign关键字指定的组合规律信号。模块的输入输出端口类型都默认为wire型。默认初始值是z。 reg型表示的寄存器类
5、型。always模块内被赋值的信号,必需定义为reg型,代表触发器。 默认初始值是x。 reg相当于存储单元,wire相当于物理连线。 verilog 中变量的物理数据分为线型和寄存器型。这两种类型的变量在定义时要设置位宽,缺省为1位。变量的每一位可以是0,1,x,z。其中x代表一个未被预置初始状态的变量或者是因为由两个或多个驱动装置试图将之设定为不同的值而引起的矛盾型线型变量。z代表高阻状态或浮空量。 线型数据包括wire,wand,wor等几种类型在被一个以上激励源驱动时,不同的线型数据有各自打算其终于值的辨别方法。 两者的区分是:寄存器型数据保持最后一次的赋值,而线型数据需要持续的驱动
6、输入端口可以由net/reg驱动,但输入端口只能是net,如a = b c,输入端口a 只能是net型,但其驱动b,c可以是net/reg型;输出端口可以是net/reg类型,输出端口只能驱动net,如a = b c,模块的输出端口b,c可以是net/reg型,但它们驱动的a必需是net型;若输出端口在过程块(always/initial)中赋值则为reg型,若在过程块外赋值则为net型。用关键词inout声明一个双向端口, inout端口不能声明为寄存器类型,只能是net类型。 wire表示直通,即只要输入有变幻,输出马上无条件地反映;reg表示一定要有触发,输出才会反映输入。 不指定就默认
7、为1位wire类型。特地指定出wire类型,可能是多位或为使程序易读。wire只能被assign延续赋值,reg只能在initial和always中赋值。wire用法在延续赋值语句中,而reg用法在过程赋值语句中。 在延续赋值语句中,表达式右侧的计算结果可以立刻更新表达式的左侧。在理解上,相当于一个规律之后挺直连了一条线,这个规律对应于表达式的右侧,而这条线就对应于wire。在过程赋值语句中,表达式右侧的计算结果在某种条件的触发下放到一个变量当中,而这个变量可以声明成reg类型的。按照触发条件的不同,过程赋值语句可以建模不同的硬件结构:假如这个条件是时钟的升高沿或下降沿,那么这个硬件模型就是一
8、个触发器;假如这个条件是某一信号的高电平或低电平,那么这个硬件模型就是一个锁存器;假如这个条件是赋值语句右侧随意操作数的变幻,那么这个硬件模型就是一个组合规律。 wire型的变量综合出来普通是一根导线;reg变量在always块中有两种状况: always后的敏感表中是(a or b or c)形式的,也就是不带时钟边沿的,综合出来还是组合规律 always后的敏感表中是(posge clk)形式的,也就是带边沿的,综合出来普通是时序规律,会包含触发器(flipflop) 在设计中,输入信号普通来说你是不知道上一级是寄存器输出还是组合规律输出,那么对于本级来说就是一根导线,也就是wire型。而
9、输出信号则由你自己来打算是寄存器输出还是组合规律输出,wire型、reg型都可以。但普通的,囫囵设计的外部输出(即最顶层模块的输出),要求是寄存器输出,较稳定、扇出能力也较好。 verilog延迟语句的运用 mole full_adder(a,b,sum); input a,b; output reg sum; always (a,b) 13 sum = (a b) ; 或者 always (a,b) sum = 13 (a b) ; endmodule 注重到两个always语句的延迟语句的位置不同,后一个语句称为内部指定延迟。 第一个always语句解释在a或b变幻后,先堵塞运行,延迟13
10、ns,再按照当前的a,b的值,计算sum的值。这就导致计算得到的sum值可能与13ns之前的不一样。 其次个always语句表示的是a或b变幻后,立刻计算当前的sum值,13ns后将该值赋给sum,得到的是13ns之前的值。 在相同的testbeh下仿真: module test_fulladder; / inputs reg a; reg b; / outputs wire sum; / instantiate the unit under test (uut) full_adder uut (.a(a), .b(b), .sum(sum) ); initial begin / initialize inputs a = 0; b = 0; / wait 100 ns for global .html' target='_blank'>reset to finish 10 a =1; 11 b =1; 11 a =0; 25 a = 1; / add stimulus here end endmodule 结果如下: 第一个always语句对应的图 其次个always语句对应
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 遵义医科大学《语言艺术与写作》2023-2024学年第二学期期末试卷
- 湘中幼儿师范高等专科学校《绘画基础(油画)》2023-2024学年第一学期期末试卷
- 北京市东城区普通校2025届高三下学期期末学分认定考试语文试题试卷含解析
- 大理农林职业技术学院《俄语笔译》2023-2024学年第二学期期末试卷
- 东北电力大学《风景园林学科及行业进展》2023-2024学年第二学期期末试卷
- 吉林体育学院《工程管理软件应用》2023-2024学年第二学期期末试卷
- 鄂尔多斯应用技术学院《建筑安全技术及管理》2023-2024学年第二学期期末试卷
- 大连理工大学城市学院《概率论与数理统计II》2023-2024学年第二学期期末试卷
- 哈尔滨工程大学《移动终端开发技术》2023-2024学年第二学期期末试卷
- 洪湖市2025年五下数学期末教学质量检测模拟试题含答案
- 提升教师数字素养培训方案
- 2024年中国邮政集团江西分公司招聘笔试参考题库含答案解析
- 急诊科培训急诊转诊的协调和沟通
- 关键工序特殊过程培训课件精
- 坑机安全操作规程范本
- Elements几何原本(中文版)
- 福建省小学休学申请表
- 区法院权力运行外部流程图(竖版)
- 1.潘月杰BEST管理沙盘-四川国企
- 生产设备定期保养记录
- 气瓶安全管理与使用课件
评论
0/150
提交评论