武汉理工大学华夏学院EDA复习题答案.doc_第1页
武汉理工大学华夏学院EDA复习题答案.doc_第2页
武汉理工大学华夏学院EDA复习题答案.doc_第3页
武汉理工大学华夏学院EDA复习题答案.doc_第4页
武汉理工大学华夏学院EDA复习题答案.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、IEEE标准的硬件描述语言是Verilog HDL和VHDL共同点是:能够形式化地抽象表示电路的行为和结构;支持逻辑设计中层次与范围的描述:可借用高级语言的精巧结构来简化电路行为的描述:具有电路仿真与验证机制以保证设计的正确性;支持电路描述由高层到低层的综合转换;硬件描述与实现工艺无关;便于文档管理;易于理解和设计重用。不同点:Verilog HDL是一种非常容易掌握的硬件描述语言,而VHDL掌握起来就比较困难。2、把功能经过验证的、可综合的、实现后电路结构总门数在5000门以上的Verilog HDL模型称之为“软核”。把在某一种现场可编程门阵列(FPGA)器件上实现的、经验证是正确的、总门数在5000门以上电路结构编码文件称为“固核”。把在某一种专用集成电路工艺的(ASIC)器件上实现的、经验证是正确的、总门数在5000门以上电路结构版图掩膜称为“硬核”。3、什么叫综合?通过综合产生的是什么?通过综合工具把行为级描述的模块通过逻辑网表自动转化为门级形式的模块叫综合。综合由EDA工具来完成。产生的是由与门,或门和非门组成的加法器,比较器等组合逻辑。产生的模块很容易与某种工艺的基本元件逐一对应起来,再通过布局布线工具自动地转变为某种工具工艺的电路布线结构。4、仿真可以在几层面上进行?每个层面的仿真有什么意义?分别为:前仿真,逻辑网表仿真,门级仿真和布线后仿真。前仿真,逻辑网表仿真,门级仿真:可以调试和验证逻辑系统的设计和结构准确与否,并发现问题及时修改。布线后仿真:分析设计的电路模块的运行是否正常。5、模块由描述接口和描述逻辑功能两部分组成。6、端口分为三种:输入口、输出口、输入/输出口。7、reg型和wire型变量的差别是什么?reg型变量是寄存器型变量,wire型变量是连线型变量。两者根本性的差别在于reg型变过量有个寄存器来存放变量,这个值只有变量发生改变时才会改变否则保证原来的值不变,wire型变量的值不是确定的值。8、由连续赋值语句assign赋值的变量能否是reg类型的?可以是reg类型的变量。9、在always模块中被赋值的变量能否是wire类型的?如果不能,那么必须是什么类型的?它们表示的一定是实际的寄存器吗?不能。必须是reg类型的变量。他们表示的不一定是实际的寄存器。10、参数类型的变量有什么用处?好处是可以提高程序的可读性和可维护性。11、逻辑运算符与按位逻辑运算符有什么不同?用逻辑运算符时是两个操作数进行逻辑运算,而按位逻辑运算符运算时是两个操作数对应的每一位进行逻辑运算。逻辑运算符多用于条件的判断,按位逻辑运算符用于信号的运算和检测。12、拼接符的作用是什么?为什么说合理地使用拼接符可以提高程序的可读性和可维护性?拼接符的作用是把两个或多个信号的某些位拼接起来进行运算操作。因为借助拼接符可以用一个符号名来表示由多位信号组成的复杂信号。其物理意义是将多个信号结合成一个信号。13、如果都不带时间延迟,阻塞和非阻塞赋值有什么不同?阻塞和非阻塞赋值的区别在阻塞时顺序执行而非阻塞时并行执行。举例:非阻塞赋值:always(posedge clk) begin b=a; c=b; end阻塞赋值:always(posedge clk) begin b=a; c=b; end两种不同的赋值方式结果是不同的。非阻塞赋值中两条语句同时执行,结果是b=a,c=b。而阻塞赋值两条语句是逐条执行的,先执行b=a后执行c=b,结果是c=b=a。14、不断活动与不断执行有什么不同?不断活动是always语句不断活动检查是否满足条件(如某个信号发生改变),不断执行时always语句引导的过程中的语句不断的执行着。15、简单叙述任务和函数的不同点。(1)函数只能与主模块共用同一个仿真时间单元,而任务可以定义自己的仿真时间单位;(2)函数不能启动任务,而任务能启动其它任务和函数;(3)函数至少要有一个输入变量,而任务可以没有或有多个任何类型的变量;(4)函数返回一个值,而任务则不返回值。16、什么是综合?是否任何符合语法的Verilog HDL程序都可以综合?通过综合器把HDL程序转化成标准的门级结构网表。不是。17、有限状态机分为哪两类?有何区别?分为Moore型和Mealy型两类。Moore型其时序逻辑输出仅与当前状态有关;Mealy型其时序逻辑输出不但取决于状态还取决于输入。18、什么是同步复位,什么是异步复位,两者的区别是什么? 同步复位只有在时钟沿到来时复位信号才起作用。异步复位只要有复位信号系统马上复位。同步复位的复位信号持续的时间应该超过一个时钟周期才能保证系统复位。异步复位抗干扰能力差,有些噪声也能使系统复位,因此有时候显得不够稳定,要想设计一个好的复位最好使用异步复位同步释放,而且复位信号低电平有效。1、根据仿真测试文件绘制信号的波形譬如:initial begin reset=1; clk=0; #3 reset=0; #5 reset=1; end always #2 clk=clk; 4)程序填空题:1、基本D触发器module DFF(Q,D,CLK); output Q; input D,CLK; reg Q; always (posedge CLK) begin Q Y) XGY=1;else XGY=0;if(XY) XSY=1;else XSY=0;endendmodulemodule compare(equal,a,b);Parameter size=1;output equal;input size-1:0a,b; assign aqual=(a=b)?1:0;endmodule7、3-8译码器module decoder_38(out,in); output7:0 out; input2:0 in; reg7:0 out; always (in) begin case(in) 3d0: out=8b11111110; 3d1: out=8b11111101; 3d2: out=8b11111011; 3d3: out=8b11110111; 3d4: out=8b11101111; 3d5: out=8b11011111; 3d6: out=8b10111111; 3d7: out=8b01111111; endcase end endmodulemodule decoder(out,in);output7:0out;input 2:0in; assign out=1b1in;endmodule8、8-3编码器module encoder8_3(none_on,outcode,a,b,c,d,e,f,g,h); output none_on; output2:0 outcode; input a,b,c,d,e,f,g,h; reg3:0 outtemp; assign none_on,outcode=outtemp; always (a or b or c or d or e or f or g or h) begin if(h) outtemp=4b0111; else if(g) outtemp=4b0110; else if(f) outtemp=4b0101; else if(e) outtemp=4b0100; else if(d) outtemp=4b0011; else if(c) outtemp=4b0010; else if(b) outtemp=4b0001; else if(a) outtemp=4b0000; else outtemp=4b1000; end endmodule9、8位数据锁存器module latch_8(qout,data,clk); output7:0 qout; input7:0 data; input clk; reg7:0 qout; always (clk or data) begin if (clk) qout=data; end endmodule10、奇偶检验位生成器module parity(even_bit,odd_bit,input_bus); output even_bit,odd_bit; input7:0 input_bus; assign odd_bit = input_bus; /产生奇校验位 assign even_bit = odd_bit; /产生偶校验位 endmodule11、三态输出驱动器module trist(out,in,enable);output out;input in,enable; assign out=enable?in:bz;endmodulemodule trist(out,in,enable);output out;input in,enable;bufifl mybufl(out,in,enable);endmodule12、8位移位寄存器module shifter(din,clk,clr,dout); input din,clk,clr; output7:0 dout; reg7:0 dout; always (posedge clk) begin if (clr) dout= 8b0; /同步清0,高电平有效 else begin dout = dout 1; /输出信号左移一位 dout0 = din; /输入信号补充到输出信号的最低位 end end endmodule13、四位计数器module counter(Q,clock,clear);output3:0Q;input clock,clear;reg3:0Q;always(posedge clear or negedge clock)begin if(clear)Q=4d0; elseQ=Q+1;endendmodule5)程序设计题: 1.五人表决器的设计 module vote5(a,b,c,d,e,f);input a,b,c,d,e;output f;reg f;reg2:0 count1;initial count1=0;always(a,b,c,d,e)begincount1=a+b+c+d+e;f=count13?0:1;endendmodule2.分频器的设计moduleadder(clk,z);outputz;regq;regz;always(posedgeclk)beginif(q%9=0)z=q;else q=q+1;endendmodulemodulecounter9(clk,datein,z);outputz;inputclk;inputdatein;regz;reg3:0q;always(posedgeclk)beginq=q+1;if(q=4b1001)beginq=4b0000;z=datein;endendendmodule3.7段数码管的译码器设计module SEG7_LUT ( input3:0 iDIG, output reg 6:0 oSEG);always(iDIG)begin case(iDIG) 4h1: oSEG = 7b1111001; / -t- 4h2: oSEG = 7b0100100; / | 4h3: oSEG = 7b0110000; / ltrt 4h4: oSEG = 7b0011001; / | 4h5: oSEG = 7b0010010; / -m- 4h6: oSEG = 7b0000010; / | 4h7: oSEG = 7b1111000; / lbrb 4h8: oSEG = 7b0000000; / | 4h9: oSEG = 7b0011000; / -b- 4ha: oSEG = 7b0001000; 4hb: oSEG = 7b0000011; 4hc: oSEG = 7b1000110; 4hd: oSEG = 7b0100001; 4he: oSEG = 7b0000110; 4hf: oSEG = 7b0001110; default: oSEG = 7b1000000; endcaseendendmodule4.计数器的设计module counter(input bn, output reg7:0 segcode, output 3:0 an );reg3:0 count;assign an=4b0111;initialbegincount=0;endalways (posedge bn)count=count+1;always (count)case(count) 0:segcode=8b11000000;/0 1:segcode=8b11111001;/1 2:segcode=8b10100100;/2 3:segcode=8b10110000;/3 4:segcode=8b10011001;/4 5:segcode=8b10010010;/5 6:segcode=8b10000010;/6 7:segcode=8b11111000;/7 8:segcode=8b10000000;/8 9:segcode=8b10010000;/9 ha:segcode=8b10001000;/a hb:segcode=8b10000011;/b hc:segcode=8b11000110;/c hd:segcode=8b10100001;/d he:segcode=8b10000110;/e hf:segcode=8b10001110;/f default:segcode=8b11111111;endcase endmodule 5.流水灯的设计module ledflash( output 7:0 ld, input clk );reg clk1s;reg7:0 tmp;reg31:0 count;assign ld=tmp;initialbeginclk1s=0;tmp=8b00000001;count=0;endalways(posedge clk) begin count=count+1; if (count=25000000) begin count=0; clk1s=clk1s; end endalways(posedge clk1s) begin if (clk1s=1) tmp=tmp6:0,tmp7;endendmodule 6.移位寄存器(略)7.根据状态转移图写Verilog模块(4状态模型如下)Module fsm(clock,reset,a,k2,k1);input clock,reset,a;output k2,k1;output1:0state;reg k2,k1;reg1:0state;paremeter Idle

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论