第6章_Verilog_HDL设计进阶习题
第6章 Verilog HDL设计进阶习 题 实验与设计
习
题
6-1 在Verilog设计中,给时序电路清零(复位)有两种不同方法,它们是什么,如 何实现? 答:同步清零、异步清零,在过程语句敏感信号表中的逻辑表述posedge CLK用于指明 正向跳变,或negedge用于指明负向跳变实现 6-2 哪一种复位方法必须将复位信号放在敏感信号表中?给出这两种电路的Verilog 描述。 答:同步复位、异步复位必须将复位信号放在敏感信号表中。 同步清零: always @(posedge CLK) //CLK上升沿启动 Q<=D; 异步清零: always @(posedge CLK or negedge RST) begin //块开始 //当CLK有升沿时D被锁入Q
if(!RST)Q<=0; //如果RST=0条件成立,Q被清0else if(EN) Q<=D; end //在CLK上升沿处,EN=1,则执行赋值语句 //块结束
习for循环语句module Statistics8(sum,A); output[3:0]sum; input[8:1] A; reg[3:0] sum; integer i; always @(A) begin sum=0; for(i=1;i<=8;i=i+1) //for 语句 if(A[i]) sum=sum+1; else sum=sum; end endmodule
题repeat循环语句module Statistics8(sum,A); parameter S=4; output[3:0]sum; input[7:0] A; reg[3:0] sum; reg[2*S:1]TA; integer i; always @(A) begin TA=A; sum=0; repeat(2*S) begin if(TA[1])sum=sum+1; TA=TA>>1; end end endmodule
6-3 用不同循环语句分别设计一个逻辑电路模块,用以统计一8位二进制数中含1的 数量。
6-3 用不同循环语句分别设计一个逻辑电路模块,用以统计一8位二进制 数中含1的数量。
while循环语句
module Statistics8(sum,A); parameter S=8; output[3:0]sum; input[7:0] A; reg[S:1] AT; reg[3:0] sum; reg[S:0] CT; always @(A) begin AT={{S{1'b0}},A}; sum=0; CT=S; while(CT>0) begin if(AT[1])sum=sum+1;else sum=sum; begin CT= CT-1; AT=AT>>1; end end end endmodule
习
题
6-4 用循环语句设计一个7人投票表决器。 module voter7(pass,vote); output pass; input[6:0] vote; reg[2:0] sum; integer i; reg pass; always @(vote) begin sum=0; for(i=0;i<=6;i=i+1) //for 语句 if(vote[i]) sum=sum+1; if(sum[2]) pass=1; //若超过4 人赞成,则pass=1 else pass=0; end endmodule
习
题
6-5 Verilog设计一个4位4输入最大数值检测电路。
//Verilog设计一个4位4输入最大数值检测电路 module Maximum_value_detection(Mostlarge,a,b,c,d);//4位 4输入最大数值检测电路 output [3:0] Mostlarge; input [3:0] a,b,c,d; wire[3:0]sum1,sum2,sum3;
assign sum1=(a>b)?a:b;assign sum2=(c>d)?c:d; assign Mostlarge=(sum1>sum2)?sum1:sum2; endmodule
习【例6-9】非阻塞赋初值导致错误module mux4_1(D0,D1,D2,D3,S1,S0,OUT); output OUT ; input D0,D1, D2,D3,S1, SO; reg [2:0] T ; reg OUT; always @(D0, D1,D2,D3, S1,S0) begin T <= 0; if (SO==1) T <= T+1 if (S1==1) T <= T+2 ; case (T) 0 : OUT = D0; 1 : OUT = D1; 2 : OUT = D2 ; 3 : OUT= D3; default : OUT D0; endcase end endmodule
题【例6-10】阻塞赋初值正确module mux4_1(DO,D1, D2,D3,S1, SO, OUT); output OUT ; input DO,D1, D2,D3,S1, SO; reg [2:0] T ; reg
OUT; always @(D0, D1,D2,D3, S1,S0) begin T = 0; if (SO==1) T = T+1 if (S1==1) T = T+2 ; case (T) 0 : OUT = D0; 1 : OUT= D1; 2 : OUT =D2 ; 3 : OUT= D3; default : OUT D0; endcase end endmodule
6-6 从不完整的条件语句产生时序模块的原理看,例6-9和例6-10从表面上看都包含 不完整条件语句,试说明,为什么例6-9的综合结果含锁存器,二例6-10却没有。 答:参见书P137
习
题
6-6 从不完整的条件语句产生时序模块的原理看,例6-9和例6-10从表面上看都包含 不完整条件语句,试说明,为什么例6-9的综合结果含锁存器,二例6-10却没有。 答:参见书P137
事实上,例6-9中,T在过程中出现了3次非阻塞赋值操作,即有3个赋值源对 同一信号T进行赋值--T<=0、T<=T+1和T<=T+2。但根据以上的讨论,对于非阻塞 式赋值,前两个语句中的赋值目标信号T都不可能得到任何数值,只有最后的 T<=T+2语句中的T的值能得到更新。然而,由于赋值符号右边的T始终未得到任何 确定的初始值,即语句T<=0并未完成赋值,所以最后的T始终是个未知值。结果 只能被综合成随S1和S0随机变动的时序电路,导致T成为一个不确定的信号。结 果在过程最后的case语句中,无法通过判断T的值来确定选通输入,即对OUT的赋 值。 例6-10就不一样了。程序首先执行了阻塞式赋值语句T=0,T即刻被更新,从 而使两个if语句中的T都能得到确定的初值。另一方面,当if语句不满足条件时, 即当S0或S1不等于1时,由于T已经在第一条赋值语句中被更新为确定的值0了, 所以尽管两个if语句从表面上看都属于不完整的条件语句,也不可能被综合成时 序电路了。显然也就有了图6-4所示正确的波形输出。
习
题
6-7 设计一个求补码的程序,输入数据是一个有符号的8位二进制数。 //设计一个求补码的程序,输入数据是一个有符号的8位二进制数 module Binary_complement(a,b); //二进制数补码 input [7:0] a; output [7:0] b; integer i; reg [7:0]d; reg [6:0]c; always @(a) begin if(a[7]==1) begin for(i=0;i<7;i=i+1)c[i]=!a[i]; d[7:0]={a[7],(c[6:0]+7'd1)}; end else d[7:0]=a[7:0]; end assign b[7:0]=d[7:0]; endmodule
习//程序1 module BCD_Compare(a,b); output b; input[3:0]a; wire c,d; and(c,a[1],a[2]); and(d,a[0],a[2]); or(b,d,c,a[3]); endmodule
题//程序2 module BCD_Compare(a,b); output b; input [3:0] a; assign b=(a>=5)?1:0; endmodule
6-8 Verilog HDL设计一个比较电路,当输入的8421BCD码大于5时输出1,否则输出0。
设计一个四舍五入判别电路,其输入为8421BCD码,要求当输入大于或等于 5时,判别电路输出为1,反之为0。
原理图
习
题
6-9 用原理图或Verilog输入方式分别设计一个周期性产生二进制序列01001011001 的序列发生器,用移位寄存器或用同步时序电路实现,并用时序仿
真器验证其功能。
序列信号是指在同步脉冲作用下循环地产生一串周期性的二进制信号,能产 生这种信号的逻辑器件就称为序列信号发生器,根据结构不同,它可分为反馈移 位型和计数型两种。
一、计数型序列信号发生器 1.计数型序列信号发生器组成与特点 计数型序列信号发生器能产生多组序列信号,这是移位型发生器所没有的功 能.计数型序列信号发生器是由计数器和组合电路构成的,序列的长度P就是计数 器的模数。 2.计数型序列信号发生器的设计(通过例题来说明) 例1.设计01001011001序列信号发生器 由于序列长度已经知道P=11,所以先用74163N设计一个模11的计数器,再用 八选一数据选择器实现序列输出,把计数器的输出端作为数据选择器的地址变量。 它的电路图为:如图(1)
习CP 1 2 3 4 5 6 QD(A2) QC(D4、~D5) 0 0 0 1 1 1 1 1 1 0 ~0 0 QB(A1) 0 1 1 0 0 1
题QA(A0、D7) 1 0 1 0 D D1 D2 D3 D4 F 0 1 0 0 1 0
6-9 用原理图或Verilog输入方式分别设计一个周期性产生二进 …… 此处隐藏:3694字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高中教育]电子线路高频非线性部分2.1
- [高中教育]中班美术活动——我的小手
- [高中教育]常用三极管参数大全
- [高中教育]计算机常见故障及解决办法
- [高中教育]风机基础环水平度控制方法探讨
- [高中教育]机械安全工程(专升本)阶段性作业3
- [高中教育]2009年安徽省高考语文考试说明刍议
- [高中教育]unit5 let's eat公开课教案设
- [高中教育]计算机网络原理课后习题答案
- [高中教育]2016-2022年中国新能源市场研究与投资
- [高中教育]2015-2020年中国会议行业市场评估及投
- [高中教育]经销商大会峰会主持人串词开场白
- [高中教育]2014新版北师大数学三年级上册小熊购物
- [高中教育]七年级第一学期体育与健康全套教案
- [高中教育]第三章:国际金融市场
- [高中教育]六年级下册数学单元测试-2.比例 北师大
- [高中教育]2016年上海海事大学法学院624刑法之《
- [高中教育]中国碳化钙产业竞争现状及未来五年投资
- [高中教育]网络时代,我们怎么玩
- [高中教育]圆锥曲线——高中数学基础知识与典型例
- 高集医院世界艾滋病宣传日活动方案
- 苏教版六年级英语上册期末试卷含答案
- 全民枪战生化英雄模式幽灵怎么玩 生化
- 灿烂的宋元文化一导学案
- 第2章货币资金与应收款项
- 北师大版八年级下册数学第三章《分式》
- 浅析高分子材料成型加工技术
- 华南理工大学2013年度共青团先进集体及
- 教师资格科目二小学教案模板(共合集)
- 工程扩建可研报告
- 中华人民共和国海事局2014年度招录公务
- 提高农村小学生作文能力的教学尝试
- 徒手心肺复苏术操作步骤
- 毛概试题库7-15章
- 2014-2015学年度(上)初中班主任工作计
- 企业驾驶员安全生产责任书
- 第07章 不等式测试题-2016年高考文科数
- 医疗器械经营企业工作程序
- 考研英语必背36篇_彩版_精华
- 初中9月13-15假期作业 (1)




