文档库 最新最全的文档下载
当前位置:文档库 › verilog作业题

verilog作业题

verilog作业题
verilog作业题

1、以结构描述方式实现下列逻辑:

F=AB+ACD(CD的非)

2、以连续赋值语句设计8位总线驱动器。

3、以always语句设计8位总线驱动器。

4、以always语句设计8位双向总线驱动器。

1、设计一个具有低电平使能端和高电平使能端的2-4译码器。

2、设计一个JK触发器。

3、设计一个24分频期,要求输出信号占空比为1:1。

4、一个挂在总线上的16位寄存器。

5、设计一个8位线编码器,输入为D7 -D0 ,D7优先级最高,D0最低。当Di为高电平输入时,F=1,OUT为其编码,否则F=0。

1、以结构描述方式实现下列逻辑:

Y=ABC(BC的非)+DE+ CFG(CFG的非)

2、试设计一个具有使能端ncs的2-4译码器。

3、试设计一个4位加减运算器,输入为A、B、CIN、M,输出为OUT和COUT。当M=0时执行加法运算,M=1时,执行减法运算。

4、试设计一个14分频器,要求占空比1:1。

5、试设计一个具有三态输出缓冲的8位数据寄存器。

6、试设计一个具有清0和置数功能的8位二进制加1计数器。

7、设计一个16位移位寄存器。

8、设计一个16位双向移位寄存器,当d=0时右移, d=1时左移。

1设中断请求有效电平为高电平,中断请求输入线INTR0—INTR15中INTR15优先权最高。试设计一个中断优先权编码器。当有中断请求时,INT=1,同时输出中断请求输入线的编码V;否则INT=0,V的输出任意。

2试设计一个具有同步清0和同步置数功能的8位二进制加1计数器。

3试设计一个“11010100”序列检测器.

4设计一个8位双向移位寄存器。其I/O端口和控制端口包括d(移位方向控制,当d=0时右移, d=1时左移)、数据串行输入din、数据并行输入data (8位)、dout数据串行输出、数据并行输出q(8位)、同步时钟clk、并行置数load等。

5设计每周期8个采样点的锯齿波信号发生器。

6设计每周期8个采样点的正弦波信号发生器。

基于VerilogHDL的万年历

基于Verilog HDL 的万年历 设计与总结报告 题目名称:基于Verilog HDL 的万年历研究设计报告人:__________ __ ____________ __ 院系/年级/ 专业:___ _____ 指导教师:_ ___________________ 制作日期:_ __ _

基于Verilog HDL 的万年历 摘要 基于Verilog HDL的万年历设计,主要完成的任务是使用Verilog 语言,在Quartus2 上完成电路设计,程序开发模拟,基于功能是能够显示/ 修改年月日时分秒。电路设计模块:分频、控制、时间显示调整、时分秒、年月日、显示控制、译码器。各个模块完成不同的任务,合在一起就构成了万年历电路设计。软件模拟直接在Quartus2 上进行。 随着科学技术的发展,时间观念越来越重,但是老式的钟表以及日历等时间显示工具已不合时宜。对此,数字钟表的设计有了用武之地。基于Verilog 的万年历设计,采用软件开发模拟,开发成本低,而且在功能设计上有了很大的灵活度。同时,该设计的精度远远超过钟表,并且不需要维修。综上所述,本设计具有设计方便、功能多样、电路简洁、成本低廉等优点。符合社会发展趋势,前景广阔。

关键词:万年历,Verilog HDL ,Quartus2

Based on the design of the calendar Verilog HDL circuit Abstract The calendar based on FPGA design, the main task is to use eVrilog language, in the Quartus2 complete circuit design module is divided into several modules: point frequency, control and time display adjustment, arc, date, display, when control, decoder. Each module complete different tasks, together they form a calendar system circuit design. Software simulation on directly in Quartus2. With the development of technology and science, the concept of time is more and more heavey, but old-fashioned clock and calendar etc time display tools are not very good. Key words : Calendar, Verilog HDL ,Quartus2

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); initial begin A=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; end initial $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 仿真测试:

蔡觉平老师西电Verilog HDL上机大作业(硬件描述语言)_微电子学院

《Verilog HDL 数字集成电路设计原理与应用》上机作业 班级:******* 学号:******* 姓名:******* 题目1:数字集成电路的verilog HDL 描述与仿真。 要求:(1)学习使用Modelsim 设计和仿真软件; (2)练习教材7.2.1中的例子; (3)掌握设计代码和测试代码的编写; (4)掌握测试仿真流程; (5)掌握Modelsim 软件的波形验证方式。 解答: 题目2: 简述begin-end 语句块和fork-join 语句块的区别,并写出下面信号对应的程序代码 A B

解答: (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; initial begin A=0;B=1; #10 A=1;B=0; #10 B=1; #10 A=0; #10 B=0; #10 A=1;B=1; end endmodule Frk-join语句: module wave_tb2; reg A,B; parameter T=10; initial fork A=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; join endmodule

基于Verilog的课程设计

基于Verilog的课程设计 直流电机的PWM控制 指导老师:翁嘉民 班级:1031电气自动化技术成员:李高峰9112 王俊才9186 孟令朋9143

目录 1.绪论 (3) 直流电机介绍 (3) 1.1.1直流电机的特点 (3) 1.1.2直流电机的应用 (3) 介绍 (4) 介绍 (4) V ERILOG HDL硬件描述语言 (5) 1.4.1V ERILOG HDL硬件描述语言介绍 (5) 1.4.2V ERILOG HDL功能 (5) PWM脉冲宽度调制介绍 (6) 直流电机的PWM控制 (7) 2.设计原理 (8) 设计原理框图 (8) 原理图 (9) 模块设计 (9) 2.3.1 MOTO_TEST模块 (9) 2.3.4计数器模块 (12) 7实训心得 (13) 参考文献 (13)

直流电机的PWM控制器的设计 1.绪论 直流电机介绍 直流电机是实现直流电能与机械能之间相互转换的一种电力机械,按照直流电机的用途分为直流电动机和直流发电机两类。能够将机械能转换成直流电能的电机称为直流发电机;能够将直流电能转换成机械能的电机称为直流电动机。 1.1.1直流电机的特点 从直流电机与交流电机相比中可以看出,直流电机具有优良的调速性能和启动性能。直流电机具有宽广的调速范围,平滑的无级调速特性,可实现频繁的无级快速启动、制动和反转;过载能力大,能承受频繁的冲击负载;能满足自动化生产系统中各种特殊运行的要求。而直流发电机则能提供无脉动的大功率直流电源,且输出电压可以精确地调节和控制。 1.1.2直流电机的应用 直流电机是交通、工矿、建筑等行业中的常见动力机械,是机电行业人员的重要工作对象和工具。在某些要求调速范围广、速度快、精密度高、控制性能优异的场合,直流电机的应用目前仍占有较大的比重,如大型可逆式轧钢机、内燃机车、矿井卷扬机、造纸和印刷机械、宾馆高速电梯、城市电车、电动自行车、龙门刨床、电力机车、地铁列车、船舶机械、大型精密机床和大型起重机等生产机械中。

VerilogHDL与FPGA设计基础_授课教案0709

西安邮电大学课程教案 课程名称:VerilogHDL与FPGA设计基础 授课教师:李哲 授课教师所在学院:电子工程学院 授课班级:电路1201~02 授课学期: 2014-2015-01学期

一、基本信息 课程名称VerilogHDL与FPGA设计基础 课程性质○必修⊙限选○选修○素拓○跨学科授课专业班级学生人数:67 所处年级○一年级○二年级⊙三年级○四年级 总学时64 理论课时40 实验课时24 学分 4 课程教材VerilogHDL与FPGA设计基础 上课时间2014-2015-1 上课地点A337、A322 答疑时间答疑地点2#112 先修课程 本课程在授课对象所学专业人才培养中的作用与地位本课程是集成电路设计与系统集成专业的一门专业基础课程,学生在先修课程数字电路基础上,掌握使用VerilogHDL进行数字电路设计、仿真,并在Fpga器件上实现数字逻辑。初步掌握集成电路和数字系统的设计方法,培养学生从事集成电路设计技能,对学生进入集成电路设计领域有很重要作用。 本课程在知识传授、能力提升、素质培养各方面的教学目标掌握基于FPGA Verilog HDL实现数字电路仿真的方法。一方面可以使学生掌握一种适合产品样机和小批量生产的理想手段,另一方面也为进一步学习专用集成电路芯片设计打下了良好基础。通过本课程的学习可以使学生掌握1)自顶向下的全正向设计思想;2)可编程逻辑器件的基本知识和相关软件的使用方法;3)FPGA电路设计的方法和技巧。基本具备中小规模可编程逻辑器件的设计开发能力。 学生情况分析注:本栏目建议各位老师通过与学生深入沟通、向前续课程授课教师和辅导员老师了解情况等各种方式,充分了解授课学生的实际情况,积极有效地开展教学。

基于VerilogHDL的万年历(20210311075245)

基于Verilog HDL的万年历 设计与总结报告 题目名称:基于Verilog HDL的万年历研究设计 报告人:___________________________________________ 院系/年级/专业:________________________ 指导教师:________________________________________ 制作日期:_____________________________

基于Verilog HDL的万年历 摘要 基于Verilog HDL的万年历设计,主要完成的任务是使用Verilog 语言,在Quartus2上完成电路设计,程序开发模拟,基于功能是能够显示/修改年月日时分秒。电路设计模块:分频、控制、时间显示调整、时分秒、年月日、显示控制、译码器。各个模块完成不同的任务,合在一起就构成了万年历电路设计。软件模拟直接在Quartus2上进行。 随着科学技术的发展,时间观念越来越重,但是老式的钟表以 及日历等时间显示工具已不合时宜。对此,数字钟表的设计有了用武之地。基于Verilog的万年历设计,采用软件开发模拟,开发成本低,而且在功能设计上有了很大的灵活度。同时,该设计的精度远远超过钟表,并且不需要维修。综上所述,本设计具有设计方便、功能多样、电路简洁、成本低廉等优点。符合社会发展趋势,前景广阔。 关键词:万年历,Verilog HDL ,Quartus2

Based on the design of the calendar Verilog HDL circuit Abstract The cale ndar based on FPGA desig n, the main task is to use VTilog Ian guage, in the Quartus2 complete circuit desig n module is divided into several modules: point freque ncy, con trol and time display adjustme nt, arc, date, display, whe n con trol, decoder. Each module complete differe nt tasks, together they form a calendar system circuit design. Software simulation on directly in Quartus2. With the developme nt of tech no logy and scie nee, the con cept of time is more and more heavey, but old-fashi oned clock and cale ndar etc time display tools are not very good. Key words : Calendar,Verilog HDL , Quartus2

verilog语言设计-同步清零计数器

数字电子技术基础可编程逻辑器件大作业106进制同步清零计数器 班级:0906101 学号:1090610106 姓名:康代涛

1.同步清零计数器 1.1设计目的与要求 利用Verilog HDL设计一个以自己学号后三位为模的计数器。 设计要求:1.编写源程序2.给出仿真电路图和仿真波形图。 1.2 Verilog HDL源代码 module counter_106(clk,reset,out); input clk; input reset; output[6:0] out; reg[6:0] out; always@(posedge clk) begin if(reset==1) out<=0; else if(out==105) out<=0; else out<=out+1; end endmodule 1.3仿真原理图 同步清零计数器的仿真电路如下图所示: 1.4 仿真波形图 同步清零计数器仿真波形如下图所示:

2设计总结 本次设计需要利用Verilog HDL设计一个以自己学号后三位为模的计数器,而且要编写源程序并给出仿真电路图和仿真波形图。 通过本次设计,使自己初步了解了如何利用Quartus II 9.1 设计可编程逻辑器件,巩固了用Verilog HDL 语言编写硬件描述电路,以这样一种方式使自己复习并进一步熟悉了Verilog语言,对自己在数字电子技术方面的学习有很大作用。 参考文献: [1]杨春玲,王淑娟,《数字电子技术基础》,高等教育出版社,2011.6 [2]王立欣,杨春玲,《电子技术实验与课程设计》,哈尔滨工业大学出版社,2009 [3]廉玉欣,《电子技术基础实验教程》,机械工业出版社,2010

蔡觉平老师,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; end endmodule A B

题目3.分别用阻塞和非阻塞赋值语句描述如下图所示移位寄存器的电路图。 程序如下: module block1(din,clk,out0,out1,out2,out3); input din,clk; output out0,out1,out2,out3; reg out0,out1,out2,out3; always@(posedge clk) begin out3=out2; out2=out1; out1=out0; out0=din; end endmodule

基于verilog的数字秒表的设计实现1

基于FPGA数字秒表的设计实现 一、测试要求 1 有源晶振频率:48MHZ 2 测试计时范围:00’00”00 ~ 59’59”99,显示的最长时间为59分59 秒 3 数字秒表的计时精度是10ms 4 显示工作方式: a、用八位BCD七段数码管显示读数 b、采用记忆显示方法 c、用两个按钮开关(一个按钮使秒表复位,另一个按钮 控制秒表的启动/暂停) 二、设计要求 1 设计出符合设计要求的解决方案 2设计出单元电路 3 利用软件对各单元电路及整体电路进行仿真 4 在开发板上实现设计 5 撰写设计报告 三、秒表功能键 1、power:秒表电源键 2、Reset:秒表复位清零键 3、run/stop:秒表启动/停止键 四、实验原理 1 实验设计原理 (1)、秒表的逻辑结构较简单,它主要由十进制计数器、六进制计数器、分频器、数据选择器、和显示译码器等组成。在整个秒表中最关键的是如何获得一个精确的100HZ计时脉冲,除此之外,整个秒表还需有一个启动信号和一个清零信号,以便秒表能随意停止、启动以及清零复位。 (2)、秒表有共有8个输出显示,其中6个显示输出数据,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应;另外两个为间隔符,显示‘-’。8个计数器的输出全都为BCD码输出,这样便与同显示译码器连接。

(3)、可定义一个24位二进制的寄存器hour用于存放8个计数器的输出,寄存器从高位到低位每连续4位为一组,分别存放百分之一秒、十分之一秒、间隔符、秒、十秒、间隔符、分、十分。由频率信号输出端输出频率为100HZ的时钟信号,输入到百分之一秒模块的时钟端clk,百分之一秒模块为100进制的计数器,当计数到“1001”时,百分之一秒模块清零,同时十分之一秒模块加1;十分之一秒模块也为100进制的计数器,当计数到“1001”时,十分之一秒模块清零,同时秒模块加1;以此类推。直到分模块计数到59进59。 (4)、为了消除按键消抖问题,定义寄存器key-inner来存储按键key的输入信号,key-flag作为启动/暂停的转换标志,key-inner[0]出现一个下降沿时,key-flag 取反一次,当key-flag为0时计数器启动,1时计数器暂停,当key-flag为1同时key-inner[1]为9时,计数器清零。 (5)、定义18位寄存器count用于存放分频和扫描用的计数值。48MHZ的时钟信号480000分频,得到100HZ的时钟信号,而计数器已48MHZ的时钟信号218分频扫描8个七段译码器。 2 实验设计方案 利用一块芯片完成除时钟源,按键和显示器之外的所有数字电路功能。所有数字逻辑功能都在CPLD器件上用Verilog语言实现。这样设计具有体积小,设计周期短,调试方便,故障率地和修改升级容易等特点,本设计采用依次进行消抖、分频、数码管动态扫描、显示(译码)和计数流水线的设计方法。 3 实验原理框图 秒表原理框图 扫描显示 分频48Mhz Reg[1:0]] 计数100hz

Verilog hw 电子科技大学

第一章作业 1、集成电路是哪一年有谁发明的? 2、诺伊斯对集成电路的主要贡献是什么 3、MOS场效应管是哪年出现的? 4、集成电路的发展规律是由谁总结提出来的,具体规律是什么 5、叙述集成电路的层次设计步骤 第二章作业 1、集成电路的加工有哪些基本工艺? 2、简述光刻工艺过程及作用 3、简述双阱CMOS集成电路工艺加工过程? 4、MOS晶体管什么类型? 5、版图设计的过程分为那几步? 6、设MOS电路中某层的电阻率ρ=1?·cm,该层厚度是1μm,试计算: (1)有这层材料制作的长度为55μm、宽度为5μm的电阻值 (2)若使用方块电阻的概念,计算该材料的方块电阻值? 第三章作业 1、说明MOS管的工作原理 2、写出NMOS管的电流-电压方程 3、MOS晶体管从工作原理上类别,画出其符号和输出特性曲线及转移特性曲线 4、MOS反相器有哪些种类?说明每种反相器的特性。 第四章 1、什么是硬件描述语言?它的主要作用是什么? 2、采用硬件描述语言设计方法的优点是什么?有什么缺点? 3、Verilog HDL中的数字可以出现哪些值?相应代表的是什么样的物理意义?

4、Verilog HDL中有哪几种数据类型?它们各代表什么意义? 5、完成一个移位寄存器的设计,要求有同步清零功能。 6、Verilog HDL的模型共有哪些类型(级别)? 7、什么是综合?是否任何符合语法的Verilog HDL程序都可以综合? 8、综合后生成的是不是真实的电路?若不是,还需要哪些步骤才能真正变为具体的电路? 9、对同一条线,是否允许由多个连续赋值语句对它进行赋值?对一个寄存器变量,是否允许在同一时刻有多个过程赋值语句对它进行赋值? 10. 综合实例设计一个简易计算器。 第五章作业 1、讲述门阵列的基本结构特征与设计步骤 2、什么是门阵列的母片?什么是门阵列的基本单元?举例说明门阵列基本单元和基本电路单元的关系 3、试对门阵列和标准单元设计方法的主要特征进行比较。 4、叙述FPGA器件的典型结构和编程方法。 5、软核是什么?虚拟器件是什么?固核是什么?硬核是什么? 6、SoC设计方法的三大关键技术是什么?

基于Verilog的简单计算器设计

module alu4( input wire [3:0]alusel, input wire [3:0]a, input wire [3:0]b, output reg nf, //令标志位output reg zf, //负标志位output reg cf, //进位标志output reg ovf, //溢出位标志output reg [7:0]y, output reg [3:0]rem //余数 ); reg [4:0]temp; reg [7:0]pv; reg [7:0]dp; integer i; reg [1:0]remL; reg [1:0]quotL; always@(*) begin y=0; rem=0; cf=0; ovf=0; nf=0; temp=5'b00000; case(alusel) 4'b0001:y=a; //传递 4'b0010: //加法 begin temp={1'b0,a}+{1'b0,b}; y=temp[3:0]; cf=temp[4]; ovf=y[3]^a[3]^b[3]^cf; end 4'b0011: //减法1 begin temp={1'b0,a}-{1'b0,b}; y=temp[3:0]; cf=temp[4]; ovf=y[3]^a[3]^b[3]^cf; end 4'b0100: //减法二 begin temp={1'b0,b}-{1'b0,a};

y=temp[3:0]; cf=temp[4]; ovf=y[3]^a[3]^b[3]^cf; end 4'b0101: //乘法 begin pv=8'b00000000; dp={4'b0000,b}; for (i=0;i<=3;i=i+1) begin if(a[i]==1) pv=pv+dp; dp={dp[6:0],1'b0}; end y=pv; end 4'b0110:div({1'b0,b[3:0]},a,y,rem); //除法1 4'b0111:div({1'b0,a[3:0]},b,y,rem); //除法2 4'b1000:y=~a; //非 4'b1001:y=a&b; //与 4'b1010:y=a|b; //或 4'b1011:y=a^b; //异或 4'b1100:y={a[2:0],1'b0}; //左移1位 4'b1101:y={a[2:0],a[3]}; //循环左移1位 4'b1110:y={a[0],a[3:1]}; //循环右移1位 4'b1111:y={a[3],a[3:1]}; //算数右移1位 default:y=a; endcase nf=y[3]; if(y==4'b0000) zf=1; else zf=0; if(y>=10) cf=1; else cf=0; if(y>99) ovf=1; else ovf=0; end task div( //定义除法

哈工大Verilog课程设计-状态机

可编程逻辑器件大作业(二) 2012年12月

一、题目 利用Verilog HDL设计一个电路,对输入的一串二进制数,用于检测序列中连续3个或者3个以上的1,状态转换图如图所示。要求: 1、编写源程序; 2、给出仿真电路图、状态转换图和仿真波形图 二、程序代码 module moore(clk,din,op,reset); input clk,din,reset; output op; reg[1:0] current_state,next_state; reg op; parameter S0=2'b00,S1=2'b01,S2=2'b10,S3=2'b11; always @ (posedge clk) begin if(!reset) current_state = S0; else current_state <= next_state; end always @ (din or current_state)

begin case( current_state ) S0: begin op = 0; if(din == 0) next_state = S0; else next_state = S1; end S1: begin op = 0; if(din == 0) next_state = S0; else next_state = S2; end S2: begin op = 0; if(din == 0) next_state = S0; else next_state = S3; end S3: begin op = 1; if(din == 0) next_state = S0;

基于verilog的序列检测

实验八:序列检测一:序列检测的源程序: module jiance(RST_N,CLK,Q,F); input RST_N,CLK,Q; output F; reg F; reg [6:0] s0,s1; always@ (posedge CLK or negedge RST_N) begin if(!RST_N) s0<=7'b1001101; else begin s1=s1<<1; s1[0]=Q; if (s1==s0) F=1'b1; else F=1'b0; end

end endmodule 二:序列检测的测试代码: `timescale 1 ps/ 1 ps module jiance_vlg_tst(); // constants // general purpose registers reg eachvec; // test vector input registers reg CLK; reg Q; reg RST_N; // wires wire F; // assign statements (if any) jiance i1 ( // port map - connection between master ports and signals/registers .CLK(CLK), .F(F), .Q(Q), .RST_N(RST_N)

); initial begin RST_N=0; CLK=1; Q=1; #10 Q=0; CLK=0; #10 Q=0; #10 Q=1; CLK=1; #10 Q=1; #10 Q=0; #10 Q=1; end initial $monitor($time,"%b",CLK,Q,F); endmodule 三:Transcript显示结果: Loading work.jiance_vlg_tst # Loading work.jiance # ** Warning: (vsim-3009) [TSCALE] - Module 'jiance' does not have a `timescale directive in effect, but previous modules do.

学习verilog后的总结

关于这个学期学习verilog hdl语言后的小结在完成本次verilog大作业的过程中,我不仅学到了很多只靠看书本学不到的知识,而且体会到了团队协作的力量,在团队成员的合作下,经历了不少困难,终于完成了verilog的大作业,虽然过程并不是和想象中的一样,而且作业也与老师要求的有点差距,但是从中学习到了许多关于verilog的使用与仿真的基础知识,也对课上学到的语句有了更深的理解,并将其应用到了实际工程中,使自己的运用能力得到了很好的锻炼,对基本操作已经较熟练的掌握,对其中一些细节问题,如仿真时间的选取等也有了自己的理解。实践出真知,通过在软件上反复改程序、跑程序我也学会了很多只看书本发现不了的问题,锻炼了自己的解决问题能力。这对于今后的学习是有很大的帮助的。以下做一下简要总结: 这次的大作业是通过我们小组四个同学共同努力下完成的,其中有很多收获也有很多感受。这次的大作业给了我们一次很好的锻炼机会,通过这次大作业,我开始熟悉用verilog设计的最基本的方法和流程,课堂上学到的东西只有自己通过应用才能加深自己的理解,课堂上学到的并不是全部,要想真正的学好这门课,只有在实践中运用才能真正的体会到这门课的精髓,这次的大作业很好的验证了。 有一个外因也是给了我们的帮助,那就是网络的强大,在这个信息的时代,互联网的作用显而易见,如果能够充分得利用网络上海量的信息,掌握一定的检索技巧,就可以获得很多有价值的东西,比如参考别人的算法和程序段,观看关于Quartus II软件的使用教程视频。

这比起关起门来自己钻研要强上不少。对于如何使用verilog hdl写出可综合的代码真的是一件不容易的事情,而真正的可以写出可综合的代码确实还需要经过很长时间的锻炼。而对Quartus II的使用,感觉也只会得不多,还有很多功能诸如时序分析,逻辑分析,引脚分配等都不会使用。 在完成这次大作业的过程中充分感受到自己知识的不足以及学以致用的重要性,有很多不懂的地方,要通过不断的学习来提高自己,这正验证了学海无涯这句古话。这次的大作业是一次很好的实践。通过大家一起设计,大家都很有收获,不仅完成了作业,而且学到了知识,关键的是自己的自学能力有所提高,所以希望以后还有更多实践的机会,这对于我们的提高大有好处。 最后,我还得感谢我的队友们,这次作业的完成是我们共同努力的结果,我真正感受到了团队的力量,也体会到了老师为什么一定要求必须绝对完成的良苦用心。 11光电A1 朱 2014.01.01

基于Verilog HDL 的专用处理器的设计与仿真

基于Verilog HDL 的专用处理器的设计与仿真 葛文婧, 龚咏梅, 江立平 (安徽师范大学数学计算机科学学院,安徽芜湖,241000) 关键词:Verilog HDL;专用处理器;设计;仿真 摘要:随着对嵌入式系统研究的不断深入,专用处理器的针对性使其被广泛采用,这对嵌入式系统的运用和发展起 到了越来越大的推动作用。本文采用Verilog HDL 来仿真能完成特定功能的专用处理器。论文讨论了包括CPU的系统 结构设计、基本组成部件设计、指令系统设计和CPU的RTL级仿真在内的基于Verilog 状态机控制16位指令微处理器 的设计。论文还讨论了电路功能的仿真、综合以及实现过程,在Modelsim 的开发环境下对加法器的HDL程序进行仿真, 并且根据仿真波形来验证设计的正确性。 Design and Simulation of CPU based on Verilog HDL Wenjing Ge, Yongmei Gong, Liping Jiang (School of Mathematic Computer Science , Anhui Nornal University, Wuhu, Anhui, 241000, China) Key words:Verilog HDL; CPU; Design; Simulation Abstract:As t he embedded system’s research went into deeply nowdays, the dedicated-used processor was widely used for it’s pertinency ,which promoted the use and development of embedded system. The authors simulated and designed a dedicated-used processor based on the verilog HDL. The essay was composed of the design of sixteen bits micro dedicated-used processor based on verilog states control machine, which included the designs of the Central Processing Unit’s system structure, basic modules, instructions system ,and RTL level simulation of the dedicated-used processor . The simulation,synthesization,and realization of the circuit function were also included in this essay.The summator’s HDL program was simulated in the environment of Modelsim and checked the correctness of the function of Central Processing Unit by the wave forms in the Modelsim. 计算机的核心构件是处理器,处理器也是嵌入式系统中不可缺少的部分。根据处理的问题的不同,处理机可分为三类:通用处理器、单用途处理器和专用处理器。专用处理器有着广泛的用途,这是因为专用处理器具有针对性,针对应用作了优化,性能、功耗等方面有了显著提高。专用处理器的设计可以给设计者创新的空间,设计出创新性的作品。Verilog HDL是一门硬件描述语言,是用于硬件设计的有利工具。 1概述 1.1 研究背景 目前许多的电子产品都使用了CPLD(复杂可编程逻辑器件),这些逻辑器可以使用硬件描述语言设计。Verilog HDL语言具有:设计的行为特性、设计的数据流特性、设计的结构组成及包含响应监控和设计验证方面的时延和波形产生机制[1]。用Verilog HDL语言设计硬件也较为方便设计逻辑器件。1.2 功能的实现 (1)程序预先存储在程序存储器ROM中; (2)控制器CTRL根据程序计数器PC的值从ROM取指令到指令寄存器IR中,并对IR中的指令进行译码,产生控制信号,将控制信号发送给其它器件; (3)数据通路DP负责接收CTRL传送来的立即数、数据存储器RAM传送过来的操作数,存入寄存器组RF中的寄存器中;负责接收CTRL传送过来的运算指令,并组织算术逻辑单元ALU进行运算;负责将CTRL传送过来的立即数、寄存器中的操作数存入RAM中; (4)RAM可根据DP传送过来的地址和读写控制信号,进行数据读写。 2系统构成及功能模块的划分 2.1 专用处理器的组成结构 专用处理器的结构框图如图1,专用处理器主要有控制器和数据路径两大部分构成,另外,为了配合专用处理器完成系统任务,还需要有程序存储

蔡觉平老师西电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; initial begin A=0;B=1; #10 A=1;B=0; #10 B=1; #10 A=0; #10 B=0; #10 A=1;B=1; end endmodule Frk-join语句: module wave_tb2; reg A,B; parameter T=10; initial fork A=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; join endmodule 3. 分别用阻塞和非阻塞赋值语句描述如下图所示移位寄存器的电路图。题目out2out1out0 dinout3QQDDQQD clk 解答:)阻塞赋值语句(1module block2(din,clk,out0,out1,out2,out3);input din,clk; output out0,out1,out2,out3;reg out0,out1,out2,out3;always@(posedge clk)begin out0=din; out1=out0; out2=out1; out3=out2;

第五章、基于Verilog的CPU设计.(DOC)

作为电子或计算机专业的学生,电脑(计算机)对于大家已经不再是什么新鲜的东西了。大家都知道,计算机可以为我们做很多的事情,替我们节约很多时间,为我们计算各种复杂的数据并且准且无误。那么,计算机为什么能够做这些事情呢?计算机内部到底是怎么工作的呢?本章将为你展示计算机的主要部件的设计过程。 计算机最核心的部分叫做中央处理器,也就是我们常说的CPU ,计算机所做的工作都是由CPU 来完成的。当然,作为学习,我们不能够设计出类似奔腾处理器(Pentium microprocessor )的CPU ,我们用一个能够完成简单功能的简单的CPU 作为讲解,麻雀虽小,五脏俱全,这个简单的cpu 具有一般CPU 的全部基本特征。 CPU 概览 众所周知,cpu 只能识别二进制数据,也就是机器码。所以,在CPU 内部靠不同的二进制序列来区别不同的机器码。我们把这些机器码存储在一个存储器中,共CPU 读取使用。同时,为了用户和程序员能够更好的记住机器码的含义,采用相应的助记符来表示这些机器码,如:用LDA 表示二进制的000等。这些助记符通常被称为汇编语言,不同架构的计算机的汇编语言通常都是各不相同的。 CPU 的内部框架 下图是本章准备设计的一个CPU 内部结构框架。 CPU 的内部工作原理 不同架构的计算机工作原理也是不同的,此处仅以本课本中讲授的CPU 工作原理为例讲解。 首先,CPU 的指令是存储在存储器中的,所以cpu 执行指令的第一步是从存储器中取出(fetch )指令,第二步,将取出的指令解码,第三步,根据指令解码出的功能决定是否再从存储器中取出需要处理的数据,第四步,根据解码出的指令决定进行相应的计算,这由(ALU )完成。第五步,根据解码出的指令决定是否将计算结果存入存储器,第六步,修改PC 指针,为下一次取指令做准备。整个执行过程由控制器控制。 存储器 ALU 控制器 指令解码器 PC

verilog期末大作业

深圳大学实验报告 课程名称:Verilog HDL及其应用 实验项目名称:波形选择器 学院:电子科学与技术学院 专业:微电子学 指导教师:刘春平 报告人:温志煌学号:2012160228 班级:微电二班实验时间: 实验报告提交时间:

波形选择器 一、实验目的 (1)熟悉Modelsim软件 (2)掌握Modelsim软件的编译、仿真方法 (3)熟练运用Modelsim 软件进行Verilog程序设计开发 二、实验内容及要求 实验原理:在同一个波形里面分别取八个点,用这个八个点的数据还原出对应的波形来,在Verilog中通过建立一个函数分别取这些点数据,然后再通过调用函数得到相对应的波形。 1.实验要求 用Verilog语言设计以下电路,分别产生四种波形:正弦波、方波、三角波1及三角波2。实验要求先在QuartusII里面编译仿真程序,然后再在Modelsim里面仿真产生这四种波形。程序仿真结果示意图如图1所示。 图1.四种波形产生及选择器示意图 2.实验步骤

2.1在QuartusII里的操作步骤: 1)建立一个waveshaper的工程文件 2)以Verilog语言书写waveshaper的源程序 3)编译waveshaper源程序 4)最后再仿真一下这个程序,得到与程序相吻合的数据具体如图所示: 图2. Waveshaper源程序 图3. Waveshaper编译成功

图4. Waveshaper 仿真结果 2.2在Modelsim里的操作步骤: 1)建立waveshaper工程 2)添加两个文件waveshaper跟waveshaper_tp到工程3)分别编译这两个文件 4)在work里面查看编译后的设计单元 5)将信号加入波形窗口 6)运行仿真 其源程序如下: module waveshaper(q,cp,n); output [7:0] q; input cp; input [1:0] n; reg [7:0] q; reg [2:0] Q=3'd0; wire cp,cr; always @ (negedge cp ) begin if(cr) Q<=3'd0; else Q<=Q+3'd1; end always @(Q or n) begin case (n) 0: q=romout({n,Q}); 1: q=romout({n,Q});

相关文档
相关文档 最新文档