第二章
/*1----------------------------------------------*/ module IS; //... SC sc1; MEM mem1; Xbar xbar1; endmodule;
module SC; //...
endmodule;
moduleXbar; //...
endmodule;
module MEM; //...
endmodule;
module Top; IS is1;
endmodule
/*2----------------------------------------------*/ module FA;
endmodule
moduleRipple_Add; FA fa0; FA fa1; FA fa2; FA fa3; Endmodule
第三章
/*1---------------------------------------------------------------*/ a:8b0111_1011 b:16hxxxx c: -2(1010)--取反(1101)----再加一(1110)
d: 'h1234
/*2---------------------------------------------------------------*/ a:正确 b:正确 c:正确 d:正确
/*3---------------------------------------------------------------*/ a :合法 b :合法
c :不合法,含有$ 为延时含义
d :标识符组成:字母数字下划线。
/*4---------------------------------------------------------------*/ a: wire [7:0] a_in; b: reg [31:0] c: integer count; d: time snap_shot; e: integer delays[20]; f: reg [63:0] mem[256]; g: parameter cach_size=256;
/*5---------------------------------------------------------------*/ a : 1010 b: 10 c : 400
第四章
/*1-----------------------------------------------------------------------*/ //模块的基本组成部分有哪些?哪几个部分必须出现?
模块定义已关键字module开始,模块名,端口列表,端口声明和可选的参数声明出现在其他部分的前面 ,endmodule必须为最后一条语句 1)wire。reg和其他类型的变量的声明 2)数据流语句(assign,连续赋值语句) 3)低层模块实例 4)always和initial块,所有的行为语句都在这些块中 5) 任务和函数。 其中module和模块名和endmodule是必不可少的。
/*2-----------------------------------------------------------------------*/ //一个不与外界环境交互的模块是否有端口?模块定义中是否有端口列表? 不与外界交互即没有端口列表,在没有端口的情况下端口列表也是不存在的。
/*3-----------------------------------------------------------------------*/ moduleshift_reg(reg_in[3:0] , clock , reg_out[3:0] ); input [3:0] reg_in; input clock; output [3:0] reg_out; //...... endmodule;
/*4-----------------------------------------------------------------------*/ //connect in order module stimulus(); reg [3:0] REG_IN; wire [3:0] REG_OUT; reg CLK; shift_regsr1(REG_IN,CLK,REG_OUT); endmodule
/*5-----------------------------------------------------------------------*/ //connect by name module stimulus(); reg [3:0] REG_IN; wire [3:0] REG_OUT; reg CLK; shift_regsr1(.clock(CLK) ,.reg_in(REG_IN) , .reg_out(REG_OUT) ); endmodule
/*6-----------------------------------------------------------------------*/ stimulus.REG_IN stimulus.CLK; stimulus.REG_OUT;
/*7-----------------------------------------------------------------------*/ stimulus.sr1; stimulus.sr1.clock; stimulus.sr1.reg_in; stimulus.sr1.reg_out;
第五章
/*1--------------------------------------------------------------------*/ //利用双输入的nand门设计自己的与或非门。 //my_and modulemy_and(out , in1,in2); input in1,in2; output out; endmodule