蔡觉平老师西电veriloghdl上机大作业_微电子学院
Verilog HDL数字集成电路设计原理与应用 作者 蔡觉平_ 第1章
HDL语言发展至今,产生了很多种对于数字集成电路 的描述性设计语言,并成功地应用于设计的各个阶段(建模、 仿真、验证和综合等)。20世纪80年代至今,已出现了上百 种硬件描述语言,它们对设计自动化起到了极大的促进和 推动作用,主要有Gateway Design Automation公司提出的 Verilog HDL、美国国防部高级研究计划局(DARPA)设计的 VHDL、美国国防部RPASSP(Rapid Prototyping of Application Specification Signal Processing)计划提出的基于 18 面向对象的OO VHDL(Object Oriented VHDL)、美国杜克 大学的DE VHDL(Duke Extended VHDL)
第1章 Verilog HDL数字集成电路 设计方法概述
➢1.1 数字集成电路的发展和设计方法的演变
➢ 1.2 硬件描述语言
➢1.3 Verilog HDL的发展和国际标准
➢1.4 Verilog HDL和VHDL
➢1.5 Verilog HDL在数字集成电路设计中的优点
➢1.6 功能模块的可重用性
20世纪80年代(第二次变革时期)是标准工艺加工线 (Foundry)公司与IC设计公司共同发展的阶段,主流产品是 MPU、微控制器(Micro Control Unit,MCU)及专用 IC(Application-Specific IC,ASIC)。这时,Foundry和IC设 计公司相结合的方式开始成为集成电路产业发展的新模式。 这一时期,IC产业开始进入以客户为导向的阶段。首先, 标准化功能的IC已难以满足整机客户对系统成本、可靠性 等的要求;其次,由于小尺寸加工技术的进步,软件的硬 9 件化已成为可能,超大规模集成电路(Very Large Scale Integrated,VLSI)开始成为主流芯片;
VerilogHDL复习题与答案
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中的两类主要数据类型什么答:线网数据类型和寄存器数据类型..线网类型表示构件间的物理连线; 而寄存器类型表示抽象的数据存储元件..5. U D P代表什么答:UDP代表用户定义原语6. 写出两个开关级基本门的名称..答:pmos nmos7.写出两个基本逻辑门的名称..答:and or8.在数据流描述方式中使用什么语句描述一个设计答:设计的数据流行为使用连续赋值语句进行描述9. 采用结构描述方式描述1位全加器..答:module full_adda;b;cin;s;co;input a;b;cin;output s;co;wire S1;T1;T2;T3;xorX1S1;a;b;X2s;S1;cin;andA1T3;a;b;A2T2;b;cin;A3T1;a;cin;orO1co;T1;T2;T3;endmodule10. i n i t i a l语句与always 语句的关键区别是什么答: 1 initial语句:此语句只执行一次..2 always语句:此语句总是循环执行; 或者说此语句重复执行..11.采用数据流方式描述2 - 4译码器..答:'timescale 1ns/nsmodule Decoder2×4A;B;EN;Z;input A;B;EN;output 0:3Z;wire abar;Bbar;assign #1 Abar=~A;assign #1 Bbar=~B;assign #2 Z0=~Abar&Bbar&EN;assign #2 Z1=~Abar&B&EN;assign #2 Z2=~A&Bbar&EN;assign #2 Z3=~A&B&EN;endmodule1 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. 如果线网类型变量说明后未赋值;其缺省值为多少答:z4. Verilog HDL 允许没有显式说明的线网类型..如果是这样;怎样决定线网类型答:在Verilog HDL 中;有可能不必声明某种线网类型..在这样的情况下;缺省线网类型为1位线网..5.下面的说明错在哪里i n t e g e r 0:3 R i p p l e;答:应该是integer Ripple 0:36. 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;whilei < 32begintemp = memi;memi = mem63 - i;mem63 - i = temp;i = i + 1;end2. 假定3 2位总线A d d re s s _ B u s; 编写一个表达式;计算从第11位到第2 0位的归约与非.. 答:~& addressBus20:113. 假定一条总线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 = ControlBus9:0;Bbus = ControlBus15:10;4. 编写一个表达式;执行算术移位;将Qparity 中包含的8位有符号数算术移位..答:{Qparity7-i:0; Qparity7:8-i}//左移;i表示移的位数{Qparityi-1:0; Qparity7: 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 : RESET6. 如何从标量变量A;B;C和D中产生总线B u s Q0:3 如何从两条总线B u s A 0 : 3 和B u s Y 2 0 : 1 5 形成新的总线B u s R 1 0 : 1答:BusQ3:0 = {D; C; B; A}BusR10:1 = {BusY20:15; BusA3: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; rpmos4、门时延值的组成有哪几个值答:1 上升时延2 下降时延3 关断时延5. Verilig HDL提供的内置基本门分为哪几类答:1 多输入门2 多输出门 3 三态门4 上拉、下拉电阻5 MOS开关6 双向开关6.假定一条总线Control_Bus7:0;编写赋值语句将总线分为两条总线:Abus 0:2和Bbus 4 : 1 ..答:Abus=ControlBus2:0;Bbus=ControlBus15:12;7. 编写一个表达式;执行算术移位;将Qparity 中包含的8位有符号数算术左移3位..答:{Qparity4:0; Qparity7:5}8.要求采用数据流方式设计一个半加器;写出完整的Verilig HDL设计模块..答:module half_addSum; 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=5’b011 的表示z ..设B=5’b101x1;C=5’b01x11;则操作运算F=B+C的结果F= 5'bxxxxx ..4、VerilogHDL中保存字符串“Hello”需要 5 位..5、声明reg 7:0data4:0表示5 个8 位的存储单元..6、module testq;clk;crt;output q;reg q;Input clk;crt;always @posedge clkbeginifcrt==1q=~q;endendmodule7、数据流建模的主要语法结构是assign LHS_target = RHS_expression; 语句;采用assign 关键字开始..8、线网赋值延迟可以通过普通赋值延迟; 隐式连续赋值延迟和线网声明延迟三种方法来实现..9、模型引用时;要指定实例名;但硬件和用户定义原语例外..10、语句assign #2:3:4;5:6:7portout;clk;in中的典型关断延迟是 4 ;最大关断延时是7 ..11、VerilogHDL语言可以从四个不同的抽象层次描述电路;这四层是开关级、门级、寄存器传送级、算法级12、结构化建模的主要语句是内置门原语和用户定义原语..六、1.门级建模的类型有:Aor和AND BOR和andCand和or DA、B、C都正确 C2.VerilogHDL使用的是逻辑是:A二值逻辑B四值逻辑C三值逻辑D八种强度 B3.不属于寄存器类型的是:Ainteger BregCwand Dtime C4.VerilogHDL语言中;标识符的作用范围是:A本模块B外部模块C所有模块D全局模块 A5.具有多个输出端口的门是:Aand BorCnor Dnot D七、1、语句内部时延与语句前时延效果是否一样答:不一样2、当时延表达式为负数时;时延值是如何处理得到答:取绝对值3、VeriligHDL有几种循环语句分别采用关键字是什么答:总共有四种循环语句;分别采用forever、repeat、while、for..八、1.VerilogHDL语言和C语言的结构化语句有何不同答:1.Verilog HDL是在C语言的基础上发展起来的;保留了C语言的结构特点..2.C语言由函数组成;Verilog由模块module组成3.C语言通过函数名及其端口变量实现调用;Verilog也通过模块名和端口变量实现调用4.C语言有主函数main;Verilog的个module均等价;但必有一个顶层模块;包含芯片系统与外界的所有I/O信号5.C语言是顺序执行;而Verilog的所有module均并发执行6.C 语言与Verilog语法相似..2、VerilogHDL语言的操作符类型有哪些其数据流建模采用什么来描述设计吗答:算术、逻辑、关系、等价、按位、缩减、移位、拼接、条件数据流建模采用算术与逻辑来描述设计3、VerilogHDL语言的优点是什么答:Verilog HDL语言的优势:由于它在其门级描述的底层;也就是晶体管开关的描述方面比VHDL等各种其它的HDL语言有更强的功能..所以在复杂数字逻辑电路和系统的设计仿真时更有优势;描述的设计思想、电路结构和逻辑关系清晰明了;并且设计语言简练、易学易用;其模块化分层结构在大规模设计时更能体现出优势..因此可以看出;Verilog HDL语言在EDA设计中相对与其他的各种硬件描述语言更有优势..4、下列例子中;b;c;d的最终值分别是什么initialbeginb=1’b1;c=1’b0;#10 b=1’b0;endinitialbegind=#25{b|c};end答:b=1'b0、c=1'b0、d=1'b05.一位全减器模块wsub具有三个一位输入:x;y和z前面的借位;两个一位的输出D差和B借位..计算D和B的逻辑等式如下所示:..D..yx=++..+..xyzzzxyyzx..+=B.+yzyzxx写出VerilogHDL数据流描述的该全减器wsub..答: module wsubD;B;x;y;xinput x;y;z;output D;B;assign D=~x*~y*~z+~x*y*~z+x*~y*~Z+x*y*z;assign B=~x*y+~x*z+y*z;endmodule。
[工学]西安电子科技大学verilog教程1-2
西安电子科技大学
雷达信号处理国防科技重点实验室
2. 数字信号处理
数字信处理系统往往要进行一些复杂的数字运算和数据处理, 并且又有实时响应的要求,他们通常是由高速专用数字逻辑系统或专 用数字信号处理器所构成,电路是相当复杂的。因此只有在高速大规 模集成电路设计制造技术进步的基础上,才有可能实现真正有意义的 实时数字信号处理系统。对实时数字信号处理系统的要求不断提高, 也推动了高速大规模集成电路设计制造技术的进步。现代专用集成电 路的设计是借助于电子电路设计自动化(EDA)工具完成的。学习和 掌握硬件描述语言(HDL)是使用电子电路设计自动化工具的基础。
• 由传统的观点出发,可以从三个不同的方面来研究计算,即从数 学、科学和工程的不同角度;由比较现代的观点出发,可以从四 个主要的方面来研究计算,即从算法和数据结构、编程语言、体 系结构、软件和硬件设计方法学。
• 一个复杂的数字系统设计往往是从算法到由硬线连接的门级逻辑 结构,再映射到硅片的逐步实现的过程。
&Moorby,刘明业等译。
西安电子科技大学
雷达信号处理国防科技重点实验室
课时及考试安排
授课时数:30课时 上机时数;14课时 考试时数:90分钟 成绩计算:大作业*40%+考试*60%
西安电子科技大学
雷达信号处理国防科技重点实验室
课程内容安排
第一部分 初级篇
第一章. 概述及设计工具介绍 第二章. Verilog HDL的基本知识 第三章. Verilog HDL基本概念 第四章. 常用Verilog语法之一 第五章.常用Verilog语法之二 第六章.常用Verilog语法之三 第七章.常用Verilog语法之四 第八章.常用Verilog语法之五
蔡觉平老师西电VerilogHDL上机大作业硬件描述语言_微电子学院
《Verilog HDL数字集成电路设计原理与应用》上机作业******* 班级:******* 学号:*******姓名:verilog HDL描述与仿真。
题目1:数字集成电路的设计和仿真软件;(1)学习使用Modelsim要求:中的例子;2)练习教材7.2.1 ((3)掌握设计代码和测试代码的编写;(4)掌握测试仿真流程;Modelsim软件的波形验证方式。
(5)掌握解答:语句块的区别,并写出下面信号语句块和begin-endfork-join:题目2 简述对应的程序代码AB500ns40201030解答:(1)begin-end语句块和fork-join语句块的区别:1、执行顺序:begin-end语句块按照语句顺序执行,fork-join语句块所有语句均在同一时刻执行;2、语句前面延迟时间的意义:begin-end语句块为相对于前一条语句执行结束的时间,fork-join语句块为相对于并行语句块启动的时间;3、起始时间:begin-end语句块为首句开始执行的时间,fork-join语句块为转入并行语句块的时间;4、结束时间:begin-end语句块为最后一条语句执行结束的时间,fork-join 语句块为执行时间最长的那条语句执行结束的时间;5、行为描述的意义:begin-end语句块为电路中的数据在时钟及控制信号的作用下,沿数据通道中各级寄存器之间的传送过程。
fork-join语句块为电路上电后,各电路模块同时开始工作的过程。
(2)程序代码:Begin-end语句:module initial_tb1;reg A,B;initialbeginA=0;B=1;#10 A=1;B=0;#10 B=1;#10 A=0;#10 B=0;#10 A=1;B=1;endendmoduleFrk-join语句:module wave_tb2;reg A,B;parameter T=10;initialforkA=0;B=1;#T A=1;B=0;#(2*T) B=1;#(3*T) A=0;#(4*T) B=0;#(5*T) A=1;B=1;joinendmodule3. 分别用阻塞和非阻塞赋值语句描述如下图所示移位寄存器的电路图。
verilog硬件描述语言上机
verilog硬件描述语言上机《硬件描述语言》上机作业西电微电子\第一题:用Verilog语言的结构描述和行为描述分别设计下面的电路。
A[0] Array B[0]A[1]B[1]A[2]B[2]结构描述:电路设计:module hw1(A,B,Y); input[2:0] A,B;output Y;wire w1,w2,w3;xor U1(w1,A[0],B[0]);xor U2(w2,A[1],B[1]);xor U3(w3,A[2],B[2]);nor U4(Y,w1,w2,w3);endmodule仿真测试:module test_hw1;reg[2:0] A,B;wire Y;hw1 U1(A,B,Y);initialbeginA=3'b000;B=3'b000;#50 A=3'b000;B=3'b000;#50 A=3'b111;B=3'b111;#50 A=3'b000;B=3'b110;#50 A=3'b111;B=3'b000;#50 A=3'b110;B=3'b110;#50 A=3'b011;B=3'b010;#50 A=3'b001;B=3'b011;#50 A=3'b111;B=3'b010;#50 $stop;endinitial $monitor($time,"\tA=%d\tB=%d\tY=%d",A,B,Y); Endmodule行为描述:电路设计:module hw2(A,B,Y);input[2:0] A,B;output Y;wire Y;assign Y=~((A[0]^B[0])||(A[1]^B[1])||(A[2]^B[2])); endmodule 仿真测试:module test_hw2;reg[2:0] A,B;wire Y;hw2 U1(A,B,Y);initialbeginA=3'b000;B=3'b000;#50 A=3'b000;B=3'b000;#50 A=3'b111;B=3'b111;#50 A=3'b000;B=3'b110;#50 A=3'b111;B=3'b000;#50 A=3'b110;B=3'b110;#50 A=3'b011;B=3'b010;#50 A=3'b001;B=3'b011;#50 A=3'b111;B=3'b010;#50 $stop;endinitial $monitor($time,"\tA=%b\tB=%b\tY=%b",A,B,Y); endmodule第二题:参数化电路设计1. 用行为描述方式实现下图所示的具有“one -hot”(独热)状态的环形计数器。
西安电子科技大学2021春 数字逻辑电路(大作业)题目
学习中心/函授站_姓 名学 号西安电子科技大学网络与继续教育学院2021学年上学期《数字逻辑电路》期末考试试题(综合大作业)题号 一 二 三 四 总分 题分 30104020得分考试说明:1、大作业试题于2021年4月23日公布:(1)学生于2021年4月23日至2021年5月9日在线上传大作业答卷; (2)上传时一张图片对应一张A4纸答题纸,要求拍照清晰、上传完整; 2、考试必须独立完成,如发现抄袭、雷同均按零分计;3、答案须用《西安电子科技大学网络与继续教育学院标准答题纸》手写完成,要求字迹工整、卷面干净。
一、单项选择题(本大题共15小题,每小题2分,共30分) 1.二进制数(1011001.001)2 对应的十进制数是( )A .(87.125 )10B .(59.2 )10C .(89.125) 10D .(131.1)102.将(01000011.00101000)5421BCD 转换成十六进制数为( )A .(2A.3)16B .(2B.4)16C .(2C.2)16D .(2B.1)16 3.逻辑表达项的逻辑相邻项是( ) D C B A A .B .CD .D ABC D C B A CD B A D A 4.逻辑函数的最简与非式为( ) C B A C B A C B A F ⋅+++⊕=)()( A . B . C . D. C B B A ⋅⋅C B AB ⋅BC B A ⋅C B B A ⋅⋅5.已知,使F=1的取值为( )B BD AD CD ABC F ++++=A .ABC=011B .BCD=111C .BC=11D .BD=006.逻辑函数对偶函数为( )D B C A BD F ⋅++=A . B .))()((D B C A D B F +++=))()((D B C A D B F +++=C .D .D B C A D B F +++=D B C A D B F +++=7.电路如图1.1所示,输出函数F 的表达式为( )A .B . BC C A F +=BC C A F ⋅=C .D .BC F ⋅=BC C A F +=8.函数的最简或非表达∑∑+=dF )14,10,8,3()12,6,5,4,2,1,0(式为( )A .B .C AD F ++=C A D F ++=C .D .F +++=F +++=9.在TTL 电路中,能实现“线与”逻辑的是( )A .OC 门B .异或门C .TS 门D .与或非门10.如果把JK 触发器的输入端J=K=1,该触发器就转换为( )A .DB .C .RSD .JK'T 11.8级触发器组成的计数器,其最大计数模是( )A. B.8 C. D . 1682=⨯6482=25628=12.下列逻辑部件属于时序逻辑电路的是( )A .数据分配器B.译码器C.移位寄存器D .数据比较器13.由555定时器构成的单稳态触发器,其暂态时间t w 为( )A .0.7RCB .RCC .1.1RCD .1.4RC14.n 位环形移位寄存器的无效状态数是( )A . B. C .n D.2nn n -2n n 22-15.下列说法中,哪一种是正确的( )A.单稳态电路可以作为方波产生器B.施密特电路可以定时F图1.1C.多谐振荡器可以将非矩形波矩形波D.施密特电路可以作为幅度鉴别器二、填空题(本大题共5小题,每小题2分,共10分) 16.十进制的4用余3BCD 码表示其代码是 。
基于VerilogHDL智能评测平台的“计算机组成原理”课程贯通式实验模式
I S S N1002-4956 C N11-2034/T实验技术与管理Experimental Technology and M a n a g e m e n t第38卷第3期202丨年3月Vol.38 No.3Mar. 2021D O I:10.16791/j.c n k i.s j g.2021.03.048基于V e rilo g H D L智能评测平台的“计算机组成原理”课程贯通式实验模式张磊,王建萍,郑榕,何杰,齐悦(北京科技大学计算机与通信工程学院,北京100083 )摘要:针对“计算机组成原理”课程,以计算机系统能力培养为中心目标,提出贯通式实验教学模式,设 计了基础实践、综合实践、创新实践三个层次的八项实验,构建了以M I P S单周期处理器设计为核心的实验内容,着眼于学生五方面能力的培养。
基于自研的V e r i l o g H D L智能评测平台,探索了提升学生实验效率和教师验收效率的方法,设计了更为科学合理的实验考核方式。
通过一系列改革与实践,学生在计算机系统能力上得到较好的训练,为后续专业课程的学习打下了良好基础,教师的实验教学水平也迈上一个新台阶。
关键词:M I P S单周期处理器;计算机组成原理实验;V e r i l o g H D L;智能评测平台中图分类号:T P301-4;G642文献标识码:A文章编号:1002-4956(2021)03-0236-06Through experiment model of “Computer organization’’ course based on VerilogHDL intelligent evaluation platformZHANG Lei,WANG Jianping,ZHENG Rong,HE Jie,QI Yue(School o f C o m p u t e r a n d C o m m u n i c a t i o n Engineering, University o f Science a n d T e c h n o l o g y Beijing, Beijing 100083, C h ina)A b s t r a c t:B a s e d o n the “C o m p u t e r o r g a n i z a t i o n”c o u r s e a n d b y t a k i n g the cultivation o f c o m p u t e r s y s t e m ability as the central goal, this p a p e r puts f o r w a r d a t h r o u g h e x p e r i m e n t a l t e a c h i n g m o d e l, a n d d e s i g n s eight e x p e r i m e n t s o n the basis o f basic practice, c o m p r e h e n s i v e practice a n d i n n o vative practice at the three levels a n d constructs thee x p e r i m e n t a l c o n t e n t w i t h M I P S single cy c l e p r o c e s s o r d e s i g n as the core,f o c u s i ng o n the cultivation o f students' ability in five aspects. B a s e d o n the s e l f-d e v e l o p e d V e r i l o g H D L intelligent e v a l u a t i o n platform, the m e th o d s toi m p r o v e s t u d e n t s’e x p e r i m e n t a l efficiency a n d t e a c h e r s’a c c e p t a n c e efficiency are expl o r e d, a n d a m o r e scientific a n dr e a s o n a b l e e x p e r i m e n t a l a s s e s s m e n t m e t h o d is desi g n e d. T h r o u g h a series o f r e f o r m a n d practice, students get better training for c o m p u t e r s y s t e m ability, w h i c h lays a g o o d f o u n d a t i o n for the f o l l o w-u p professional courses, a n dt e a c h e r s5 e x p e r i m e n t a l te a c h i n g level h a s also s t e p p e d to a n e w level.K e y w o r d s:M I P S single c y c l e processor; c o m p u t e r o r g a n i z a t i o n e x p e r i m e n t; V e r i l o g H D L; intelligent ev a l u a t i o np l a t f o r mi贯通式实验教学模式近年来,我校计算机专业的课程体系和实验教学 内容不断改革创新,正逐步推进贯通式教学+2]。
(完整)Verilog_HDL试卷及答案,推荐文档.doc
河北大学课程考核试卷2008 —— 2009 学年第一学期2006 级电气类专业(类)考核科目 EDA 技术课程类别必修考核类型考查考核方式闭卷类别 A一、选择题:1、下列标示符哪些是合法的( B )A、 $timeB、 _dateC、 8sumD、 mux#2、如果线网类型变量说明后未赋值,起缺省值是( D )A、 xB、 1C、 0D、 z3、现网中的值被解释为无符号数。
在连续赋值语句中,assign addr[3:0]=-3;addr 被赋予的值是( A )A、 4’b1101B、 4’b0011C、 4’bxx11D、 4’bzz114、 reg[7:0] mema[255:0] 正确的赋值是( A )A、 mema[5]=3 ’d0,B、 8’d0;C、 1’b1;D、 mema[5][3:0]=4 ’d15、在 code 模块中参数定义如下,请问top 模块中 d1 模块 delay1、 delay2 的值是 ( D )module code(x,y); module top;paramee delay1=1,delay2=1; .code #(1,5) d1(x1,y1);endmodule endmoduleA、( 1,1)B、(5,5)C、( 5,1)D、( 1,5)6、“ a=4’b11001,b=4 ’bx110”选出正确的运算结果( B )A、 a&b=0B、a&&b=1C、b&a=xD、 b&&a=x7、时间尺度定义为timescale 10ns/100ps ,选择正确答案( C )A、时间精度 10nsB、时间单位 100psC、时间精度 100psD、时间精度不确定8、若 a=9,执行 $display( “current value=%0b,a=%0d ”,a,a)正确显示为( B )A、 current value=1001,a=09B、current vale=1001,a=9C、 1001,9D、 current vale=00 001001,a=99、 aways begin #5 clk=0; #10 clk=~clk;end 产生的波形( A )A、占空比 1/3B、 clk=1C、 clk=0D、周期为 1010、在 Verilog 中定义了宏名`define sum a+b+c 下面宏名引用正确的是( C )A、 out= ’sum+d;B、 out=sum+d;C、 out=`sum+d;D、都正确二、填空题:(共 15 分,每小题 3 分)1、某一纯组合电路输入为in1,in2 和 in3,输入出为 out ,则该电路描述中always 的事件表达式应写为always@(in1,in2,in3 ); 若某一时序电路由时钟clk 信号上升沿触发,同步高电平复位信号rst 清零,该电路描述中always 的事件表达是应该写为always @( posedge clk )。
蔡觉平老师,verilog上机作业解析
上机作业题目2:简述begin-end 语句块和fork-join 语句块的区别,并写出下面信号对应的程序代码begin-end 语句块和fork-join 语句块的区别:1、执行顺序:begin-end 语句块按照语句顺序执行,fork-join 语句块所有语句均在同一时刻执行;2、语句前面延迟时间的意义:begin-end 语句块为相对于前一条语句执行结束的时间,fork-join 语句块为相对于并行语句块启动的时间;3、起始时间:begin-end 语句块为首句开始执行的时间,fork-join 语句块为转入并行语句块的时间;4、结束时间:begin-end 语句块为最后一条语句执行结束的时间,fork-join 语句块为执行时间最长的那条语句执行结束的时间;5、行为描述的意义:begin-end 语句块为电路中的数据在时钟及控制信号的作用下,沿数据通道中各级寄存器之间的传送过程。
fork-join 语句块为电路上电后,各电路模块同时开始工作的过程。
程序如下: module b(a,b); output a,b; reg a,b; initial begin a=0; b=1; #10 a=1; fork b=0; #10 b=1; #20 a=0; join#10 b=0; #10 a=1; b=1; endendmoduleA B题目3.分别用阻塞和非阻塞赋值语句描述如下图所示移位寄存器的电路图。
D Q D Q dinclk D Q D Qout3out2out1out0程序如下:module block1(din,clk,out0,out1,out2,out3); input din,clk;output out0,out1,out2,out3;reg out0,out1,out2,out3;always@(posedge clk)beginout3=out2;out2=out1;out1=out0;out0=din;endendmodulemodule non_block1(din,clk,out0,out1,out2,out3); input din,clk;output out0,out1,out2,out3;reg out0,out1,out2,out3;always@(posedge clk)beginout0<=din;out1<=out0;out2<=out1;out3<=out2;endendmodule题目4:设计16位同步计数器要求:(1)分析16位同步计数器结构和电路特点;(2)用硬件描述语言进行设计;(3)编写测试仿真并进行仿真。
HDL系统上机实验报告
实验报告课程名称:HDL及系统设计授课班级:学号:姓名:指导老师:目录目录 (2)实验一Modelsim 仿真软件的使用 (3)实验二简单组合电路设计 (8)实验三二进制全加器设计 (10)实验四二进制计数器设计 (12)参考文献 (15)实验一Modelsim 仿真软件的使用一、实验目的(1)熟悉Modelsim 软件;(2)掌握Modelsim 软件的编译、仿真方法(3)熟练运用Modelsim 软件进行HDL 程序设计开发二、实验步骤附1、建立工程运行Modelsim软件,选择菜单File > New >Project,设置工程相关信息,如图1.1所示。
图1.1 modelsim新建工程附2、添加文件到工程点击ok,产生图1.2,添加文件到工程。
图1.2 添加文件到工程如果测试文件testio.v和t_testio.v没有事先编写,则选择Create New File,并输入以下程序:module testio(key1,led1);input key1;output led1;assign led1 = ~ key1;endmodulemodule t_testio;reg data_in;wire data_out;initialbegindata_in = 0;#50 data_in = 1;#50 data_in = 0;#50 data_in = 0;$stop;endtestio test(.key1(data_in),.led1(data_out));endmodule注:两个程序两个文件附3、编译文件选择菜单 Compile > Compile All附4、查看编译后的设计单元如图1.3所示,双击t_testio。
得到编译环境图1.4。
图1.3 库文件显示图图1.4 编译环境图附5、将信号加入波形窗口a 右键点击t_testiob 选择菜单Add > Add to Wave附6、运行仿真在VSIM >下输入run 500二、实验结果三、实验内容用 Verilog HDL 程序实现一个异或门,Modelsim 仿真,观察效果。
EDA大作业格式与范例
EDA⼤作业格式与范例五⾢⼤学信息⼯程学院EDA技术课程名称:EDA技术设计题⽬:基于Verilog HDL语⾔的可整点输出学号系统院系:信息⼯程学院班级:设计者:学号:指导教师:刘战设计时间:2013.06.09五⾢⼤学电⼦系统EDA⽬录第⼀章引⾔ (3)1.1 状态机简介 (3)1.2 状态检测 (3)1.3V erilog HDL硬件描述语⾔简介 (4)1.4V erilog HDL硬件描述语⾔主要功能简介 (4)第⼆章状态检测机设计 (6)2.1 状态检测机设计要求 (6)2.2 状态检测机设计思路 (6)2.3 利⽤Quartus II软件仿真实现 (6)2.3.1 电路变量分析 (6)2.3.2 新建⼯程moore (7)2.3.3 设计输⼊ (7)2.3.4 Verilog语⾔描述 (7)2.3.5 仿真电路图 (8)2.3.6 状态装换图 (9)2.3.7创建波形⽂件 (9)2.3.8Quartus II仿真设置 (10)2.3.9仿真结果 (10)第三章总结 (11)参考⽂献 (12)第⼀章引⾔1.1状态机简介有限状态机是绝⼤部分控制电路的核⼼结构。
有限状态机是⼀种概念性机器,它能采取某种操作来响应⼀个外部事件。
具体采取的操作不仅能取决于接收到的事件,还能取决于各个事件的相对发⽣顺序。
之所以能做到这⼀点,是因为机器能跟踪⼀个内部状态,它会在收到事件后进⾏更新。
为⼀个事件⽽响应的⾏动不仅取决于事件本⾝,还取决于机器的内部状态。
另外,采取的⾏动还会决定并更新机器的状态。
这样⼀来,任何逻辑都可建模成⼀系列事件/状态组合。
状态机可归纳为4个要素,即现态、条件、动作、次态。
这样的归纳,主要是出于对状态机的内在因果关系的考虑。
“现态”和“条件”是因,“动作”和“次态”是果。
详解如下:①现态:是指当前所处的状态。
②条件:⼜称为“事件”,当⼀个条件被满⾜,将会触发⼀个动作,或者执⾏⼀次状态的迁移。
西电微电子学院数字集成电路上机作业
《数字集成电路》上机实验姓名:***班级:***学号:***第一次实验一、实验目的:掌握HSPICES软件的使用方法,用于分析二极管及CMOS反相器的直流特性,通过改变电源电压及MOS管的宽长比得到一组CMOS反相器的电压传输特性曲线,从而理解CMOS反相器电压传输特性曲线的影响因素和调整方法。
二、实验内容:1. 由上图所示,令(1)I S=10-14A,T=300K;(2) I S=10-16A,T=300K;(3) I S=10-14A,T=350K,利用SPICE求解V D1、V D2和I D。
【仿真代码】.TITLE amplifierSHU.LIB 'D:\Digital\lib\csmc06.LIB' TT.TEMP temvalueR1 1 2 2kR2 3 4 2kD1 2 3 DMODD2 4 0 DMOD.MODEL DMOD D Is=isvalue.PARAM temvalue=27 isvalue=1E-14 V1 1 0 DC 2.5.OP.ALTER.PARAM temvalue=27 isvalue=1E-16 .ALTER.PARAM temvalue=77 isvalue=1E-14 .OPIONS LIST NODE POST=2.END【结果】【分析】V D1=525.4463mv、V D2=525.4463mv和I D=362.2768uA2. (1)由下图所示,令Vin从0V变化到2.5V,步长为0.5V,利用SPICE求M1管电流变化的曲线,判断管子的工作状态;当M1的尺寸变化为W/L=4u/1u时,求I M1,并解释两条曲线存在误差的原因。
【仿真代码】.TITLE amplifierSHU.LIB 'D:\Digital\lib\mix025_1.lib' TT.PARAM dd=2.5Vdd 1 0 DC ddVin 2 0 DCM_M1 0 2 1 1 pch L=1U W=4U.DC Vin 0 2.5 0.5.PRINT I(2).OP.OPTION NODE LIST POST.END.TITLE amplifierSHU.LIB 'D:\Digital\lib\mix025_1.lib' TT.PARAM dd=2.5Vdd 1 0 DC ddVin 2 0 DCM_M1 0 2 1 1 pch L=0.25U W=1U .DC Vin 0 2.5 0.5.PRINT I(2).OP.OPTION NODE LIST POST.END【结果】【分析】在1.5V之前是工作在线性区,1.5-2V之间是可变电阻区,2V以后工作在饱和区。
蔡觉平老师西电veriloghdl上机大作业_微电子学院
《Verilog HDL数字集成电路设计原理与应用》上机作业班级:*******学号:*******姓名:*******题目1:数字集成电路的verilog HDL描述与仿真。
要求:(1)学习使用Modelsim设计和仿真软件;(2)练习教材中的例子;(3)掌握设计代码和测试代码的编写;(4)掌握测试仿真流程;(5)掌握Modelsim软件的波形验证方式。
解答:题目2:简述begin-end语句块和fork-join语句块的区别,并写出下面信号对应的程序代码AB解答:(1)begin-end语句块和fork-join语句块的区别:1、执行顺序:begin-end语句块按照语句顺序执行,fork-join语句块所有语句均在同一时刻执行;2、语句前面延迟时间的意义:begin-end语句块为相对于前一条语句执行结束的时间,fork-join语句块为相对于并行语句块启动的时间;3、起始时间:begin-end语句块为首句开始执行的时间,fork-join语句块为转入并行语句块的时间;4、结束时间:begin-end语句块为最后一条语句执行结束的时间,fork-join 语句块为执行时间最长的那条语句执行结束的时间;5、行为描述的意义:begin-end语句块为电路中的数据在时钟及控制信号的作用下,沿数据通道中各级寄存器之间的传送过程。
fork-join语句块为电路上电后,各电路模块同时开始工作的过程。
(2)程序代码:Begin-end语句:module initial_tb1;reg A,B;initialbeginA=0;B=1;#10 A=1;B=0;#10 B=1;#10 A=0;#10 B=0;#10 A=1;B=1;endendmoduleFrk-join语句:module wave_tb2;reg A,B;parameter T=10;initialforkA=0;B=1;#T A=1;B=0;#(2*T) B=1;#(3*T) A=0;#(4*T) B=0;#(5*T) A=1;B=1;joinendmodule题目3. 分别用阻塞和非阻塞赋值语句描述如下图所示移位寄存器的电路图。
FPGA-Verilog试题(西安电子科技大学)
西安电子科技大学考试时间分钟试题题号一二三四五六七八九十总分分数1.考试形式:闭(开)卷;2.本试卷共四大题,满分100分。
班级学号姓名任课教师一、选择题(每题2分,共18分)1.下面哪个是可以用verilog语言进行描述,而不能用VHDL语言进行描述的级别?(A)(A)开关级(B)门电路级(C)体系结构级(D)寄存器传输级2.在verilog中,下列语句哪个不是分支语句?(D)(A)if-else(B)case(C)casez(D)repeat3.下列哪些Verilog的基本门级元件是多输出(D)(A)nand(B)nor(C)and(D)not4.Verilog连线类型的驱动强度说明被省略时,则默认的输出驱动强度为(B)(A)supply(B)strong(C)pull(D)weak5.元件实例语句“notif1#(1:3:4,2:3:4,1:2:4)U1(out,in,ctrl);”中截至延迟的典型值为(B)(A)1(B)2(C)3(D)46.已知“a=1b’1;b=3b'001;”那么{a,b}=(C)(A)4b'0011(B)3b'001(C)4b'1001(D)3b'101第2页共8页7.根据调用子模块的不同抽象级别,模块的结构描述可以分为(ABC)(A)模块级(B)门级(C)开关级(D)寄存器级8.在verilog语言中,a=4b'1011,那么&a=(D)(A)4b'1011(B)4b'1111(C)1b'1(D)1b'09.在verilog语言中整型数据与(C)位寄存器数据在实际意义上是相同的。
(A)8(B)16(C)32(D)64二、简答题(2题,共16分)1.Verilog HDL语言进行电路设计方法有哪几种(8分)1、自上而下的设计方法(Top-Down)2、自下而上的设计方法(Bottom-Up)3、综合设计的方法2.specparam语句和parameter语句在参数说明方面不同之处是什么(8分)。
Verilog HDL数字集成电路设计原理与应用 作者 蔡觉平 第3章
1. 显式连续赋值语句
显式连续赋值语句的语法格式如下:
<net_declaration><range><name>; assign #<delay><name>= Assignment expression;
这种格式的连续赋值语句包含两条语句:第一条语句
是对连线型变量进行类型说明的语句;第二条语句是对这 个连线型变量进行连续赋值的赋值语句。赋值语句是由关 键词assign引导的,它能够用来驱动连线型变量,而且只能 5 对连线型变量进行赋值,主要用于对wire型变量的赋值。
计数字电路更类似于使用一些高级语言(如C语言)进行编程,
17 而且Verilog HDL行为级建模的语法结构与C语言也非常相 似。Verilog HDL提供了许多行为级建模语法结构,为设计 者的使用提供了很大的灵活性。
行为描述常常用于复杂数字逻辑系统的顶层设计中,
也就是通过行为建模把一个复杂的系统分解成可操作的若
end initial过程块在进行仿真时从模拟0时刻开始执行,它
在仿真过程中只执行一次,在执行完一次后该initial过程块
就被挂起,不再执行。如果一个模块中存在多个initial过程 块,则每个initial过程块都是同时从0时刻开始并行执行的。
initial过程块内的多条行为语句可以是顺序执行的,也可以
图3.2-1 Verilog HDL行为描述中模块的构成框架
表3.2-1 Verilog HDL行为描述语句及其可综合性
类 别 过程语句 initial always 串行语句块 begin-end 并行语句块 fork-join 连续赋值语句 assign 过程赋值语句=、<= if-else case,casez,casex forever 循环语句 repeat while for `define 编译向导语句 `include `ifdef,`else,`endif √ √ √ √ √ √ √ √ √ 语 句 可综合性
Verilog-HDL数字集成电路设计原理与应用-作者-蔡觉平-第7章
仿真的结果取决于设计描述是否准确反映了设计的物 理实现。仿真器不是一个静态工具,需要Stimulus(激励)和 Response(输出)。Stimulus由模拟设计工作环境的Testbench 产生,Response为仿真的输出,由设计者确定输出的有效 性。
目前,仿真工具比较多,其中Cadence公司的NCVerilog HDL、Synopsys公司的VCS和Mentor公司的 ModelSim都是业界广泛使用的仿真工具。
7.1 数字集成电路设计流程简介
在EDA技术高度发达的今天,没有一个设计工程师队 伍能够用人工方法有效、全面、正确地设计和管理含有几 3 百万个门的现代集成电路。利用EDA工具,工程师可以从 概念、算法、协议等开始设计电子系统,
大量工作可以通过计算机完成,并可以将电子产品从系统 规划、电路设计、性能分析到封装、版图的整个过程在计 算机上自动完成。这样做有利于缩短设计周期、提高设计 正确性、降低设计成本、保证产品性能,尤其是可增加一 次投片的成功率,因此这种方法在大规模集成电路设计中 已经普遍被采用。
20
7.1.8 物理验证
物理验证通常包括设计规则检测(DRC)、版图与原理 图对照(LVS)和信号完整性分析
(SI)等。其中DRC用来检查版图设计是否满足工艺线 能够加工的最小线宽、最小图形间距、金属宽度、栅和有 源区交叠的最小长度等。如果版图设计违反设计规则,那 么极有可能导致芯片在加工的过程中成为废品。LVS则用 来保证版图设计与其电路设计的匹配,保证它们的一致性。 21 如果不一致,就需要修改版图设计。SI用来分析和调整芯 片设计的一致性,避免串扰噪声、串扰延迟以及电迁移等 问题。
目前主要的物理验证工具有Mentor公司的Calibre、 Cadence公司的Dracula和Diva以及Synopsys公司的Hercules。 此外,各大厂商也推出了针对信号完整性分析的工具。
verilog大作业
西安电子科技大学Verilog大作业—自动售邮票机院系:电子工程学院姓名:李岩学号: 1202121468专业:电子与通信工程自动售邮票机1. 题目介绍本设计主要以程序为主,并通过波形仿真来验证程序功能的实现。
当选择好邮票并投币后,数码管显示所选邮票价格及投入钱币价格;按下确认付款开关,交易成功,数码管显示应找多少钱,蜂鸣器响,对应商品LED灯亮。
若所投钱币不足所选商品价格,对应警告钱币不足的LED灯亮;当继续投入钱币直到达到所选邮票价格,按下确认付款开关,交易同样成功。
具体设计要求如下:(1)机器有一个投币孔,每次只能投入一枚硬币。
机器能自动识别硬币金额,最大为 1元,最小为1角。
购票者可选择的邮票面值有1元和5角两种,每次售出1 枚邮票。
(2)灯亮时表示该邮票售出。
(3)用开关分别模拟1角、5角硬币和1元硬币投入,可以用几只发光二极管分别代表找回剩余的硬币。
(4)每次只能售出一种邮票,当所投硬币达到或超过购买者所选面值时,售出货物并找回剩余的硬币,回到初始状态;(5)当所投硬币值不足面值时,可通过一个复位键退回所投硬币,回到初始状态。
2.程序状态框图3 程序介绍首先声明,本程序具有完全自主知识产权,是经过多次尝试以及错误之后的成果。
本程序的核心是利用我们最近刚学的状态机来实现机器不同状态之前的转换。
由于没有实验板,只能使用波形仿真,所以最后的functions(led显示函数)注释起来了,但程序还是保留了数码管动态扫描部分。
程序基本可以分为三大模块:(1)状态机模块,这是程序的核心部分。
在写程序之前看过网上的一些现有例程,但都没有解决一个我认为的核心问题,那就是如何解决连续投币问题。
后来经过不断地试错,发现可以使用状态机完美地解决这个问题。
(2)数码管动态扫描部分,它的作用是按照给定时钟来回点亮四个数码管(两个dis_money,两个dis_price),使数码管在人的肉眼看来一直是亮的。
这部分由于没有实验板,所以看不出其发挥出来的功能。
Verilog HDL数字集成电路设计原理与应用(第二版)(蔡觉平) (4)
本章通过数字电路中基本逻辑电路的Verilog HDL程序设计 进行讲述,要求读者掌握基本逻辑电路的可综合性设计,为 具有特定功能的复杂电路的设计打下基础。
组合电路的设计需要从以下几个方面考虑:首先,所 用的逻辑器件数目最少,器件的种类最少,且器件之间的连 线最简单,这样的电路称为“最小化”电路。其次,为了满 足速度要求,应使级数尽量少,以减少门电路的延迟;电路 的功耗应尽可能地小,工作时稳定可靠。
组合逻辑电路的描述方式有四种:真值表、逻辑代数、 结构描述、抽象描述。采用Verilog HDL进行组合逻辑电路 设计主要采用的就是这几种方式。下面结合具体的实例简单 介绍达四种描述方式。 20
6
例4.1-1 用Verilog HDL语言设计模256(8 bit)计数 器。
(a) 可综合程序描述方式: module counter (count,clk,reset); output count; input clk,reset; reg [7:0] count; reg out; always @(posedge clk) 7
wire [1:0] sum; reg OUT; assign sum=A+B+C; always @(sum)
if (sum>1) else
endmodule
OUT=1; OUT=0;
32
可以看到,以上4种Verilog HDL描述方式都可以对表决 电路进行设计。这里应该指出的是,Verilog HDL程序是对 逻辑电路功能的描述性设计,并非最终得到的电路。EDA综 合工具可以将Verilog HDL程序综合成物理电路形式,通过 电路优化,从而得到符合设计要求的最简化电路。采用 Synplify软件对上面4种方法中任一种方法设计的Verilog HDL程序进行综合(采用Altera公司的Stratix Ⅱ器件),可 以得到相同的最简化电路,如图4.2-4所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《Verilog HDL数字集成电路设计原理与应用》上机作业班级:*******学号:*******姓名:*******题目1:数字集成电路的verilog HDL描述与仿真。
要求:(1)学习使用Modelsim设计和仿真软件;(2)练习教材中的例子;(3)掌握设计代码和测试代码的编写;(4)掌握测试仿真流程;(5)掌握Modelsim软件的波形验证方式。
解答:题目2:简述begin-end语句块和fork-join语句块的区别,并写出下面信号对应的程序代码AB解答:(1)begin-end语句块和fork-join语句块的区别:1、执行顺序:begin-end语句块按照语句顺序执行,fork-join语句块所有语句均在同一时刻执行;2、语句前面延迟时间的意义:begin-end语句块为相对于前一条语句执行结束的时间,fork-join语句块为相对于并行语句块启动的时间;3、起始时间:begin-end语句块为首句开始执行的时间,fork-join语句块为转入并行语句块的时间;4、结束时间:begin-end语句块为最后一条语句执行结束的时间,fork-join 语句块为执行时间最长的那条语句执行结束的时间;5、行为描述的意义:begin-end语句块为电路中的数据在时钟及控制信号的作用下,沿数据通道中各级寄存器之间的传送过程。
fork-join语句块为电路上电后,各电路模块同时开始工作的过程。
(2)程序代码:Begin-end语句:module initial_tb1;reg A,B;initialbeginA=0;B=1;#10 A=1;B=0;#10 B=1;#10 A=0;#10 B=0;#10 A=1;B=1;endendmoduleFrk-join语句:module wave_tb2;reg A,B;parameter T=10;initialforkA=0;B=1;#T A=1;B=0;#(2*T) B=1;#(3*T) A=0;#(4*T) B=0;#(5*T) A=1;B=1;joinendmodule题目3. 分别用阻塞和非阻塞赋值语句描述如下图所示移位寄存器的电路图。
解答:(1)阻塞赋值语句module block2(din,clk,out0,out1,out2,out3);input din,clk;output out0,out1,out2,out3;reg out0,out1,out2,out3;always@(posedge clk)beginout0=din;out1=out0;out2=out1;out3=out2;endendmodule(2)非阻塞赋值语句module non_block1 (din,clk,out0,out1,out2,out3);input din,clk;output out0,out1,out2,out3;reg out0,out1,out2,out3;always@(posedge clk)beginout0<=din;out1<=out0;out2<=out1;out3<=out2;endendmodule题目4:设计16位同步计数器要求:(1)分析16位同步计数器结构和电路特点;(2)用硬件描述语言进行设计;(3)编写测试仿真并进行仿真。
解答:(1)电路特点:同步计数器的时间信号是同步的;每当到达最高计数后就会重新计数。
(2)程序代码:module comp_16 (count, clk, rst );output [15:0] count;input clk,rst;reg [15:0] count;always @ (posedge clk)if (rst) count<=16'b0000000000000000;elseif (count==16'b111)count<=16'b0000000000000000;elsecount<=count+1;endmodule(3)仿真代码:module comp_16_tb;wire [15:0] count;reg clk,rst;comp_16 U1 (count, clk, rst );always #1 clk=~clk;initialbeginclk=0;rst=0;#1 rst=1;#10 rst=0;#10 rst=1;#10 rst=0;#99999 $finish;endendmodule题目5. 试用Verilog HDL门级描述方式描述如下图所示的电路。
解答:module zy(D0,D1,D2,D3,S1,S2,T0,T1,T2,T3,Z);output Z;input D0,D1,D2,D3,S1,S2;wire T0,T1,T2,T3,wire1,wire2;not U1(wire1,S1),U2(wire2,S2);and U3(T0,D0,wire2,wire1),U4(T1,D1,S1,wire1),U5(T2,D2,S1,wire2),U6(T3,D3,S1,S2);or U7(Z,T0,T1,T2,T3,);endmodule题目6. 试用查找真值表的方式实现真值表中的加法器,写出Verilog HDL代码:解答:module homework6(SUM,COUT,A,B,CIN);output SUM,COUT;input A,B,CIN;reg SUM,COUT;always@(A or B or CIN)case({A,B,CIN})3'b000:SUM<=0;3'b000:COUT<=0;3'b001:SUM<=1;3'b001:COUT<=0;3'b010:SUM<=1;3'b010:COUT<=0;3'b011:SUM<=0;3'b011:COUT<=1;3'b100:SUM<=1;3'b100:COUT<=0;3'b101:SUM<=0;3'b101:COUT<=1;3'b110:SUM<=0;3'b110:COUT<=1;3'b111:SUM<=1;3'b111: COUT<=1;endcaseendmodule题目7:设计16位同步加法器和乘法器要求:(1)分析16位同步加法器和乘法器结构和电路特点;(2)用硬件描述语言进行设计;(3)编写测试仿真并进行仿真。
解答:(1)16位同步加法器和乘法器结构和电路特点:加法器的进位只用考虑一位,但是乘法器的进位要考虑到32位才行。
(2)程序代码:16位同步加法器:module adder(a,b,c,sum,cout);output [15:0]sum;output cout;input [15:0]a,b;input c;assign {cout,sum}=a+b+c;endmodule16位同步乘法器:module multiplier(a,b,mul);input [15:0]a,b;output [31:0]mul;assign mul=a*b;endmodule(3)仿真代码:16位同步加法器:module adder_tb;reg [15:0]a,b;reg c;wire [15:0]sum;wire cout;initialbegina=8;b=8;c=1;endinitialbegin#10 a=16'b111;#10 b=1;endadder U2(.a (a),.b (b),.c(c),.cout(cout),.sum(sum));endmodule16位同步乘法器:module multiplier_tb;reg [15:0]a,b;wire [31:0]mul;initialbegina=3;b=8;endinitialbegin#10 a=100;#15 b=100;endmultiplier U1(.a(a),.b(b),.mul(mul));endmodule仿真截图:加法器:乘法器:题目8. 将下面的状态转移图用Verilog HDL描述。
在图中,状态机的输入只与状态的跳转有关,与状态机的输出无关,因此该状态机为摩尔型状态机。
下面为三段式描述方式。
解答:程序代码:module homework8(clk,out,step,clr);output [2:0]out;input step,clk,clr;reg [2:0]out;reg [1:0]state,next_state;always @(posedge clk)state<=next_state;always @(state or clr)if(clr)next_state<=0;elsecase(state)2'b00:case(step)1'b0:begin next_state<=2'b00;out<=3'b001;end 1'b1:begin next_state<=2'b01;out<=3'b001;end endcase2'b01:beginout<=3'b010;next_state<=2'b10;end2'b10:case(step)1'b0:begin next_state<=2'b00;out<=3'b100;end 1'b1:begin next_state<=2'b11;out<=3'b100;end endcase2'b11:case(step)1'b0:begin next_state<=2'b11;out<=3'b111;end 1'b1:begin next_state<=2'b00;out<=3'b111;end endcaseendcaseendmodule仿真代码:module homework8_tb;reg clk,step,clr;wire [3:0]out;always#5 clk=~clk;initialbegin clk=0;clr=1;step=1;endinitialbegin#5clr=0;#10 step=0;#10step=1;endhomework8 U1(clk,out,step,clr);endmodule仿真截图:题目9. 如下图所示电路,若其延迟时间设定如表所示,试写Verilog HDL程序设计该电路。