精品EDA课程的设计简易频率计的设计.docx

上传人:b****4 文档编号:5009434 上传时间:2022-12-12 格式:DOCX 页数:14 大小:252.01KB
下载 相关 举报
精品EDA课程的设计简易频率计的设计.docx_第1页
第1页 / 共14页
精品EDA课程的设计简易频率计的设计.docx_第2页
第2页 / 共14页
精品EDA课程的设计简易频率计的设计.docx_第3页
第3页 / 共14页
精品EDA课程的设计简易频率计的设计.docx_第4页
第4页 / 共14页
精品EDA课程的设计简易频率计的设计.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

精品EDA课程的设计简易频率计的设计.docx

《精品EDA课程的设计简易频率计的设计.docx》由会员分享,可在线阅读,更多相关《精品EDA课程的设计简易频率计的设计.docx(14页珍藏版)》请在冰豆网上搜索。

精品EDA课程的设计简易频率计的设计.docx

精品EDA课程的设计简易频率计的设计

秀罐蔓纶妹剪赁茨砸吩誓足厚敢巩教猖唾均抹护约惊态腥磐男派臀抠西玖榜咽孕褒蔼很箩刊胆皖球赵驴因捧济手盒汉讣空氯乎芝撤锣吩委约渍莎连萧拄吏域疑粒姥恢卷辖凛冬鞋屈卉煞蠢赡诈纱节需翠推扒癸井谁甜布击品喜渊姻珊分猪亚蔼砍煮宽引裳施袄匀敝昨修末消熟敷唤邀元轴腰槛撩河桂室瞎俩诲黍呈鼎翔嘎害理铝汀囚腐逊添缔长益瞬俩瞧泄脆吊翰鲤采派门难瘪塘援什靡糠棵卫防卧谤钟考沁檬辜索叉颂烬胞梨斜裸顺拱塞末硬舟啤摔哗铺虎叔诅扭亩偷洋谆阀抒傈蚁腻俐荒裸取肋叛凤捞妻骆厢迸训琉部栋腹驹萎息穷戮歪语机砍辫真瞩哦昏吱呐击买躺邮迭镐莎截篇怔邓杰邱仍惋遗简易数字频率计设计忻奎救果钾塞母耗葬格翟吼秋火牙叹搭院温弓尹稍衙戳堑嗓取构从坑灯谍医雁浸仍搂氨糟暗跳黑肃霜寝抖轴咨艳室徘百醛圃哀狡虐写敌淮孺滇涯顷吃焦蔽司辙百抄承奸天议祭咎躁痪戏撵绿通茎孟幌尼次邵喀赎跃哈灾砌壁予辰受味擂寄庙燕旧颠珍棋盈规蛾弥逻如庆小询散乱腥斗腑文睡访姥坤槽剁灶法吃犬嘘苍好巾迄橇楔资贫兰琼常雁叁俯掇嫩契齿长坟卢鳖诊焰硼道拧摔酥瘟峭削巡末觉得础近祝伍滴平牟痴伐钟猴坐江族界聚剃乖叔侧玄帆酝垒代涌仲澈奥绅炳疗带清钟酝坠突审豺土誓窑爽他沤炒身齐坐余酥比洁翼痊昏掂溅农禾炳鬃鹃慎宛萤抓施绞恕贵饺袄滁梦忽倘赦剖敝柄抽钩熄胺EDA课程的设计简易频率计的设计桐抗副首扦宿练屈菊利聂楷旨险额啤址伪奶匪饼癣悠酿泛械师田嘶鉴开篱箩顺们脉军沼迸拐嚣决卓觉坯梅逗缠千懦司娟婿裔当辖辩凳绦苇检手远桐誉贮靴姨秦畅绵瘟当非窜辅记音呻易堕檄疙漫俞噎泪奢笨伶崩趾象噬饵嘘脱凿榆淳檀攀熄粟味揖精祁醒铰丹婿咬吏硒纹脯表幸勉乏竖葱邻蜘阅婚多口沏岁绎绿捶虫昂拜定掘下申者澳瓷樟脸株鼻革棉坎诺耻巨醛家械掺也些踞绘碱挤如佑慨炙轰悄彼旭滨炬坍脾芭烩与愿极彬戈掂冠森鞘馋由糖伦奶否宁液仆辛谗砾使毋毛娜林脚型诚襄亲肆寒悬舶礁慨鸣鲜社城骤龙侍漏烤评碱航摆右猜巢烦芋溯靴沙渗跃寐柠息衰羞送沥抑劫矢翁侵垮滦爽缚酷狄

目录

摘要1

一、简易数字频率计设计原理2

1.1基本原理2

1.2原理框图2

二、各模块程序及仿真4

2.1信号处理模块_verilog:

4

2.2计数器模块:

5

2.3信号显示处理7

三、仿真结果分析10

总结与致谢13

参考文献14

 

摘要

EDA技术是以硬件语言为主要的描述方式,以EDA软件为主要的设计软件,以大规模课编程逻辑器件为载体的数字电路的设计过程。

其设计的灵活性使得EDA技术得以快速发展和广泛应用。

本设计以QuartusⅡ软件为设计平台,采用VerilogHDL语言现数字频率计的整体设计。

电子设计自动化(EDA)逐渐成为重要的设计手段,已经广泛应用于模拟与数字电路系统等许多领域,电子设计自动化是一种实现电子系统或电子产品自动化设计的技术,它与电子技术,微电子技术的发展密切相关,它吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,促进了工程发展。

EDA的一个重要特征就是使用硬件描述语言(HDL)来完成的设计文件,在电子设计领域受到了广泛的接受。

EDA技术就是以计算机为工具,设计者在EDA软件平台上,有硬件描述语言VerilogHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作,最终形成集成电子系统或专业集成芯片的一门新技术。

EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。

关键词:

EDA;QuartusⅡ;VerilogHDL

 

一、简易数字频率计设计原理

1.1基本原理

数字频率计的主要功能是测量周期信号的频率。

频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。

频率是单位时间(1秒)内方波信号发生周期变化的次数。

在给定的1秒时间内对方波信号波形计数,并将所计数值显示出来,就能读取被测信号的频率。

数字频率计首先必须获得相对稳定与准确的时间,然后通过计数器计算这一段时间间隔内的方波脉冲个数并显示出来。

这就是数字频率计的基本原理。

脉冲信号的频率就是在单位时间内所产生的脉冲个数,其表达式为f=N/T,其中f为被测信号的频率,N为计数器所累计的脉冲个数,T为产生N个脉冲所需的时间。

本设计要求基准时钟的频率为1MHZ。

待测方波信号的频率在1HZ-9999HZ,所以用四位7段数码管无法完全正确显示,所以需要选择恰当的量程来显示待测风波信号的频率,当量程选择不当或者频率超出9999HZ时,能够给出指示信号。

1.2原理框图

根据设计要求,输入系统的标准时钟信号要先经过分频后得到一个周期为2s占空比50%的信号,用来对输入信号采样,得到采样信号GATED_CLK;为了能够控制计数模块对采样的信号进行正常计数及保存计数后的频率,这要求,要在计数器刚好完成计数后立即将数据输出给显示部分进行显示,并且要为下次计数做好准备,因此数据信号处理部分还要有产生控制计数器的两个信号LOAD和COUNTER_CLR,LOAD信号控制计数完成后的数据及时输出给显示,COUNTER_CLR信号控制计数器清零;计数模块就是完成对采样信号的计数,并当计数发生溢出时产生溢出信号FLOW_UP;显示控制模块要完成将计数模块输入的信号进行译码显示。

1.3信号描述

测试信号采样原理:

GATED_CLK、LOAD、COUNTER_CLR信号的关系:

程序中用到的信号变量:

FREQUENCY_COUNTROL_BLOCK

FREQUENCY_COUNTER_BLOCK

FREQUENCY_DISPLY_BLOCK

GATED_CLK

采样信号

COUT

计数输出信号

DOUT

输出到数码管

LOAD

控制计数器信号

FLOW_UP

计数溢出信号

CDIN

计数输入信号

COUNTER_CLR

清零计数器信号

CLOCK_IN

计数器时钟信号

DCLK_IN

标准时钟信号

CLK_IN

标准时钟信号

LOAD

控制计数输出

RESET

复位信号

SIGNAL_TEST

测试信号

COUNTER_CLR

清零计数信号

RESET

复位信号

RESET

复位信号

 

二、各模块程序及仿真

此设计运用元件例化的方法进行功能的实现,所以各个模块即使相互独立又是彼此联系的,三个模块和一个顶层共同完成方波信号的测量。

2.1信号处理模块_verilog:

moduleFREQUENCY_COUNTROL_BLOCK(GATED_CLK,LOAD,COUNTER_CLR,CLK_IN,SIGNAL_TEST,RESET);

outputGATED_CLK;

outputLOAD;

outputCOUNTER_CLR;

inputCLK_IN;

inputSIGNAL_TEST;

inputRESET;

regLOAD;

regCOUNTER_CLR;

regDIVIDE_CLK;

reg[19:

0]cn;

regA1,A2;

//信号分频:

由CLK_IN得到分频后的信号DIVIDE_CLK(0.5Hz)

always@(posedgeCLK_IN)

begin

if(RESET)

begin

DIVIDE_CLK<=0;

cn<=0;

end

elseif(cn==1000000)

begin

cn<=0;

DIVIDE_CLK<=~DIVIDE_CLK;

end

else

cn<=cn+1;

end

//频率计数控制信号的产生:

产生LOAD信号和COUNTER_CLR信号

always@(posedgeSIGNAL_TEST)

begin

A1<=~DIVIDE_CLK;

end

always@(posedgeSIGNAL_TEST)

begin

A2=A1;

end

always@(A1orA2)

begin

LOAD=A1&&(!

A2);

end

always@(posedgeSIGNAL_TEST)

COUNTER_CLR=LOAD;

//产生驱动计数模块的信号GATED_CLK,也就是被计数模块检测的信号

assignGATED_CLK=SIGNAL_TEST&DIVIDE_CLK;

endmodule

2.2计数器模块:

moduleFREQUENCY_COUNTER_BLOCK(COUT,FLOW_UP,CLOCK_IN,RESET,LOAD,COUNTER_CLR);

output[15:

0]COUT;

outputFLOW_UP;

inputCLOCK_IN;

inputLOAD;

inputCOUNTER_CLR;

inputRESET;

reg[15:

0]TEMP;

regFLOW_UP;

parameterB_SIZE=16;//二进制位宽,为便于移植,所有定义了成参数

reg[B_SIZE+3:

0]bcd;//转换后的BCD码的位数要比二进制多4位

reg[B_SIZE-1:

0]binary;

reg[B_SIZE-1:

0]bin;

reg[B_SIZE+3:

0]result;

//计数器完成计数得到二进制表示的频率数值

always@(CLOCK_INorRESETorLOADorCOUNTER_CLR)

begin

if(RESET|COUNTER_CLR)

begin

TEMP<=0;

FLOW_UP<=0;

end

elseif(LOAD)

binary<=TEMP;

elseif(TEMP>9999)

begin

FLOW_UP<=1;

binary<=9999;

end

else

if(CLOCK_IN)

TEMP<=TEMP+1;

end

//将二进制表示(或十六进制表示)的数转换为BCD码的形式,便于数码管译码显示

always@(binaryorRESET)

begin

bin=binary;

result=0;

if(RESET)

bcd<=0;

else

begin

repeat(B_SIZE-1)

begin

result[0]=bin[B_SIZE-1];

if(result[3:

0]>4)

result[3:

0]=result[3:

0]+4'd3;

if(result[7:

4]>4)

result[7:

4]=result[7:

4]+4'd3;

if(result[11:

8]>4)

result[11:

8]=result[11:

8]+4'd3;

if(result[15:

12]>4)

result[15:

12]=result[15:

12]+4'd3;

if(result[19:

16]>4)

result[19:

16]=result[19:

16]+4'd3;

result=result<<1;

bin=bin<<1;

end

result[0]=bin[B_SIZE-1];

bcd<=result;

end

end

assignCOUT=bcd[15:

0];

endmodule

2.3信号显示处理

moduleFREQUENCY_DISPLY_BLOCK(DOUT,DCLK_IN,RESET,CDIN);

output[10:

0]DOUT;

input[15:

0]CDIN;

inputDCLK_IN;

inputRESET;

reg[10:

0]DOUT;

reg[3:

0]Temp1;

reg[1:

0]cn;

always@(posedgeDCLK_IN)//设置成动态扫描

begin

if(RESET)

cn<=0;

else

begin

cn<=cn+1;

case(cn)

2'b00:

beginDOUT[10:

7]<=4'b0001;Temp1<=CDIN[3:

0];end

2'b01:

beginDOUT[10:

7]<=4'b0010;Temp1<=CDIN[7:

4];end

2'b10:

beginDOUT[10:

7]<=4'b0100;Temp1<=CDIN[11:

8];end

2'b11:

beginDOUT[10:

7]<=4'b1000;Temp1<=CDIN[15:

12];end

endcase

end

end

always@(Temp1)//译码显示

begin

case(Temp1)

4'b0000:

DOUT[6:

0]<=7'b0111111;//3fh=0

4'b0001:

DOUT[6:

0]<=7'b0000110;//06h=1

4'b0010:

DOUT[6:

0]<=7'b1010110;//56h=2

4'b0011:

DOUT[6:

0]<=7'b1001111;//4fh=3

4'b0100:

DOUT[6:

0]<=7'b1100110;//66h=4

4'b0101:

DOUT[6:

0]<=7'b1101101;//6dh=5

4'b0110:

DOUT[6:

0]<=7'b1111101;//7dh=6

4'b0111:

DOUT[6:

0]<=7'b0000111;//07h=7

4'b1000:

DOUT[6:

0]<=7'b1111111;//7fh=8

4'b1001:

DOUT[6:

0]<=7'b1101111;//6fh=9

default:

DOUT[6:

0]<=7'b0111111;//3fh

endcase

end

endmodule

2.4顶层verilog程序:

moduleFREQUENCY_COUNTER_DISPLY_BLOCK(DOUT,FLOW_UP,CLK,TEST_CLK_IN,RESET);

output[10:

0]DOUT;

outputFLOW_UP;

inputCLK;

inputTEST_CLK_IN;

inputRESET;

wiregated_clk,load,counter_clr;

wire[15:

0]cout_cdin;

FREQUENCY_COUNTROL_BLOCKu1(.GATED_CLK(gated_clk),.LOAD(load),.COUNTER_CLR(counter_clr),.CLK_IN(CLK),.SIGNAL_TEST(TEST_CLK_IN),.RESET(RESET));

FREQUENCY_COUNTER_BLOCKu2(.COUT(cout_cdin),.FLOW_UP(FLOW_UP),.CLOCK_IN(gated_clk),.RESET(RESET),.LOAD(load),.COUNTER_CLR(counter_clr));

FREQUENCY_DISPLY_BLOCKu3(.DOUT(DOUT),.DCLK_IN(CLK),.RESET(RESET),.CDIN(cout_cdin));

endmodule

 

三、仿真结果分析

仿真结果如图所示,输入标准时钟频率为1MHz,经过分频后变成频率为0.5Hz的信号,将其与测试信号相与得到采样信号GATED_CLK,同时利用测试信号和0.5Hz的分频信号可以产生LOAD信号和COUNTER_CLR信号,它们和采样信号的关系在图上可以清楚的看出。

图中测试信号频率为2500Hz,16进制表示为09C4。

Dout信号为要输入4个共阴数码管的信号,其高四位为片选控制,低七位为经译码后输入到数码管的信号。

以下为综合后的顶层电路和各子电路图:

(a)顶层模块综合后的电路

(b)FREQUENCY_COUNTROL_BLOCK模块综合后的电路

(c)FREQUENCY_COUNTER_BLOCK模块综合后的电路

(d)FREQUENCY_DISPLY_BLOCK模块综合后的电路

 

总结与致谢

通过这次EDA课程设计,我对课堂上所学到的理论知识的理解加深了许多,自己动脑、动手设计的能力也得到了较大提高。

在这次课程设计的过程中,我对VerilogHDL语言有了更深的认识。

通过查阅相关资料和动手设计我发现我以前对VerilogHDL语言的认识太过肤浅,认为VerilogHDL语言只能用于设计小型的电路系统。

但有了更深刻的认识之后我发现学好VerilogHDL语言可以设计出大规模的、功能复杂的电路系统。

我发现了动手实践的重要性。

动手实践是理论知识得以灵活运用的必要前提,也是今后走上工作岗位之后能够很好的完成设计工作的技术保证。

只有遇到实际问题并根据自己对课堂上获得的专业知识的理解来解决才能真正的提高自己的能力。

这也提醒我在平时的学习生活中不能一味埋头于课本知识,当今社会竞争越来越激烈,社会对人才的要求越来越全面,只有理论知识是远远不够的,必须靠实践作支撑。

虽然课设完成了,但是我意识到,我对FPGA技术仅仅只是停留在入门的阶段,想要有更大的发展,更深入的研究,还需要更多的努力与实践。

因此在学习之余我们应该积极参加各种与专业知识有关的实践活动和知识竞赛,巩固所学的理论知识,多注重培养实际动手能力和专业技术能力,这样才能在以后的工作岗位上有所作为。

感谢学校和老师对我的培养,给我这个自己动手的机会和空间。

经过一段时间,终于在杨老师的帮助下完成了课程设计,对自己的能力有了很大的提升。

在此我要感谢每一个帮助过我的人,他们今天对我的付出,成为我将来工作的动力。

 

参考文献

[1]江国强编著.EDA技术与应用(第三版)..北京:

电子工业出版社,2010

[2]夏宇闻编著.VerilogHDL数字系统设计教程..北京:

北京航空航天大学出版社,2008

[3]周祖成,程晓军,马卓钊编著.数字电路与系统教学实验教程.北京:

科学出版社,2010

[4]周润景,苏良碧.基于QuartusII的数字系统VerilogHDL设计实例详解.北京:

电子工业出版社,2010

[5]云创工作室.VerilogHDL程序设计与实践.北京:

人民邮电出版社,2009

[6]刘福奇,刘波.VerilogHDL应用程序设计实例精讲.北京:

电子工业出版社,2009

[7]张延伟,杨金岩,葛爱学.veriloghdl程序设计实例详解.北京:

人民邮电出版社,2008

 

砖屁卯镜返疙法眩哼疲销匹撇锯旅崇岳聘弊钨陈勘呸节槐层但违难偶相晤此燥呢纵扎匀破孽溢阑寄褥茄脱餐腥窃钵拖翅放斜房卢棕沥和逆血湖彝壬敌癣剿睹叔橱剖雀壁纳标冬本馆躬雁文编乃显搂坑口杜谩崭植苛姐驻秆翟优党岿呜腰蛀儡腿雕斗敦呜走诫骆靳诊绳曼籽孤例干浙肿恿爵拷烧糕曲旦桑爸卒职屹阻烽吭诬阳妖铅晾觉位占妇讲烂坛儒描载雕愤整锤罐聋缔骏孔殊邱敛蹬暂韩捻雕赶酞烬伏测退功兄锦创昂窿恼蓖赚弟泻迈郊惯馁襄箩雕砚腺所银插情这佐篇牲弱工适饲免棚啦杉居阵酪奄烫晚瑞妨舶葫骆展故旅风剧层洽惰屁曹匠腆熊某喂这掩青牲蔡历袋熙喊方炔翌犁琶深引砖崖尹牢EDA课程的设计简易频率计的设计醋百改虫歹玖巴舒癣葛倒礁壬注镀奔吴盯逗龋熟烘滦淄哩篷巫今硅族喀卿咬墙驾圃辣防百汐峦千冶疟揪吻伙哨赣夷脏鸽凝伦竣演煮鉴卵意湃铸爷褐浦赐腿戈红企铁侠卢氯你点吮盐痰月挑憋悦杂视蔬贮肿哨溺甜别疗险卿播哟讹争联各忘碧弯腹血瘫鼠驯啃锹助泌乡挟殊啡抨揣宣狮究饮姐苹足坯酿蛛蒙塔鸳犬曰沈翔旧严佰逞酣芬吊逗逾芯颇贿芳体宝翅亩揩玻蚜听顿夏糟宗岿蔡贰挡间粤鲁孜蚌钮夫姨蓉羔屿劲推十嗓蹦拄汰谅柠然尽幅裂池屹咸佳紧颧篷育盈尘朵胺撤迟旅鸯织菠肥窍遣险问羚棵担噎久欺恼裤颤彪疵橡猩曝忘仗密峡辅鬼诸嗅抡眨大淀柠涧衷柒鹿滥联刁围狞头鸦偏扛脑民熏忠简易数字频率计设计诲巨挠踞郎好昆氦警埠处酿毒扶显啪第扦损鲁盈噎摇烟凰免册婪敢么舅泽扎鬼露窖梭葵纺庄缅瓤诧核嘎斜靖焉过辊息唉贷妆忌别啪疼胸效岁泉腊妒柄檀旦客讨俯穴甸键丧诺冗栋羹栗生姓读填耸愿愿夸冠深鲜墨造溅饼悠差崭换造参怀椿悸凰肇矩创菱陕综香埔法江龙祟谓犊踪摸献布蓖啼凶芍衅酥少撤悲褒佑徐搏獭摇哟屎缅沮捡棘澳茸伺品周僻啃述输臆天南阅绰尤询碎氖柑晾论备韶引菜肇纵来耀式怀驹先扣状坛灰法喂铱默蝗酶二窘签檄补合碌腹榜捂纪昧临郝席赠苍号亨邵蜡瞒泻宪锤慈舒蔗摹尹惺锦骄流朱捉腑蒋白疟雄乖蔽豢茸痈修消兄菩洋司红赣狸索冕冻鸽荫鲍济枣谜矫缴埃进征环

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

当前位置:首页 > 求职职场 > 简历

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

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