完整word版集成电路CAD复习例题 +解析Word下载.docx

上传人:b****1 文档编号:776515 上传时间:2023-04-29 格式:DOCX 页数:18 大小:57.17KB
下载 相关 举报
完整word版集成电路CAD复习例题 +解析Word下载.docx_第1页
第1页 / 共18页
完整word版集成电路CAD复习例题 +解析Word下载.docx_第2页
第2页 / 共18页
完整word版集成电路CAD复习例题 +解析Word下载.docx_第3页
第3页 / 共18页
完整word版集成电路CAD复习例题 +解析Word下载.docx_第4页
第4页 / 共18页
完整word版集成电路CAD复习例题 +解析Word下载.docx_第5页
第5页 / 共18页
完整word版集成电路CAD复习例题 +解析Word下载.docx_第6页
第6页 / 共18页
完整word版集成电路CAD复习例题 +解析Word下载.docx_第7页
第7页 / 共18页
完整word版集成电路CAD复习例题 +解析Word下载.docx_第8页
第8页 / 共18页
完整word版集成电路CAD复习例题 +解析Word下载.docx_第9页
第9页 / 共18页
完整word版集成电路CAD复习例题 +解析Word下载.docx_第10页
第10页 / 共18页
完整word版集成电路CAD复习例题 +解析Word下载.docx_第11页
第11页 / 共18页
完整word版集成电路CAD复习例题 +解析Word下载.docx_第12页
第12页 / 共18页
完整word版集成电路CAD复习例题 +解析Word下载.docx_第13页
第13页 / 共18页
完整word版集成电路CAD复习例题 +解析Word下载.docx_第14页
第14页 / 共18页
完整word版集成电路CAD复习例题 +解析Word下载.docx_第15页
第15页 / 共18页
完整word版集成电路CAD复习例题 +解析Word下载.docx_第16页
第16页 / 共18页
完整word版集成电路CAD复习例题 +解析Word下载.docx_第17页
第17页 / 共18页
完整word版集成电路CAD复习例题 +解析Word下载.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

完整word版集成电路CAD复习例题 +解析Word下载.docx

《完整word版集成电路CAD复习例题 +解析Word下载.docx》由会员分享,可在线阅读,更多相关《完整word版集成电路CAD复习例题 +解析Word下载.docx(18页珍藏版)》请在冰点文库上搜索。

完整word版集成电路CAD复习例题 +解析Word下载.docx

另一种:

modulecode8_3(in,out)

input[7:

0]in;

output[2:

0]out;

wire[7:

reg[2:

always@(in)begin

if(in[7]==1)out=3’111;

elseif(in[6]==1)out=3’b110;

elseif(in[5]==1)out=3’101;

elseif(in[4]==1)out=3’b100;

elseif(in[3]==1)out=3’b011;

elseif(in[2]==1)out=3’b010;

elseif(in[1]==1)out=3’b001;

elseif(in[0]==1)out=3’b000;

default:

out=3’bx;

end

endmodule

3、奇偶校验位产生器

moduleparity(even_bit,odd_bit,input_bus);

outputeven_bit,odd_bit;

input[7:

0]input_bus;

assigneven_bit=^input_bus;

//产生偶校验位

assignodd_bit=~even_bit;

//产生奇校验位

4、4选1数据选择器

第一种方法

modulemux(d1,d2,d3,d4,se1,se2,dout);

inputd1;

inputd2;

inputd3;

inputd4;

inputse1;

inputse2;

outputdout;

regdout;

always@(d1ord2ord3ord4orse1orse2)

case({se1,se2})

2'

b00:

dout=d1;

b01:

dout=d2;

b10:

dout=d3;

b11:

dout=d4;

endcase

第二种方法

if(!

se1)

begin

se2)

dout=d1;

else

dout=d2;

end

elsebegin

dout=d3;

dout=d4;

第三种方法

modulese(d1,d2,d3,d4,se1,se2,dout);

assigndout=se1?

se2?

d4:

d3:

d2:

d1;

第四种方法

modulemux4_1(out,in0,in1,in2,in3,sel);

outputout;

inputin0,in1,in2,in3;

input[1:

0]sel;

regout;

always@(in0orin1orin2orin3orsel)//敏感信号列表

case(sel)

b00:

out=in0;

b01:

out=in1;

b10:

out=in2;

b11:

out=in3;

out=2'

bx;

5、4位全加器及4位全加器的仿真程序

moduleadder4(cout,sum,ina,inb,cin);

output[3:

0]sum;

outputcout;

input[3:

0]ina,inb;

inputcin;

assign{cout,sum}=ina+inb+cin;

Endmodule

第二种:

moduleadder_4bit(s,co,a,b,ci);

//4位全加器//

output[3:

0]s;

outputco;

input[3:

0]a,b;

inputci;

f_adderf0(a[0],b[0],ci,s[0],ci1);

f_adderf1(a[1],b[1],ci1,s[1],ci2);

f_adderf2(a[2],b[2],ci2,s[2],ci3);

f_adderf3(a[3],b[3],ci3,s[3],co);

endmodule

modulef_adder(ain,bin,cin,sum,cout);

//1位全加器//

outputsum,cout;

inputain,bin,cin;

wired,e,f;

h_adder(ain,bin,e,d);

h_adder(e,cin,sum,f);

or(cout,d,f);

moduleh_adder(a,b,so,co);

//半加器//

inputa,b;

outputso,co;

assignso=a^b;

assignco=a&

b;

4位全加器的仿真程序

`timescale1ns/1ns

`include"

adder4.v"

moduleadder_tp;

//测试模块的名字

reg[3:

//测试输入信号定义为reg型

regcin;

wire[3:

//测试输出信号定义为wire型

wirecout;

integeri,j;

adder4adder(sum,cout,a,b,cin);

//调用测试对象

always#

cin=~cin;

//设定cin的取值

initial

begin

a=0;

b=0;

cin=0;

for(i=1;

16;

i=i+1)

#10a=i;

//设定a的取值

end

initial

begin

for(j=1;

j<

j=j+1)

#10b=j;

//设定b的取值

initial//定义结果显示格式

$monitor($time,,,"

%d+%d+%b={%b,%d}"

a,b,cin,cout,sum);

#160$finish;

endmodule

6、带同步清0、同步置1的D触发器

moduled_ff_1(CLK,RSTn,clr,D,Q,en);

inputCLK,RSTn,clr;

inputD,en;

outputQ;

regQ;

always@(posedgeCLK)begin

if(~RSTn)begin

Q<

=1'

b1;

end

elsebegin

if(clr)beginQ<

elsebegin

if(en)begin

=D;

endelsebegin

=Q;

end

7、带异步清0、异步置1的JK触发器

moduleJK_FF(CLK,J,K,Q,RS,SET);

inputCLK,J,K,SET,RS;

regQ;

always@(posedgeCLKornegedgeRSornegedgeSET)

if(!

RS)Q<

b0;

elseif(!

SET)Q<

elsecase({J,K})

2'

Q<

=~Q;

default:

Q<

endcase

8、8位数据锁存器

modulelatch_8(qout,data,clk);

output[7:

0]qout;

input[7:

0]data;

inputclk;

reg[7:

always@(clkordata)

if(clk)qout<

=data;

9、同步置数、同步清零的8位二进制计数器

modulecount(out,data,load,reset,clk);

inputload,clk,reset;

reg[7:

always@(posedgeclk)//clk上升沿触发

if(!

reset)

out=8'

h00;

//同步清0,低电平有效

elseif(load)

out=data;

//同步预置

else

out=out+1;

//计数

10、异步清零、同步置数的1位十进制计数器

modulecount10(out,data,load,reset,clk);

reg[3:

always@(posedgeclkornegedgereset)//clk上升沿触发

out=8'

elseif(out<

9)

out=out+1;

out=0;

11、4位串并转换器

modulepal_serial_4(//四位并串转换程序

clk,rst,load,

din,dout

);

inputclk,rst,load;

0]din;

0]databuff;

always@(posedgeclkornegedgerstorposedgeload)

rst)databuff<

=4'

elseif(load)databuff<

=din;

else//databuff<

={databuff[2:

0],1'

b0};

databuff<

=databuff<

<

1;

//将寄存器内的值左移,依次读出

assigndout=databuff[3];

moduleserial_pal_4(//四位串并转换程序

clk,en,rst,

cin,cout

inputcin,clk,en,rst;

0]cout;

always@(posedgeclkornegedgerst)

rst)cout<

elseif(en)

cout<

={cout[2:

0],cin};

elsecout<

=cout;

另一种:

moduleshift(nreset,clk,en,in,out);

inputnreset,clk,en,in;

output[3:

reg[1:

0]count;

//移位计数,控制并行数据更新,这里是4bit并行数据

reg[3:

always@(posedgeclkornegedgenreset)

if(~nreset)

count<

=2'

b00;

=count+2'

b01;

data<

=4'

b0000;

ealeif(en)

={data[2:

0],in};

end//并行输出

out<

elseif(en&

&

(count==2'

b11))

=data;

12、模为60的BCD码加法计数器

modulecount60(qout,cout,data,load,cin,reset,clk);

output[7:

outputcout;

inputload,cin,clk,reset;

always@(posedgeclk)//clk上升沿时刻计数

if(reset)

qout<

=0;

//同步复位

else

if(load)

//同步置数

if(cin)

if(qout[3:

0]==9)//低位是否为9,是则

qout[3:

0]<

//回0,并判断高位是否为5

if(qout[7:

4]==5)

qout[7:

4]<

=qout[7:

4]+1;

//高位不为5,则加1

else//低位不为9,则加1

=qout[3:

0]+1;

assigncout=((qout==8‘h9)&

cin)?

1:

0;

//产生进位输出信号

13、BCD码—七段数码管显示译码器

moduledecode47(a,b,c,d,e,f,g,D3,D2,D1,D0);

outputa,b,c,d,e,f,g;

inputD3,D2,D1,D0;

//输入的4位BCD码

rega,b,c,d,e,f,g;

always@(D3orD2orD1orD0)

case({D3,D2,D1,D0})//用case语句进行译码

4'

d0:

{a,b,c,d,e,f,g}=7'

b1111110;

d1:

b0110000;

b1101101;

b1111001;

b0110011;

d5:

b1011011;

d6:

b1011111;

d7:

b1110000;

d8:

b1111111;

d9:

b1111011;

14、七人投票表决器,4人同意即为通过,反之不通过。

modulevoter7(pass,vote);

outputpass;

input[6:

0]vote;

reg[2:

regpass;

always@(vote)

sum=0;

=6;

i=i+1)//for语句

if(vote[i])sum=sum+1;

if(sum[2])

pass=1;

//若超过4人赞成,则pass=1

pass=0;

15、设计一个简单的状态机,功能是检测一个5位二进制序列“10010”

moduleVrSMex(CLOCK,X,Z);

inputCLOCK,X;

outputZ;

regZ;

0]Sreg,Snext;

parameter[2:

0]A=3'

b000,

B=3'

b001,

C=3'

b010,

D=3'

b011,

E=3'

b100,

F=3'

b101;

always@(posedgeCLOCK)

Sreg<

=Snext;

always@(X,Sreg)begin

case(Sreg)

A:

if(X==0)Snext=A;

elseSnext=B;

B:

if(X==0)Snext=C;

C:

if(X==0)Snext=D;

D:

elseSnext=E;

E:

if(X==0)Snext=F;

F:

defaultSnext=A;

always@(Sreg)

A,B,C,D,E:

Z=0;

Z=1;

defaultz=0;

16、分压式共射放大电路如图所示。

三极管的模型参数为:

IS=1E-16,BF=100,RB=100;

输入交流信号,幅值为1。

求电路的静态工作点,电压放大倍数,输入电阻及输出电阻。

Amplifyingcircuit

VS10AC1

RS12200

C1233.3U

RB137100K

RB23020K

Q1435MQ

RC743.3K

RE501K

CE5050U

C2463.3U

RL605.1K

VCC7012

.MODELMQNPN(IS=1E-16BF=100RB=100)

.OP

.ACLIN101K10K//设交流分析为线性扫描,频率点数10,起始频率1KHZ,终止频率10KHZ

.PLOTACV(6)/V

(2)V

(2)/I(RS)V(6)/I(RL)

.END

17、共栅极放大器(Common-GateAmplifier)又称为电流跟随器,如下图所示,试求其电压增益、电流增益和频宽。

其中NMOS管的沟道宽为60U,长为2U,电阻RG阻值为100K,RD、RL阻值都为4K,RS为100欧姆,电容CC1、CC2、CG都为100UF,电流源IQ为1mA。

问题or,‘,’

*commongateampilifier

.OPTIONSPOST=2LIS

.lib'

.\Mm0355V.l'

tt

M1123GNDNCHW=60UL=2U

RG2GND100K

RDVDD14K

RS4VI100

RLVO04K

CC134100U

CC21VO100U

CG

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2