蔡觉平老师西电Verilog-HDL上机大作业(硬件描述语言)-微电子学院_第1页
蔡觉平老师西电Verilog-HDL上机大作业(硬件描述语言)-微电子学院_第2页
蔡觉平老师西电Verilog-HDL上机大作业(硬件描述语言)-微电子学院_第3页
蔡觉平老师西电Verilog-HDL上机大作业(硬件描述语言)-微电子学院_第4页
蔡觉平老师西电Verilog-HDL上机大作业(硬件描述语言)-微电子学院_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

Verilog HDL 数字集成电路设计原理与应用 上机作业 班级 学号 姓名 题目 1 数字集成电路的 verilog HDL 描述与仿真 要求 1 学习使用 Modelsim 设计和仿真软件 2 练习教材 7 2 1 中的例子 3 掌握设计代码和测试代码的编写 4 掌握测试仿真流程 5 掌握 Modelsim 软件的波形验证方式 解答 题目 2 简述 begin end 语句块和 fork join 语句块的区别 并写出下面信号 对应的程序代码 ns 1020 A B 0304050 解答 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 分别用阻塞和非阻塞赋值语句描述如下图所示移位寄存器的电路图 D DQ QD DQ Q d di in n c cl lk k D DQ QD DQ Q o ou ut t3 3 o ou ut t2 2o ou ut t1 1o ou ut t0 0 解答 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 begin out0 din out1 out0 out2 out1 out3 out2 end endmodule 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 begin out0 din out1 out0 out2 out1 out3 out2 end endmodule 题目 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 else if count 16 b1111111111111111 count 16 b0000000000000000 else count 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 initial begin clk 0 rst 0 1 rst 1 10 rst 0 10 rst 1 10 rst 0 99999 finish end endmodule 题目 5 试用 Verilog HDL 门级描述方式描述如下图所示的电路 S1 S2 D0 D1 D2 D3 T0 T1 T2 T3 Z 解答 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 代码 CinainbinsumCout 00000 00110 01010 01101 10010 10101 11001 11111 解答 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 endcase endmodule 题目 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 endmodule 16 位同步乘法器 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 initial begin a 8 b 8 c 1 end initial begin 10 a 16 b1111111111111111 10 b 1 end adder U2 a a b b c c cout cout sum sum endmodule 16 位同步乘法器 module multiplier tb reg 15 0 a b wire 31 0 mul initial begin a 3 b 8 end initial begin 10 a 100 15 b 100 end multiplier U1 a a b b mul mul endmodule 仿真截图 加法器 乘法器 题目 8 将下面的状态转移图用 Verilog HDL 描述 在图中 状态机的输入只与状态的跳转 有关 与状态机的输出无关 因此该状态机为摩尔型状态机 下面为三段式描述方式 State0 out 001 State1 out 010 State3 out 111 State2 out 100 start 0 clr 1 start 1 step2 0 step2 1 step3 1 step3 0 解答 程序代码 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 else case 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 endcase 2 b01 begin out 3 b010 next state 2 b10 end 2 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 endcase 2 b11 case step 1 b0 begin next state 2 b11 out 3 b111 end 1 b1 begin next state 2 b00 outy 10 12 14 b y 10 12 14 s y 11 13 15 s0 y 11 13 15 endspecify endmodule module b a s b y input s a s b output y wire s0 not 4 U1 s0 s delay door U2 a s b y s0 endmodule 题目 10 设计一个 8 位数字显示的简易频率计 要求 能够测试 10Hz 10MHz 方波信号 电路输入的基准时钟为 1Hz 要求测量值以 8421BCD 码形式输出 系统有复位键 采用分层次分模块的方法 用 Verilog HDL 进行设计 解答 程序代码 module x reg standard clk reg test clk wire 7 0 out reg reset initial begin reset 0 test clk 0 standard clk 0 end initial 15 reset 1 always 1 test clk test clk always 10 standard clk standard clk a U1 reset reset test clk test clk standard clk standard clk ratio final out endmodule module a reset test clk standard clk ratio final input reset test clk standard clk output 7 0 ratio final wire mul clk wire reset comp wire 7 0 ratio start and U0 reset comp reset standard clk t U1 ain test clk din standard clk mul mul clk w U2 clk mul clk count ratio start reset reset comp c U3 ratio start ratio start ratio final ratio final endmodule module w clk count reset input clk reset output count parameter bit 8 reg bit 1 0 count always posedge clk or negedge reset if reset count 8 b00000000 else count count 1 endmodule module t ain din mul parameter width 1 input width 1 0 ain din output width 2 1 0 mul assign mul ain din endmodule module c ratio start ratio final input 7 0 ratio start output 7 0 ratio final assign ratio final 2 ratio start endmodule 题目 11 用 Verilog HDL 设计一个 4 位 LED 显示器的动态扫描译码电路 要求 4 个七段显示器共用一个译码驱动电路 显示的数码管清晰明亮 无闪烁现象发生 解答 module a out in output out input in reg 6 0 out wire 3 0 in always in begin case in 4 d0 out 7 b1111110 4 d1 out 7 b0110000 4 d2 out 7 b1101101 4 d3 o

温馨提示

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

评论

0/150

提交评论