顶层为原理图的能显示16进制减法计数器设计.docx

上传人:b****7 文档编号:8833404 上传时间:2023-02-02 格式:DOCX 页数:11 大小:341.61KB
下载 相关 举报
顶层为原理图的能显示16进制减法计数器设计.docx_第1页
第1页 / 共11页
顶层为原理图的能显示16进制减法计数器设计.docx_第2页
第2页 / 共11页
顶层为原理图的能显示16进制减法计数器设计.docx_第3页
第3页 / 共11页
顶层为原理图的能显示16进制减法计数器设计.docx_第4页
第4页 / 共11页
顶层为原理图的能显示16进制减法计数器设计.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

顶层为原理图的能显示16进制减法计数器设计.docx

《顶层为原理图的能显示16进制减法计数器设计.docx》由会员分享,可在线阅读,更多相关《顶层为原理图的能显示16进制减法计数器设计.docx(11页珍藏版)》请在冰豆网上搜索。

顶层为原理图的能显示16进制减法计数器设计.docx

顶层为原理图的能显示16进制减法计数器设计

顶层为原理图的能显示16进制减法计数器设计

【实验内容】

1、用Verilog设计一个二选一电路,并用ModelSimSimulator仿真验证。

要求该二选一电路能实现16进制数的两位数据串行输出(或称动态输出)。

(在图6-1中为KZ模块,其中Q(3:

0)为数据输出信号,D(2:

0)为输出位选通信号)。

2、用Verilog设计一个16进制减法器,并用ModelSimSimulator仿真验证。

3、用Verilog设计一个共阴极7段译码电路,并用ModelSimSimulator仿真验证。

4、设计一个能显示15到0减法计数器顶层为原理图电路。

用ModelSimSimulator仿真验证。

5、设计一个能将一个输入总线数值为0000到1111的分成输出为个、十位的

二个总线信号(个位为0000到1001,十位为0000到0001)。

6、学习根据硬件实验装置外围电路与可编程器件引脚连接关系的附录表1

(或所选硬件实验装置的芯片与外围电路连接附录表)定义芯片的I/O管脚,并将所设计16进制减法计数器下载到可编程器件芯片中去,通过硬件实验装置验证设计结果。

7、掌握数据并行输入并行输出,串行输入并行输出及并行输入串行输出的设计电路。

本设计中控制电路为数据并行输入串行输出。

【实验步骤】

新建一个项目名TEST_6,顶层为原理图,原理图名为XSQ,可编程芯片

选SPARTAN3系列中XC3S50-TQ144(或根据所选硬件装置上的芯片系列型号)。

1)分别用Verilog设计下层各模块:

(1)二选一扫描电路(KZ);

(2)共阴极7段译码电路(decode);

(3)16进制减法计数器(jsq_16);

(4)将十六进制分成十进制的高低位(个、十位)(gdf);

(5)根据所给时钟频率设计记数分频器和扫描分频器(硬件验证实验装置的输入时钟频率为10MHZ,也可查附录表1获得)。

其中16进制减法计数器(jsq_16)可通过ProjectNavigator界面中菜单ProjectAddSource从实验四中将练习时已生成的16进制减法计数器Verilog加入(调入)。

3)在右面界面的XSQ原理图图板中完成模块的各设计模块的连接。

如图6-1。

保存后各设计模块由原来的与XSQ原理图同级文件成为XSQ原理图下级文件。

见Sources子窗口。

图6-1

图6-2

图6-3

4)给输入输出端口定义引脚序号

如果不给芯片的定义I/O引脚序号,则软件编译时会自动生成设计的I/O引脚表,设计者根据I/O引脚表通过连接线将芯片端口与外围器件连接。

在给定的硬件验证实验装置LP2900上芯片与外围器件的接口引脚已固定,只能自己收到定义I/O引脚。

在ProjectNavigator界面中选菜单ProjectNewSource,在file栏中输入文件名,左栏选ImplementationConstraintsFile,然后点击“下一步”,在SourceFile中选设计顶层文件名,点击“下一步”此时在sourcesinProject中生成后缀名为.ucf文件,选中.ucf文件,在ProcessesforSource中双击

,如果设计无误,则会弹出.ucf文件窗口如图6-5,在图6-6窗口中通过DesignObjectList–I/Opin表和PackagePinforxc3s50-TQ144或DeveicArchitectureforxc3s50-TQ144进行人工定义引脚,为了与硬件外围设备相匹配,要根据硬件设备(例如按键、数码管、LED发光二极管等)与芯片引脚连接表(见附录表1)进行定义可编程器件引脚。

如要使在LP2900实验装置中en使能端通过按键SW1控制,由附录表查得按键SW1与芯片引脚P20相连,则应定义en引脚为P20。

全部定义结束后,保存一下。

对于引脚定义不要选用专用引脚(例VCC、GND等),时钟信号引脚要选用I/O/GCK(GlobalClock)全局时钟信号。

在PackagePinLegend窗口说明了PackagePinforxc3s50-TQ144芯片引脚中引脚符号所代表的含义,请仔细阅读。

图6-5

5)硬件验证

现要将设计仿真成功,引脚定义完成的能显示16进制减法计数器的设计下载到芯片中。

1.回到ProjectNavigator窗口,在Source子窗口中选中顶层原理图文件名,在Processes子窗口中双击GenerateProgrammingFile下的ConfigureDevice(Impace),软件自动进行综合(Synthesize)、设计实现(Implement)、生成可编程文件。

设计实现包括编译Translate、映射Map、布局布线Place&Route,同时生成相应的文本文件。

如果能通过综合和设计实现,会弹出如图6-6对话,

2.选择ConfiguredevicesusingBoundary-Scan(JTAG),点击“完成”,软件通过并口线与硬件实验装置联接,联接正确,弹出图6-8对话框,运行文件中的项目位流文件(注意要进入所设计的工程项目路径),则弹出图框如图6-9,在图6-9中芯片图下方有芯片型号、位流文件名(例:

xsq.bit)。

选中芯片按右键选“Programming”,弹出对话图框如图6-10选“OK”。

如果设计正确则会将设计文件下载到可编程芯片中。

硬件装置根据设计功能正常运行。

如果硬件运行不正常,要根据实际情况分析、解决问题。

图6-7

图6-8

图6-9

图6-10

 

【实验现象与结果】

◆程序代码如下:

moduleKZ(clk,en,A2,A1,Q,D);

inputclk;

inputen;

input[3:

0]A2,A1;

output[3:

0]Q;

output[2:

0]D;

regcount_for_clk=0;

reg[3:

0]Q;

reg[2:

0]D;

initialcount_for_clk<=0;

always@(posedgeclk)begin

count_for_clk<=count_for_clk+1;

if(count_for_clk==1'b1)

count_for_clk<=1'b0;

end

initialbeginQ<=4'b0000;

D<=3'bz;end

always@(posedgeclk)begin

if(en==1'b0)begin

Q<=4'b0000;

D<=3'bz;end

else

case(count_for_clk)

0:

beginQ<=A2;D<=3'b100;end

1:

beginQ<=A1;D<=3'b101;end

endcase

end

endmodule

moduledecode(A,Q);

input[3:

0]A;

output[6:

0]Q;

reg[6:

0]Q;

always@(A)begin

case(A)

4'b0000:

Q<=7'b0111111;

4'b0001:

Q<=7'b0000110;

4'b0010:

Q<=7'b1011011;

4'b0011:

Q<=7'b1001111;

4'b0100:

Q<=7'b1100110;

4'b0101:

Q<=7'b1101101;

4'b0110:

Q<=7'b1111101;

4'b0111:

Q<=7'b0000111;

4'b1000:

Q<=7'b1111111;

4'b1001:

Q<=7'b1101111;

default:

Q<=7'b0000000;

endcase

end

endmodule

modulejsq_16(en,clk,Q);

inputen;

inputclk;

output[3:

0]Q;

reg[3:

0]Q;

initialQ<=4'b1111;

always@(posedgeclk)begin

if(en==1'b0)Q<=4'b1111;

elseif((en==1'b1)&&(Q==4'b0000))

Q<=4'b1111;

else

Q<=Q-1;

end

endmodule

modulegdf(Q,H,L);

input[3:

0]Q;

output[3:

0]H;

output[3:

0]L;

reg[3:

0]H,L;

always@(Q)begin

if(Q<4'b1010)begin

H<=4'b0000;

L<=Q;

end

elsebegin

L<=Q-10;

H<=4'b0001;

end

end

endmodule

modulefp1(clk,cp);

inputclk;

outputcp;

regcp;

reg[13:

0]cnt;

initialbegin

cnt<=0;

cp<=0;

end

always@(posedgeclk)begin

cnt<=cnt+1;

if((cnt>=0)&&(cnt<=4999))cp<=1'b1;

elseif((cnt>=5000)&&(cnt<=9999))cp<=1'b0;

if(cnt>9998)cnt<=0;

end

endmodule

modulefp2(clk,cp);

inputclk;

outputcp;

regcp;

reg[23:

0]cnt;

initialbegin

cnt<=0;

cp<=0;

end

always@(posedgeclk)begin

cnt<=cnt+1;

if((cnt>=0)&&(cnt<=4999999))cp<=1'b1;

elseif((cnt>=5000000)&&(cnt<=9999999))cp<=1'b0;

if(cnt>9999998)cnt<=0;

end

endmodule

◆自定义管脚,查附录后可得:

七段数码管选用管脚为:

代號

A

B

C

D

E

F

G

dp

裝置

七段顯示器

腳位

Pin55

Pin57

Pin60

Pin65

Pin69

Pin70

Pin73

Pin74

En初始化管脚为:

代號

SW1

SW2

SW3

SW4

SW5

SW6

SW7

SW8

裝置

PushButton

腳位

Pin20

Pin23

Pin25

Pin27

Pin30

Pin32

Pin35

Pin40

Clk管脚为:

代號

OSC

f=10M

裝置

Clk0

腳位

Pin125

高低选管脚为:

代號

DE1

DE2

DE3

裝置

74138

腳位

Pin76

Pin77

Pin78

◆实验现象,最后出现PROGRAMESUCCESSFUL即下载成功,如图6-11

图6-11

◆此时,可以在实验板上看到数码管显示的减法器。

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

当前位置:首页 > 求职职场 > 职业规划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1