实验六Verilog设计分频器计数器电路.docx

上传人:b****0 文档编号:17589998 上传时间:2023-07-26 格式:DOCX 页数:25 大小:2.14MB
下载 相关 举报
实验六Verilog设计分频器计数器电路.docx_第1页
第1页 / 共25页
实验六Verilog设计分频器计数器电路.docx_第2页
第2页 / 共25页
实验六Verilog设计分频器计数器电路.docx_第3页
第3页 / 共25页
实验六Verilog设计分频器计数器电路.docx_第4页
第4页 / 共25页
实验六Verilog设计分频器计数器电路.docx_第5页
第5页 / 共25页
实验六Verilog设计分频器计数器电路.docx_第6页
第6页 / 共25页
实验六Verilog设计分频器计数器电路.docx_第7页
第7页 / 共25页
实验六Verilog设计分频器计数器电路.docx_第8页
第8页 / 共25页
实验六Verilog设计分频器计数器电路.docx_第9页
第9页 / 共25页
实验六Verilog设计分频器计数器电路.docx_第10页
第10页 / 共25页
实验六Verilog设计分频器计数器电路.docx_第11页
第11页 / 共25页
实验六Verilog设计分频器计数器电路.docx_第12页
第12页 / 共25页
实验六Verilog设计分频器计数器电路.docx_第13页
第13页 / 共25页
实验六Verilog设计分频器计数器电路.docx_第14页
第14页 / 共25页
实验六Verilog设计分频器计数器电路.docx_第15页
第15页 / 共25页
实验六Verilog设计分频器计数器电路.docx_第16页
第16页 / 共25页
实验六Verilog设计分频器计数器电路.docx_第17页
第17页 / 共25页
实验六Verilog设计分频器计数器电路.docx_第18页
第18页 / 共25页
实验六Verilog设计分频器计数器电路.docx_第19页
第19页 / 共25页
实验六Verilog设计分频器计数器电路.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

实验六Verilog设计分频器计数器电路.docx

《实验六Verilog设计分频器计数器电路.docx》由会员分享,可在线阅读,更多相关《实验六Verilog设计分频器计数器电路.docx(25页珍藏版)》请在冰点文库上搜索。

实验六Verilog设计分频器计数器电路.docx

实验六Verilog设计分频器计数器电路

实验六Verilog设计分频器/计数器电路

一、实验目的

1进一步掌握最基本时序电路的实现方法;

2学习分频器/计数器时序电路程序的编写方法;

3进一步学习同步和异步时序电路程序的编写方法。

二、实验内容

1、用Verilog设计一个10分频的分频器,要求输入为clock(上升沿有效),reset(低电

平复位),输出clockout为5个clock周期的低电平,5个clock周期的高电平),文件命名为fenpinqi10.v。

2、用Verilog设计一异步清零的十进制加法计数器,要求输入为时钟端CLK(上升沿)和异步清除端CLR(高电平复位),输出为进位端C和4位计数输出端Q,文件命名为couter10.v。

  

3、用Verilog设计8位同步二进制加减法计数器,输入为时钟端CLK(上升沿有效)和异

步清除端CLR(低电平有效),加减控制端UPDOWN,当UPDOWN为1时执行加法计数,为0时执行减法计数;输出为进位端C和8位计数输出端Q,文件命名为couter8.v。

4、用VERILOG设计一可变模数计数器,设计要求:

令输入信号M1和M0控制计数模,当M1M0=00时为模18加法计数器;M1M0=01时为模4加法计数器;当M1M0=10时为模12加法计数器;M1M0=11时为模6加法计数器,输入clk上升沿有效,文件命名为mcout5.v。

5、VerilogHDL设计有时钟时能的两位十进制计数器,有时钟使能的两位十进制计数器的元件符号如图所示,CLK是时钟输入端,上升沿有效;ENA是时钟使能控制输入端,高电平有效,当ENA=1时,时钟CLK才能输入;CLR是复位输入端,高电平有效,异步清零;Q[3..0]是计数器低4位状态输出端,Q[7..0]是高4位状态输出端;COUT是进位输出端。

 

三、实验步骤:

第一个实验:

1、打开QuartusII,新建一个工程f_fenpinq10yjq

2、新建一个Verilog HDL文件

3、输入程序:

modulefenpinqi10(clk,reset,clkout);

inputclk,reset;

outputclkout;

regclkout;

reg[2:

0]cnt;

always@(posedgeclk,negedgereset)

begin

if(!

reset)

beginclkout<=0;cnt<=0;end

elseif(cnt==4)

begincnt<=0;clkout<=~clkout;end

elsecnt<=cnt+1;

end

endmodule

4、设置顶层实体名(点settings>general>下拉选fenpinqi10)

5、编译

 

6、执行>CreateSymbolFilesforCurrentFlie为VHDI设计文件生成原件符号

7、建立波形文件

8、导入引脚

9、仿真结果如下:

总结:

仿真结果与实验一的题意相符,所以仿真正确。

 

第二个实验:

1、打开QuartusII,新建一个工程couter10yjq

 

2、新建一个Verilog HDL文件输入文件couter10yjq.v

3、输入程序

modulecouter10(CLK,CLR,C,Q);

inputCLK,CLR;

outputC;output[3:

0]Q;

regC=0;reg[3:

0]Q=0;

always@(posedgeCLK)

begin

if(CLR==1)

begin

Q<=0;C<=0;

end

else

begin

Q<=Q+1;

end

if(Q==9)

begin

C<=~C;Q<=0;

end

end

endmodule

 

4、设置顶层文件(点settings>general>下拉选couter10)

5、编译

 

6、执行>CreateSymbolFilesforCurrentFlie为VHDI设计文件生成原件符号

7、建立波形文件

8、导入引脚

9、仿真结果如下:

总结:

仿真结果与题意相符,故仿真正确。

 

第三个实验

1、打开QuartusII,新建一个工程couter8yjq

2、新建一个Verilog HDL文件输入文件couter8yjq.v

3、输入程序

modulecouter8(CLK,CLR,UPDOWN,C,Q);

inputCLK,CLR,UPDOWN;

outputC;output[7:

0]Q;

regC;reg[7:

0]Q;

always@(posedgeCLK)

begin

if(CLR==0)

begin

C<=0;Q<=0;

end

elseif(UPDOWN==1)

begin

if(Q=='b1111111)

begin

Q<=0;C<=~C;

end

elseQ<=Q+1;

end

else

begin

if(Q=='b0000000)

begin

Q<='b1111111;C<=~C;

end

elseQ<=Q-1;

end

end

endmodule

4、设置顶层文件(点settings>general>下拉选couter8)

5、编译

 

6、执行>CreateSymbolFilesforCurrentFlie为VHDI设计文件生成原件符号

7、建立波形文件

8、导入引脚

9、仿真

总结:

仿真结果与题意相符,故仿真正确。

第四个实验

1、打开QuartusII,新建一个工程mcout5yjq

2、新建一个Verilog HDL文件输入文件mcout5yjq.v

3、输入程序

modulemcout5(M1,M0,CLK,out,c,CLR);

inputM1,M0,CLK,CLR;

outputc;

output[5:

0]out;

regc;

reg[5:

0]M;

reg[5:

0]N;

reg[5:

0]out;

always@(posedgeCLKorposedgeCLR)

begin

if(CLR)

begin

out<=0;N<=0;

end

else

begin

N<=M;

case({M1,M0})

'b00:

M<=18;

'b01:

M<=4;

'b10:

M<=12;

'b11:

M<=6;

endcase

if(N==M)

begin

if(out==M)

begin

out<=0;c<=~c;

end

else

begin

out<=out+1;

end

end

else

begin

out<=0;c<=0;

end

end

end

endmodule

4、设置顶层文件(点settings>general>下拉选mcout5)

5、编译

6、执行>CreateSymbolFilesforCurrentFlie为VHDI设计文件生成原件符号

7、建立波形文件

8、导入引脚

9、仿真

总结:

仿真结果与题意相符,故仿真正确。

 

第五个实验

1、打开QuartusII,新建一个工程counter2_10yjq

2、新建一个Verilog HDL文件输入文件counter2_10yjq.v

3、输入程序

modulecounter2_10(clk,clr,ena,cout,ql,qh);

inputclk,clr,ena;

outputcout;

output[3:

0]ql,qh;

reg[3:

0]qh,ql;

regcout;

always@(posedgeclkorposedgeclr)

begin

if(clr)

begin

qh<=0;

ql<=0;

cout<=0;

end

elseif(ena)

begin

ql<=ql+1;

if(ql=='b1010)

begin

ql<=0;qh<=qh+1;

if(qh=='b1010)

begin

qh<=0;

cout<=~cout;

end

end

end

end

endmodule

4、设置顶层文件(点settings>general>下拉选counter2_10)

5、编译

6、执行>CreateSymbolFilesforCurrentFlie为VHDI设计文件生成原件符号

7、建立波形文件

8、导入引脚

9、仿真

总结:

仿真结果与题意相符,故仿真正确。

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

当前位置:首页 > 医药卫生

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

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