VerilogHDL硬件描述语言复习
一、
1. Verilog HDL 是在哪一年首次被I E E E标准化的?
      答:Verilog HDL是在1995年首次被IEEE标准化的。
2. Verilog HDL支持哪三种基本描述方式?
      答:Verilog HDL可采用三种不同方式或混合方式对设计建模。这些方式包括:行为描述方式—使用过程化结
      构建模;数据流方式—使用连续赋值语句方式建模;结构化方式—使用门和模块实例语句描述建模
3. Verilog HDL 是由哪个公司最先开发的?
      答:Verilog HDL是由Gateway Design Automation公司最先开发的
4. Verilog HDL中的两类主要数据类型什么?
c语言下载什么      答:线网数据类型和寄存器数据类型。线网类型表示构件间的物理连线, 而寄存器类型表示抽象的数据存储元件。
5. U D P代表什么?
      答:UDP代表用户定义原语
6. 写出两个开关级基本门的名称。
      答:pmos nmos
7. 写出两个基本逻辑门的名称。
      答:and or
8. 在数据流描述方式中使用什么语句描述一个设计?
      答:设计的数据流行为使用连续赋值语句进行描述
9. 采用结构描述方式描述1位全加器。
  答:
module full_add(a,b,cin,s,co);
    input a,b,cin;
    output s,co;
    wire S1,T1,T2,T3;
  xor
    X1(S1,a,b),
    X2(s,S1,cin);
  and
    A1(T3,a,b),
    A2(T2,b,cin),
    A3(T1,a,cin);
  or
    O1(co,T1,T2,T3);
  endmodule
10.  i n i t i a l语句与always 语句的关键区别是什么?
      答: 1) initial语句:此语句只执行一次。
        2) always语句:此语句总是循环执行, 或者说此语句重复执行。
11. 采用数据流方式描述2 - 4译码器。
      答:
            'timescale 1ns/ns
          module Decoder2×4(A,B,EN,Z);
input A,B,EN;
output [0:3]Z;
wire abar,Bbar;
assign #1 Abar=~A;
assign #1 Bbar=~B;
assign #2 Z[0]=~(Abar&Bbar&EN);
assign #2 Z[1]=~(Abar&B&EN);
assign #2 Z[2]=~(A&Bbar&EN);
assign #2 Z[3]=~(A&B&EN);
          endmodule
1 2. 出下面连续赋值语句的错误。
assign Reset=#2  Sel^WriteBus;
      答:不符合连续赋值语句的语法,应该为:assign #2 Reset = ^ WriteBus;
二、
1. 下列标识符哪些合法,哪些非法?
  C O u n T, 1_2 M a n y, \**1, R e a l?, \wait,  Initial
答:COunT合法,1_2 Many非法,\**1,Real?非法,\wait合法,Initial合法
2. Verilog HDL中是否有布尔类型?
答:没有
3. 如果线网类型变量说明后未赋值,其缺省值为多少?
答:z
4. Verilog HDL 允许没有显式说明的线网类型。如果是这样,怎样决定线网类型?
答:在Verilog HDL 中,有可能不必声明某种线网类型。在这样的情况下,缺省线网类型为1位 线网。
5. 下面的说明错在哪里?
i n t e g e r [0:3] R i p p l e;
答:应该是integer Ripple [0:3]
6. Verilog HDL有哪几大类数据类型?
  答:verilog hdl 有两大类数据类型:线网类型和寄存器类型。
7.Verilog HDL有哪几种寄存器类型?
答:有五种不同的寄存器类型:reg、integer、time、real、realtime。
三、
1. 假定长度为6 4个字的存储器, 每个字8位,编写Verilog 代码,按逆序交换存储器的内容。即
将第0个字与第6 3个字交换,第1个字与第6 2个字交换,依此类推。
答:
reg [7:0] mem [63:0];
integer i = 0;
reg [7:0] temp;
while(i < 32)
begin
temp = mem[i];
mem[i] = mem[63 - i];
mem[63 - i] = temp;
i = i + 1;
end
2. 假定3 2位总线A d d re s s _ B u s, 编写一个表达式,计算从第11位到第2 0位的归约与非。
答:~& addressBus[20:11]
3. 假定一条总线C o n t ro l _ B u s [ 1 5 : 0 ],编写赋值语句将总线分为两条总线: A b u s [ 0 : 9 ]和B b u s[ 6 : 1 ]。
答:Abus = ControlBus[9:0];
    Bbus = ControlBus[15:10];
4. 编写一个表达式,执行算术移位,将Qparity 中包含的8位有符号数算术移位。
答:{Qparity[7-i:0], Qparity[7:8-i]}//左移,i表示移的位数
    {Qparity[i-1:0], Qparity[7: i]}//右移,i表示移的位数
5. 使用条件操作符, 编写赋值语句选择N e x t S t a t e的值。如果C u rre n t S t a t e的值为R E S E T, 那么N e x t S t a t e的值为G O;如果C u rre n t S t a t e的值为G O,则N e x t S t a t e 的值为B U S Y;如果C u rre n t S t a t e的值为B U S Y;则N e x t S t a t e的值为R E S E T。
答:NextState = (CurrentState == RESET) ? Go : (CurrentState == Go ? BUSY : RESET)
6. 如何从标量变量A,B,C和D中产生总线B u s Q[0:3]? 如何从两条总线B u s A [ 0 : 3 ]和B u s Y
[ 2 0 : 1 5 ]形成新的总线B u s R [ 1 0 : 1 ] ?
答:BusQ[3:0] = {D, C, B, A}
    BusR[10:1] = {BusY[20:15], BusA[3:0]}
四、
1、Verilig HDL提供的内置基本门分为哪几类?
1) 多输入门、2) 多输出门、3) 三态门
2、多输入门与多输出门的区别在哪里?
  答:多输入门:and nand nor or xor xnor  这些逻辑门只有单个输出, 1个或多个输入 第一个端口是输出,其它端口是输入。
    多输出门有:buf, not 这些门都只有单个输入,一个或多个输出 最后的端口是输入端口,其余的所有端口为输出端口。
3、Verilog HDL内置的mos开关门有哪些?
  答:cmos, nmos, pmos, rcmos, rnmos, rpmos
4、门时延值的组成有哪几个值?
答: 1) 上升时延
      2) 下降时延
      3) 关断时延
5. Verilig HDL提供的内置基本门分为哪几类?
答: 1) 多输入门 2) 多输出门  3) 三态门 4) 上拉、下拉电阻 5) MOS开关 6) 双向开关
6.假定一条总线Control_Bus[7:0],编写赋值语句将总线分为两条总线:Abus [0:2]和Bbus[ 4 : 1 ]。
答:Abus=ControlBus[2:0];
    Bbus=ControlBus[15:12];
7. 编写一个表达式,执行算术移位,将Qparity 中包含的8位有符号数算术左移3位。
答:{Qparity[4:0], Qparity[7:5]}
8.要求采用数据流方式设计一个半加器,写出完整的Verilig HDL设计模块。
答:
module half_add(Sum, Cout,A, B);
input A, B;
output Sum, Cout;
assign Sum=A^B;
assign Cout=A&B;
endmodule
五、
1、操作符有  按操作数个数分为3  种类型,其中三目操作符有    2  个操作符和    3  个操作数。
2、关键字全是  小    写,标识符的首字符必须是  字母  下划线
3、数字A=5b011?的?表示  z      。设B=5b101x1,C=5b01x11,则操作运算F=B+C的结果F=   5'bxxxxx
4、VerilogHDL中保存字符串“Hello”需要  5 位。
5、声明reg [7:0]data[4:0]表示  8  位的存储单元。
6、module test(q,clk,crt);
output    q;
reg        q;
Input      clk,crt;
always @(posedge clk)
begin
if(crt==1)
  q=~q;
end         
endmodule
7、数据流建模的主要语法结构是  assign    LHS_target = RHS_expression;          语句 ,采用       assign      关键字开始。
8、线网赋值延迟可以通过    普通赋值    延迟,      隐式连续赋值        延迟和  线网声明        延迟三种方法来实现。
9、模型引用时,要指定实例名,但    硬件        用户定义        原语例外。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。