EDA技术与应用项目实践郑玉珍
EDA技术与应用项目实践 郑玉珍
一、组合逻辑电路设计实例看一段简单的程序module encoder38a(out,in);output [7:] out;描述外部端口input [2:0] in;//还有inoutassign out =1"b1 << in;//引导并行赋值语句表示二进制数的格式:<位宽><进制><数字>//例如3D7表示111,郏么4hA表示什么数呢?1/<<左移>>右移<<<对有符号数的左移endmodule引导完整的电路模块,模块名设计者自定思考:程序实现什么逻辑功能?有没有其他实现方法?如何验证功能的正确性?在实验板上进行验证
一、组合逻辑电路设计实例 看一段简单的程序 • module encoder38a(out,in); • output [7:0] out; //描述外部端口 • input [2:0] in; //还有inout • assign out =1‘b1 << in;//引导并行赋值语句 //表示二进制数的格式:<位宽>’<进制><数字> //例如3’D7表示111, 那么4’hA表示什么数呢? //<<左移 >>右移 <<<对有符号数的左移 • endmodule //引导完整的电路模块,模块名设计者自定 思考:程序实现什么逻辑功能? 有没有其他实现方法? 如何验证功能的正确性? 在实验板上进行验证
改进后的程序(可以演示验证)emodule encoder38b(out,in);2output [7:0] out;input [2:0] in;reg [7:0] out1,[7:0] out; / /定义寄存器型变量,若不定//义变量类型,则默认为wire型(网线型)//assign引导的赋值语句中信号规定为wire类型always @ (in)/引导过程语句结构,在always@引// 导的顺序语句中必须是reg型变量beginout1<=1'b1 << in;out=~outl;一逻辑求反endendmodule
改进后的程序(可以演示验证) • module encoder38b(out,in); • output [7:0] out; • input [2:0] in; • reg [7:0] out1, [7:0] out; //定义寄存器型变量,若不定 //义变量类型,则默认为wire型(网线型), //assign 引导的赋值语句中信号规定为wire类型 always @(in) //引导过程语句结构,在always @引 //导的顺序语句中必须是reg型变量 • begin • out1<=1'b1 << in; • out=~out1; //~逻辑求反 • end • endmodule
E项目1、“encoder38a的仿真和验证步骤:1、新建工程2、新建文件,选择Verilog HDL 文件类型3、输入源代码:注意所有关键字必须小写,标识符分大小写,即大小写敏感;4、保存文件:模块名可根据相应电路功能定义不能用数字或中文定义模块名,且不能用数字起头,如74LS38是不可以的;程序保存时文件名与模块名一致,且大小写敏感程序须存入某文件夹中,不要存在根目录或桌面或安装目录
项目1、 “encoder38a”的仿真和验证 步骤: 1、新建工程 2、新建文件,选择Verilog HDL 文件类型 3、输入源代码: • 注意所有关键字必须小写,标识符分大小写,即大小写 敏感; 4、保存文件: • 模块名可根据相应电路功能定义 • 不能用数字或中文定义模块名,且不能用数字起头,如 74LS38是不可以的; • 程序保存时文件名与模块名一致,且大小写敏感 • 程序须存入某文件夹中,不要存在根目录或桌面或安装 目录
5、编译,通过后可以仿真,若有错误,修改后再编译6、新建仿真文件,选择OtherFilesWaveformVectorFileIneastHodeueBusOKName7、 保存文件, 默认文件名INPUTCancelLpe9Level"encoder38a.vwf"YaluebypeNodeFindeBinaryBadxBus wndth.8、在波形编辑窗口,加入节点(lnsertStartindexDisplay gray code count as binary countNode),可以通过“NodeFinder/List/》”来加入所有输入/输出和寄存器等节点9、修改仿真截止时间(Edit/EndTime)和栅格(Edit/Grid Size),可以调节合适的显示比例End Time.Grid Size
5、编译,通过后可以仿真,若有错误, 修改后再编译 6、新建仿真文件,选择Other Files/Waveform Vector File 7、保存文件,默认文件名 “encoder38a.vwf” 8、在波形编辑窗口,加入节点(Insert Node),可以通过“Node Finder/List/》”来加入所有输入/输出和 寄存器等节点 9、修改仿真截止时间(Edit/End Time) 和栅格(Edit/Grid Size),可以调节合 适的显示比例