EDA技术与Verilog设计第六章课后习题部分答案.ppt
《EDA技术与Verilog设计第六章课后习题部分答案.ppt》由会员分享,可在线阅读,更多相关《EDA技术与Verilog设计第六章课后习题部分答案.ppt(31页珍藏版)》请在三一办公上搜索。
1、6-11,6-11 试编写求补码的Verilog程序,输入是带符号的8位二进制数module wytest(data_in,data_out);/习题6-11 input7:0 data_in;output7:0 data_out;reg7:0 data_out;always(data_in)begin if(data_in7)/正数负数判断,从最高是否为1来判断 data_out=(data_in)+1)|8h80;else data_out=data_in;end endmodule,6-11仿真波形,8A-原码表示的十进制数-10 0A-十进制数10B6-原码表示的十进制数-54 36-
2、十进制数5380-原码表示的十进制数128,6-12,6-12 编写两个四位二进制数相减的verilog程序 module wytest(opr1,opr2,out_data);/完成Opr1-opr2的运算 input3:0 opr1,opr2;output4:0 out_data;reg3:0 out;reg cout;function3:0 abs;input3:0 data;case(data3)1b0:abs=data;1b1:abs=(data)+1;/对负数求绝对值,按位取反再加1 endcase endfunction,6-12,always(opr1 or opr2)case
3、(opr13,opr23)2b00:cout,out=opr1-opr2;/两个正数相减 2b01:cout,out=opr1+abs(opr2);/正数减负数,化为加 法运算 2b10:cout,out=-(abs(opr1)+opr2);/负数减正数,化为加 法再取反 2b11:cout,out=abs(opr2)-abs(opr1);/负数相减,化为绝 对值相减(顺序调换)endcase assign out_data=cout,out;endmodule,6-12,6-12 仿真波形,6-13,6-13 有一个比较电路,当输入的一位BCD码 大于4时,输出1,否则输出0。module
4、wytest(bcd_in,out);input3:0 bcd_in;output out;assign out=(bcd_in4)?1:0;endmodule,6-13,仿真波形,6-13,module wytest(bcd_in,out);/习题6-13 input3:0 bcd_in;output out;/assign out=(bcd_in4)?1:0;reg out;always(bcd_in)if(bcd_in-40)out=1;else out=0;endmodule,6-13,6-14,试编写一个实现3输入与非门的verilog程序;module wytest(a,o);in
5、put2:0 a;output o;nand nand3(o,a0,a1,a2);endmodule,6-14,6-15,6-15 设计74138译码器电路,6-15,module wytest(s1,s2,in,out);input s1;input1:0 s2;input2:0 in;output7:0 out;reg8:0 out;always(s1 or s2 or in)begin if(s1=0)out=8hff;else if(!s20)|(!s21)out=8hff;,else case(in)3d0:out=8b11111110;3d1:out=8b11111101;3d2:
6、out=8b11111011;3d3:out=8b11110111;3d4:out=8b11101111;3d5:out=8b11011111;3d6:out=8b10111111;3d7:out=8b01111111;endcaseendendmodule,6-15,6-16,CO=Q3 Q2 Q1 Q0 CTT,注意:异步清零、同步置位,6-16 设计一个74161的电路。,6-16,module wytest(reset,load,ctt,ctp,clk,data_in,out,co);/习题6-16input reset,load,ctt,ctp,clk;input3:0 data_i
7、n;output3:0 out;output co;reg3:0 out;reg co;always(posedge clk or negedge reset)if(!reset)begin out=4b0;co=1b0;end else if(!load)out=data_in;else if(!ctt)out=out;else if(!ctp)out=out;,else begin out=out+1;if(out=14)co=1;else co=0;endendmodule,6-16,四级流水线实现的32位加法器,module wytest(clk,a,b,sum,cout);input
8、31:0 a,b;input clk;output31:0 sum;output cout;/最后输出的结果reg31:0 sum;reg cout;/第一级流水线的输出reg7:0 fist_sum;reg first_cout;/第一级流水线要缓存的数据/未用的数据缓存 reg7:0 first_a_31_24,first_a_23_16,first_a_15_8;reg7:0 first_b_31_24,first_b_23_16,first_b_15_8;,四级流水线实现的32位加法器,/第二级流水线的输出reg7:0 second_sum;reg second_cout;/第二级流水
9、线要缓存的数据/未用的数据缓存 reg7:0 second_a_31_24,second_a_23_16;reg7:0 second_b_31_24,second_b_23_16;/第一级流水线计算结果缓存reg7:0 first_sum_1;/第一级流水线计算结果第一次缓存/第三级流水线输出reg7:0 third_sum;reg third_cout;/第三级流水线要缓存的数据/未用的数据缓存 reg7:0 third_a_31_24;reg7:0 third_b_31_24;/第一级、第二级流水线计算结果缓存reg7:0 first_sum_2;/第一级流水线计算结果第二次缓存;reg7
10、:0 second_sum_1;/第二级流水线计算结果第一次缓存;,四级流水线实现的32位加法器,/第一级流水线always(posedge clk)begin first_cout,fist_sum=a7:0+b7:0+cout;first_a_31_24=a31:24;first_b_31_24=b31:24;first_a_23_16=a23:16;first_b_23_16=b23:16;first_a_15_8=a15:8;first_b_15_8=b15:8;end/第二级流水线always(posedge clk)begin second_cout,second_sum=firs
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 技术 Verilog 设计 第六 课后 习题 部分 答案
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6504895.html