41:用与非门等设计全加法器?
《数字电子技术基础》192页。
通过摩根定律化成用与非门实现。
42:A,B,C,D,E进行投票,多数服从少数,输出是F(也就是如果A,B,C,D,E中1的个数比0 多,那么F输出为1,否则F为0),用与非门实现,输入数目没有限制?(与非-与非形式)
先画出卡诺图来化简,化成与或形式,再两次取反便可。
43:画出一种CMOS的D锁存器的电路图和版图?
也可以将右图中的与非门和反相器用CMOS电路画出来。
44:function 和 task有什么区别?
function
可以调用其他function ,但是不能调用其他 task
消耗0仿真时间
不得包含任何延迟和时序控制语句。
必须至少有一个输入参数。
函数始终返回单个值。他们不能有output或inout参数
task
可以调用其他function 和 task
消耗非0仿真时间
可以包含任何延迟和时序控制语句。
可以有零个或多个类型为input,output或inout参数。
output或inout参数。 任务不返回值,但可以通过output或inout参数传递多个值
45:latch与register的区别,为什么现在多用register.行为级描述中latch如何产生的?
latch是电平触发,register是边沿触发,register在同一时钟边沿触发下动作,符合同步电路的设计思想,而latch则属于异步电路设计,往往会导致时序分析困难,不适当的应用latch则会大量浪费芯片资源。
46:用D触发器做个二分频的电路?画出逻辑电路?
module div2(clk,rst,clk_out);
input clk,rst;
output reg clk_out;
always@(posedge clk)
begin
if(!rst)
clk_out <=0;
else
clk_out <=~ clk_out;
end
endmodule
现实工程设计中一般不采用这样的方式来设计,二分频一般通过DCM来实现。通过DCM得到的分频信号没有相位差。
或者是从Q端引出加一个反相器。
47:什么是状态图?
状态图是以几何图形的方式来描述时序逻辑电路的状态转移规律以及输出与输入的关系。
48:用你熟悉的设计方式设计一个可预置初值的7进制循环计数器,15进制的呢?
module counter7(clk,rst,load,data,cout);
input clk,rst,load;
input [2:0] data;
output reg [2:0] cout;
always@(posedge clk)
begin
if(!rst)
cout<=3’d0;
else if(load)
cout<=data;
else if(cout>=3’d6)
cout<=3’d0;
else
cout<=cout+3’d1;
end
endmodule
49:功耗的来源是什么?
+动态功耗,逻辑转换导致逻辑门负载电容充电/放电。
+短路电流,在逻辑转换期间短路(一段时间)时发生。
+泄露功耗,由泄漏电流引起的
50:用Verilog或VHDL写一段代码,实现消除一个glitch(毛刺)?
将传输过来的信号经过两级触发器就可以消除毛刺。(这是我自己采用的方式:这种方式消除毛刺是需要满足一定条件的,并不能保证一定可以消除)
module(clk,data,q_out)
input clk,data;
output reg q_out;
reg q1;
always@(posedgeclk)
begin
q1<=data;
q_out<=q1;
end
endmodule