实验一简单组合逻辑电路的设计
一实验要求
用verilog HDL语言描写出简单的一位数据比较器及其测试程序;
用测试程序对比较器进行波形仿真测试;画出仿真波形;
总结实验步骤和实验结果。
二 实验原理与内容
这是一个可综合的数据比较器,很容易看出它的功能是比较数据a与数据b,如果两个数据相同,则给出结果1,否则给出结果0。在Verilog HDL中,描述组合逻辑时常使用assign结构。注意equal=(a==b)?1:0,这是一种在组合逻辑实现分支判断时常使用的格式。
模块源代码
测试模块:
波形图:
四结实验步骤和实验结果
由图可看出,每当输入的电位值不同时输出为0,这与实验要求一致,相同时输出为1,故此程序是可行的。
实验三在verilog HDL中使用函数
一实验要求
掌握函数在模块中的使用
用测试程序进行波形仿真测试;画出仿真波形
总结实验步骤和实验结果
二 实验原理与内容
与一般的程序设计语言一样;verilog HDL也可以使用函数已是应对不同变量采取同一运算的操作。verilog HDL函数在综合时被理解成具有独立运算功能的电路,每调用一次函数相当于改变这部分电路的输入以得到相应的计算结果。
模块源代码:
module ex3(clk,n,result,reset);
output[31:0] result;
input[3:0] n;
input reset,clk;
reg[31:0] result;
always @(posedge clk)
begin
if(!reset)result <= 0;
else
begin
result <= n*factorial(n)/((n*2)+1);
end
end
function[31:0] factorial;
input[3:0] operand;
reg[3:0] index;
begin
factorial = operand ? 1:0;
for(index = 2;index <= operand;index = index+1)
factorial = index*factorial;
end
endfunction
endmodule
`timescale 1ns/100ps
`define clk_cycle 50
module ex3_t();
reg[3:0] n,i;
reg reset,clk;
wire[31:0] result;
initial
begin
n=0;
reset=1;
clk=0;
#100 reset=0;
#100 reset = 1;
for(i=0;i <= 15;i=i+1)
Verilog实验报告 来自淘豆网m.daumloan.com转载请标明出处.