- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1 端口的位宽最好定义在I/O说明中,不要放在数据类型定义中;Example1:module test(addr,read,write,datain,dataout)input[7:0]?datain;input[15:0] addr;input? ? ? read,write;output[7:0] dataout;?//要这样定义端口的位宽!wire addr,read,write,datain;reg?dataout;Example2:module test(addr,read,write,datain,dataout)input?datain,addr,read,write;output dataout;wire[15:0] addr;wire[7:0]?datain;wire? ? ? read,write;reg[7:0]? ?dataout;? ?// 不要这样定义端口的位宽!!2 端口的I/O与数据类型的关系:? ?端口的I/O? ? ? ? ?端 口 的 数 据 类 型? ? ? ? ? ? ? ?module内部? ?module外部? ? ?input? ? ? ? ?wire? ? ? ? wire或reg? ? ?output? ? ? ?wire或reg? ? ? ?wire? ? ?inout? ? ? ? ?wire? ? ? ? ? ?wire3 assign语句的左端变量必须是wire;直接用=给变量赋值时左端变量必须是reg!Example:assign a=b; //a必须被定义为wire!!********begin? ?a=b; //a必须被定义为reg!end4 有异步置位/清零的时序逻辑? ?异步置位/清零是与时钟无关的,当异步置位/清零信号到来时,触发器的输出立即被置为1或0,不需要等到时钟沿到来才置位/清零。所以,必须要把置位/清零信号列入always块的事件控制表达式。? ? always @( posedge CLK or negedge RESET)? ? ? begin? ? ? if (!RESET)? ? ? ??Q=0;? ? ? else? ? ? ? Q=D;? ? ? end5 有同步置位/清零的时序逻辑? ? 同步置位/清零是指只有在时钟的有效跳变时刻置位/清零,才能使触发器的输出分别转换为1或0。所以,不要把置位/清零信号列入always块的事件控制表达式。但是必须在always块中首先检查置位/清零信号的电平。? ? always @( posedge CLK )? ? begin? ? ? if (!RESET)? ? ? ??Q=0;? ? ? else? ? ? ? Q=D;? ? ? end6 (1)过程块initial和always语句中赋值称为过程赋值,等号左边的变量类型是 reg;等号右边的变量类型可以是任何有效表达形式。 (2)assign语句中,等号左边的变量类型是 wire。wait(变量或表达式事件),等待直到事件为真(1)执行后续语句。(4)- 操作符用来触发命名事件。78910有四种循环语句:repeat:将一块语句循环执行确定次数 repeat (次数表达式) 语句while:在条件表达式为真时一直循环执行 while (条件表达式) 语句forever:重复执行直到仿真结束 forever 语句for:在执行过程中对变量进行计算和判断,在条件满足时执行 for(赋初值;条件表达式;计算) 语句 //利用;隔离11任务(task) 一般用于执行调试操作,或者行为的描述硬件 可以包含时间控制(# delays, @, wait) 可以包含input, output 和 inout参数 可以调用其他的任务或函数函数(function) 一般用于计算,或者用来代替组合逻辑 不能包含任何延迟;函数在零时间执行 只能使用input参数,但可以通过函数名来返回一个值 可以调用其他的函数,但不可以调用任务任务说明:(1)传递给任务的参数与任务I/O声明参数的顺序相同。虽然传递给任务的参数名可以和任务内部I/O声明的参数名相同,但是为了提高任务的模块化程度,传递给任务的参数名通常不使用与任务内部I/O声明的参数名相同的参数名。(2)不要在程序的不同部分同时调用同一个任务。这是因为任务只有一组本地变量,同时调用两次将会导致错误。这种情况通常发生在使用时间控制的任务中函数说明:(1)函数必须含有输入,但不能含有输出或双向信号(2)函数中不使用非阻塞赋值语句(3)一个函数只能返回一个值,该值的变量名与函数同名,数据类型默认为reg类型(4)传递给函数参数的顺序与函数输入参数声明的顺序相同(5)函数不能调用任务,但任务可以调用函数。(6)虽然函
您可能关注的文档
最近下载
- 海尔集团资本运营案例研究.pptx VIP
- 幼儿园课件:绘本《太阳想吃冰淇淋》.pptx
- 锅炉安全操作培训记录.docx VIP
- 流感样病例暴发疫情处置指南(2022版).docx VIP
- 李坚贞忠之士贞.pptx VIP
- SL 670-2015 水利水电建设工程验收技术鉴定导则.docx VIP
- 红光机器厂实训报告总结与反思.pptx VIP
- 人工智能技术在乳腺癌风险分层管理和治疗策略中的应用相关试题及答案.doc VIP
- MBN_LV_124-1_2013-03 12V车载电子系统电气要求和测试.pdf VIP
- SJT 11364-2014 电子电气产品有害物质限制使用标识要求.pdf VIP
原创力文档


文档评论(0)