正在加载图片...
第十章.设计练习进阶 #100 Sstop end alu alul(out, opcode, a, b) 仿真波形(部分): /alutest/a 24 alutest/b81 alutest/opcode 练习:运用 always块设计一个八路数据选择器。要求:每路输入数据与输出数据均为4位2 进制数,当选择开关(至少3位)或输入数据发生变化时,输出数据也相应地变化 练习六.在 Ver i log HDL中使用函数 目的:掌握函数在模块设计中的使用 与一般的程序设计语言一样, Veirlog Hdl也可使用函数以适应对不同变量采取同一运 算的操作。 Veirlog hdl函数在综合时被理解成具有独立运算功能的电路,每调用一次函数 相当于改变这部分电路的输入以得到相应的计算结果。 下例是函数调用的一个简单示范,采用同步时钟触发运算的执行,每个clk时钟周期都 会执行一次运算。并且在测试模块中,通过调用系统任务$ display在时钟的下降沿显示每次 计算的结果。 模块源代码: module tryfunct(clk, n, result, reset) output[31: 0] result [3:0] t clk reg[31: 0] resul always@( posedge clk)//clk的上沿触发同步运算。 begin f(reset // reset为低时复 result=0 275第十章.设计练习进阶 #100 $stop; end alu alu1(out,opcode,a,b); endmodule 仿真波形(部分): 练习:运用 always 块设计一个八路数据选择器。要求:每路输入数据与输出数据均为 4 位 2 进制数,当选择开关(至少 3 位)或输入数据发生变化时,输出数据也相应地变化。 练习六. 在 Verilog HDL 中使用函数 目的:掌握函数在模块设计中的使用。 与一般的程序设计语言一样,Veirlog HDL 也可使用函数以适应对不同变量采取同一运 算的操作。Veirlog HDL 函数在综合时被理解成具有独立运算功能的电路,每调用一次函数 相当于改变这部分电路的输入以得到相应的计算结果。 下例是函数调用的一个简单示范,采用同步时钟触发运算的执行,每个 clk 时钟周期都 会执行一次运算。并且在测试模块中,通过调用系统任务$display 在时钟的下降沿显示每次 计算的结果。 模块源代码: module tryfunct(clk,n,result,reset); output[31:0] result; input[3:0] n; input reset,clk; reg[31:0] result; always @(posedge clk) //clk 的上沿触发同步运算。 begin if(!reset) //reset 为低时复位。 result<=0; else begin 275
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有