第一范文网 - 专业文章范例文档资料分享平台

《数字电路与逻辑设计》

来源:用户分享 时间:2026/1/4 0:43:21 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

case01xz0100010100x0010z0001casez01xz0100110101x0011z1111casex01xz0101110111x1111z1111 (10)循环语句 forever:连续的执行语句 repeat:执行n次 while:条件满足则执行 for:分3步走

note:for语句的变量增加不能用“++”

(10.1)forever:连续的执行语句 格式:

forever 语句;

note:常用于产生周期性的波形,作为仿真测试信号,与always的不同之处在于:不能独立写在程序中,而必须写在initial块中。

(10.2)repeat:执行n次 格式:

repeat(执行次数) 语句;

note:常用于产生周期性的波形,作为仿真测试信号,与always的不同之处在于:不能独立写在程序中,而必须写在initial块中。

(11)initial说明语句 格式:

30

initial begin 语句s; end

1. 只执行一次。

2. 常用于仿真信号的产生等。

(12)task和function说明语句 --都用于定义程序模块 区别是:

1. 函数只能跟主模块共用一个仿真时间,任务则没有此限制。 2. 函数不能启动任务,任务可以启动任务和函数

3. 函数至少需要一个输入变量,任务可以没有或多个任何类型的变量 4. 函数返回一个值,任务没有返回值 examples:

switch_bytes(old_word, new_word); new_word = switch_bytes(old_word); 哪个是函数方式?哪个是任务方式?

(三)结合以上的Verilog HDL语言的学习,学习并跟着编写一下例程。

(1)4位全加器

module adder4(cout,sum,ina,inb,cin); output[3:0] sum; output cout; input[3:0] ina,inb; input cin; assign {cout,sum}=ina+inb+cin; endmodule (2)4位计数器

31

module count4(out,reset,clk); output[3:0] out; input reset,clk; reg[3:0] out; always @(posedge clk) begin if (reset) out<=0; //同步复位 else out<=out+1; //计数 end endmodule (3)用case语句描述的 4 选 1 数据选择器 思考题

module mux4_1(out,in0,in1,in2,in3,sel); output out; input in0,in1,in2,in3; input[1:0] sel; reg out; always @(in0 or in1 or in2 or in3 or sel) //敏感信号列表 case(sel) 2'b00: out=in0; 2'b01: out=in1; 2'b10: out=in2; 2'b11: out=in3; default: out=2'bx; endcase endmodule

(1)在4位计数器的基础上,实现带同步清0,同步置1的4位加法计数器。

(2)在以上4选1数据选择器的基础上,实现带1个使能端(低电平有效)的8选1数据选择器。

32

搜索更多关于: 《数字电路与逻辑设计》 的文档
《数字电路与逻辑设计》.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3ge8y7k9tn9vfqx3dfm1_9.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top