武汉理工大学华夏学院EDA复习题答案
更新时间:2024-06-08 17:50:01 阅读量: 综合文库 文档下载
- 武汉理工大学本科生院推荐度:
- 相关推荐
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 <= D; end endmodule
2、8 位寄存器
module reg8(qout,in,clk,clear); output[7:0] qout; input[7:0] in; input clk,clear;
reg[7:0] qout;
always @(posedge clk or posedge clear) begin
if(clear) qout=0; //异步清 0 else qout=in; end endmodule
3、8 位并行加法器
module add_bx(cout,sum,a,b,cin); output[7:0] sum; output cout; input[7:0] a,b; input cin;
assign {cout,sum}=a+b+cin; endmodule
4、8 位并行乘法器
module mult(outcome,a,b); parameter size=8;
input[size:1] a,b; //两个操作数 output[2*size:1] outcome; //结果
assign outcome=a*b; //乘法运算符 endmodule
5、多路器
①持续赋值方式定义的2 选 1 多路选择器 module MUX21_1(out,a,b,sel); input a,b,sel; output out;
assign out=(sel==0)?a:b; //持续赋值,如果 sel为 0,则out=a ;否则out=b endmodule
②阻塞赋值方式定义的2 选 1 多路选择器 module MUX21_2(out,a,b,sel); input a,b,sel; output out; reg out;
always@(a or b or sel) begin
if(sel==0) out=a; //阻塞赋值 else out=b; end endmodule
③module mux(out,a,b,sel) output out; input a,b,sel;
assign out=sel?a:b; endmodule
④行为级描述的四选一多路选择器 module mux4_to_1(out,i0,i1,i2,i3,s1,s0); input i0,i1,i2,i3,s1,s0; output out; reg out;
always @(s1 or s0 or i0 or i1 or i2 or i3) begin
case({s1,s0}) 2’b00:out=i0; 2’b01:out=i1; 2’b10:out=i2; 2’b11:out=i3; default:out=1’bx; endcase end
endmodule
6、比较器
①module compare_n(X,Y,XGY,XSY,XEY); input [width-1:0] X,Y; output XGY,XSY,XEY; reg XGY,XSY,XEY; parameter width=8; always@(X or Y) begin
if(X==Y) XEY=1; else XEY=0; if(X>Y) XGY=1; else XGY=0; if(X ②module compare(equal,a,b); Parameter size=1; output equal; input [size-1:0]a,b; assign aqual=(a==b)?1:0; endmodule 7、3-8译码器 ①module decoder_38(out,in); output[7:0] out; input[2:0] in; reg[7:0] out; always @(in) begin case(in) 3'd0: out=8'b11111110; 3'd1: out=8'b11111101; 3'd2: out=8'b11111011; 3'd3: out=8'b11110111; 3'd4: out=8'b11101111; 3'd5: out=8'b11011111; 3'd6: out=8'b10111111; 3'd7: out=8'b01111111; endcase end endmodule ②module decoder(out,in); output[7:0]out; input [2:0]in; assign out=1’b1< 8、8-3编码器 module encoder8_3(none_on,outcode,a,b,c,d,e,f,g,h); output none_on; output[2:0] outcode; input a,b,c,d,e,f,g,h; reg[3: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=4'b0111; else if(g) outtemp=4'b0110; else if(f) outtemp=4'b0101; else if(e) outtemp=4'b0100; else if(d) outtemp=4'b0011; else if(c) outtemp=4'b0010; else if(b) outtemp=4'b0001; else if(a) outtemp=4'b0000; else outtemp=4'b1000; end endmodule 9、8位数据锁存器 module latch_8(qout,data,clk); output[7:0] qout; input[7:0] data; input clk; reg[7:0] qout; always @(clk or data) begin if (clk) qout<=data; end endmodule 10、奇偶检验位生成器 module parity(even_bit,odd_bit,input_bus); output even_bit,odd_bit; input[7:0] input_bus; assign odd_bit = ^ input_bus; //产生奇校验位 assign even_bit = ~odd_bit; //产生偶校验位 endmodule 11、三态输出驱动器 ①module trist(out,in,enable); output out; input in,enable; assign out=enable?in:’bz; endmodule ②module trist(out,in,enable); output out; input in,enable; bufifl mybufl(out,in,enable); endmodule 12、8位移位寄存器 module shifter(din,clk,clr,dout); input din,clk,clr; output[7:0] dout; reg[7:0] dout; always @(posedge clk) begin if (clr) dout<= 8'b0; else begin dout <= dout << 1; dout[0] <= din; end end endmodule 13、四位计数器 module counter(Q,clock,clear); output[3:0]Q; input clock,clear; reg[3:0]Q; always@(posedge clear or negedge clock) begin if(clear) Q<=4’d0; else //同步清0,高电平有效 //输出信号左移一位 //输入信号补充到输出信号的最低位 Q<=Q+1; end endmodule 5)程序设计题: 1.五人表决器的设计 module vote5(a,b,c,d,e,f); input a,b,c,d,e; output f; reg f; reg[2:0] count1; initial count1=0; always@(a,b,c,d,e) begin count1<=a+b+c+d+e; f=count1<3?0:1; end endmodule 2.分频器的设计 module adder(clk,z); output z; reg q; reg z; always@(posedge clk) begin if(q%9==0) z<=q; else q=q+1; end endmodule module counter9(clk,datein,z); output z; input clk; input datein; reg z; reg[3:0] q; always@(posedge clk) begin q<=q+1; if (q==4'b1001) begin q<=4'b0000; z<=datein; end end endmodule 3.7段数码管的译码器设计 module SEG7_LUT ( input [3:0] iDIG, output reg [6:0] oSEG ); always@(iDIG) begin case(iDIG) 4'h1: oSEG = 7'b1111001; // ---t---- 4'h2: oSEG = 7'b0100100; // | | 4'h3: oSEG = 7'b0110000; // lt rt 4'h4: oSEG = 7'b0011001; // | | 4'h5: oSEG = 7'b0010010; // ---m---- 4'h6: oSEG = 7'b0000010; // | | 4'h7: oSEG = 7'b1111000; // lb rb 4'h8: oSEG = 7'b0000000; // | | 4'h9: oSEG = 7'b0011000; // ---b---- 4'ha: oSEG = 7'b0001000; 4'hb: oSEG = 7'b0000011; 4'hc: oSEG = 7'b1000110; 4'hd: oSEG = 7'b0100001; 4'he: oSEG = 7'b0000110; 4'hf: oSEG = 7'b0001110; default: oSEG = 7'b1000000; endcase end endmodule 4.计数器的设计 module counter(input bn, output reg[7:0] segcode, output [3:0] an ); reg[3:0] count; assign an=4'b0111; initial begin count=0; end always @(posedge bn) count<=count+1; always @(count) case(count) 0:segcode=8'b11000000;//0 1:segcode=8'b11111001;//1 2:segcode=8'b10100100;//2 3:segcode=8'b10110000;//3 4:segcode=8'b10011001;//4 5:segcode=8'b10010010;//5 6:segcode=8'b10000010;//6 7:segcode=8'b11111000;//7 8:segcode=8'b10000000;//8 9:segcode=8'b10010000;//9 'ha:segcode=8'b10001000;//a 'hb:segcode=8'b10000011;//b 'hc:segcode=8'b11000110;//c 'hd:segcode=8'b10100001;//d 'he:segcode=8'b10000110;//e 'hf:segcode=8'b10001110;//f default:segcode=8'b11111111; endcase endmodule 5.流水灯的设计 module ledflash( output [7:0] ld, input clk ); reg clk1s; reg[7:0] tmp; reg[31:0] count; assign ld=tmp; initial begin clk1s=0; tmp=8'b00000001; count=0; end always@(posedge clk) begin count<=count+1; if (count==25000000) begin count<=0; clk1s<=~clk1s; end end always@(posedge clk1s) begin if (clk1s==1) tmp={tmp[6:0],tmp[7]}; end endmodule 6.移位寄存器(略) 7.根据状态转移图写Verilog模块(4状态模型如下) Module fsm(clock,reset,a,k2,k1); input clock,reset,a; output k2,k1; output[1 :0]state ; reg k2,k1 ; reg[1 :0]state ; paremeter Idle=2’b00 ; Start=2’b01 ; Stop=2’b10 ; Clear=2’b11 ; always@(posedge clock) if( !reset) begin state<=Idle ; k2<=0 ; k1<=0 ; end else case(state) Idle :if(a) begin state<=Start ; K1<=0 ; end Else begin state<=Idle ; k2<=0 ; k1<=0 ; end Start :if( !a)state<=Stop ; else state<=Start ; end Stop :if(a)begin state<=Clear ; k2<=1 ; end else begin start<=Stop ; k2<=0 ; k1<=0 ; end Clear :if( !a)begin State<=Idle ; K2<=0 ; K1<=1 ; End Else begin State<=Clear : K2<=0 ; K1<=1 ; End Default :state<=2’bxx ; Endcase Endmodule 8.运算器的设计(加、减、乘、按位与等) module jsq(a,b,c,out); input[7:0]a,b; input[1:0]c; otput[15:0]out; reg [15:0]out reg[7:0]out1,out2; always@(a,b,c,out) case(c) 2'b00:out=a+b; 2'b01:out=a-b; 2'b10:out=a*b; 2'b11: begin out1=a/b; out2=a%b; out={out1,out2}; end default:; endcase endmodule k1<=0 ; end Clear :if( !a)begin State<=Idle ; K2<=0 ; K1<=1 ; End Else begin State<=Clear : K2<=0 ; K1<=1 ; End Default :state<=2’bxx ; Endcase Endmodule 8.运算器的设计(加、减、乘、按位与等) module jsq(a,b,c,out); input[7:0]a,b; input[1:0]c; otput[15:0]out; reg [15:0]out reg[7:0]out1,out2; always@(a,b,c,out) case(c) 2'b00:out=a+b; 2'b01:out=a-b; 2'b10:out=a*b; 2'b11: begin out1=a/b; out2=a%b; out={out1,out2}; end default:; endcase endmodule
正在阅读:
武汉理工大学华夏学院EDA复习题答案06-08
学骑车作文500字07-13
第一次洗裤子作文500字06-26
箱涵支架施工方案11-28
大工《毛泽东思想和中国特色社会主义理论体系概论》课程考试模拟试卷B05-11
四年级第一单元01-13
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 武汉理工大学
- 复习题
- 华夏
- 答案
- 学院
- EDA
- 自动化实训报告 - 图文
- 2018年中国私人银行服务行业现状调研分析报告目录
- ORACLE编程规范
- 教学系统设计
- 安全教育文字稿 - 图文
- 高考近义词辨析100题及答案
- 逻辑考点讲解与真题解析以及类型化训练
- 现代汉语试题库(含答案)
- 走进厚重的中国数学文化世界
- 北京小学语文阅读训练80篇四年级习题及答案
- 教你污汁的去除方法 - hufu
- 基于PLC 的中央空调控制系统设计2012届本科毕业论文
- 2015春节给客户的新年祝福语短信
- 采薇·小雅与豳风·东山异同点分析
- 高一语文《氓》说课稿
- 桥口区示范街(店)建设推进实施细则
- 南师GIS考研 - C语言试卷09
- 国内主要制造单晶多晶炉企业
- 用三元组表存储表示,求稀疏矩阵M转置函数T
- 2018年区党风政风监督工作总结及2019年工作计划