计算机组成原理的Verilog实验——Verilog的初步经验

计算机组成原理的verilog实验——verilog的初步经验
第一级:全加器设计
模块fa _行为(a、b、ci、s、co);//考虑进位的加法器模块
输入a、b;
输入ci;
输出s。
产出公司;
//请添加下面的代码来完成一位全加器功能
/*开始*/
分配{co,s } = a+b+ci;
/*结束*/
终端模块
二级:无符号二进制数加法器模块加法器的实现(a,b,cin,cout,sum);
参数位宽= 8;
输出[bit_width-1:0]和;
输出cout
输入[bit_width-1:0] a,b;
输最好看的武侠小说入cin;
//请在下面添加代码,以完成n=8位无符号二进制数加法器的功能
/*开始*/
分配{cout,sum } = a+b+cin;
/*结束*/
终端模块
第三级:减法器模块减法器(a、b、cin、cout、和);
参数位宽= 8;
输出[bit_width-1:0]和;
输出cout
输入[bit_width-1:0] a,b;
输入cin;//进位
//请添加下面的代码来完成n位无符号二进制数减法器的功能
/*开始*/
分配{cout,sum } = a-b-cin;
/*结束*/
终端模块
第四层:定点二进制数的补码加减运算模块add _ sub (a,b,control,cout,overflow,sum);
参数bit _ width = 4;
输出[bit_width-1:0]和;输出cout,溢出;
输入[bit_width-1:0] a,b;输入控制;//进位
寄存器溢出,coutreg[bit _ width-1:0]sum;
reg [bit_width:0] a2、b2、sum2
//请添加下面的代码,完成定点二进制数的补码加减运算功能
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
总是@(a或b或控件)
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
开始
a2[位宽]= a[位宽-1];//将a符号位扩展为2位,并将其分配给a2
a2[位宽-1:0]= a[位宽-1:0];
//请添加下面的代码,将b符号位扩展为2位,并将其分配给b2
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
b2[位宽]= b[位宽-1];//将b符号位扩展为2位,并将其分配给b2
b2[位宽-1:0]= b[位宽-1:0];
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
if (control==0) {cout,sum 2 } = a2+b2;
否则{cout,sum 2 } = a2+(~ b2)+控制;
if((sum2[bit_width]^sum2[bit_width-1])==1)溢出= 1;
否则溢出= 0;//使用双符号位判断溢出
sum最好看的穿越小说[位宽-1:0]= sum 2[位宽-1:0];
目标
终端模块
文章来源:www.atolchina.com