1.实验目的
(1)掌握门级建模语句。
(2)掌握数据流级建模语法。
(3)熟悉实例化语句。
(4)理解端口连接规则。
2. 实验涉及语法
(1)第2章的门级语法的与门、非门、与非门的门级调用。
(2)第2章的模块实例化方法,按顺序和按名称两种方式。
(3)第3章的数据流语法中操作符部分。
(4)第4章的行为级语法需要定义变量为reg型。
实验工具Quartus ii软件和modelsim软件
实验过程截图
实验结果截图
实验代码
module decoder3x8_1(Yn, S1,S2n,S3n,A);
input S1,S2n,S3n;
input [2:0] A;
output [7:0]Yn;
wire S2,S3;
wire A0n,Aln,A2n;
not(S2,S2n);
not(S3,S3n);
and(S,S1,S2,S3);
not(A0n,A[0]);
not(A1n,A[1]);
not(A2n,A[2]);
nand (Yn[0],A0n, Aln, A2n,S);
nand(Yn[1],A[0],Al,A2n,S);
nand(Yn[2],A0n, A[1],A2n, S);
nand(Yn[3],A[0],A[1],A2n,S);
nand(Yn[4],A0n, Aln,A[2],S);
nand(Yn[5],A[0],Aln,A[2],S);
nand(Yn[6],A0n,A[l],A[2],S);
nand(Yn[7],A[0],A[l],A[2],S);
endmodule
module decoder3x8_2(Yn, S1,S2n,S3n,A);
input S1,S2n,S3n;
input [2:0] A;
output [7:0] Yn;
wire S2,S3;
wire A0n,A1n,A2n;
assign S=S1&S2&S3;
assign A0n=~A[0];
assign Aln=~A[1];
assign A2n=~A[2];
assign Yn[0]=(A0n&A1n & A2n&S);
assign Yn[1]=~(A[0]& A1n & A2n&S);
assign Yn[2]=~(A0n&A[1]&A2n&S);
assign Yn[3]=~(A[0]& A[1]& A2n &S);
assign Yn[4]=~(A0n&A1n &A[2]&S);
assign Yn[5]=~(A[0]&A1n& A[2]& S);
assign Yn[6]=~(A0n&A[1]&A[2]& S);
assign Yn[7]=~(A[0]& A[1]&A[2]& S);
endmodule
module decoder3x8_3(Yn, S1,S2n,S3n,A);
input s1,s2n,S3n;
input [2:0]]A;
output [7:0]Yn;
assignS=S1&(~S2n)&(~S3n);
assign Yn=(S==0) ?8'b1111_1111:
(A==3'b000)?8'b1111_1110:
(A==3'b001)?8'b1111_1101:
(A==3'b010)?8'b1111 _1011:
(A==3'b011)?8'b1111_0111:
(A==3'b100) ?8'b1110 _1111:
(A==3'b101) ?8'b1101_1111:
(A==3'b110) ?8'b1011_1111:
(A==3'b111)?8'b0111_ 1111:
8'b1111_1111;
endmodule
实验视频:哔哩哔哩搜索【期末考试实验二-哔哩哔哩】https://b23.tv/lGNDdn