南昌大学eda实验报告(3)

2019-05-26 17:44

cnt=cnt+1; if (cnt==200) begin clk1=1'b1; cnt=0; end

else clk1=1'b0; if (sel<2) sel=sel+1; else sel=0; end

always @(posedge CLK or negedge rst) begin if(!rst) q=0;else if(en) begin if(q

if (gw==9) begin q=q+7; if (sw==9) q=q+96; end else q=q+1; end else q=0;end end always @(q) begin

if(q

0:SG<=8'b00111111; 1:SG<=8'b00000110; 2:SG<=8'b01011011; 3:SG<=8'b01001111; 4:SG<=8'b01100110; 5:SG<=8'b01101101; 6:SG<=8'b01111101; 7:SG<=8'b00000111; 8:SG<=8'b01111111; 9:SG<=8'b01101111; default: SG=8'b11111111; endcase end endmodule

分频模块

分频模块由时钟频率的分频作为计数脉冲,每200个系统脉冲有一个技术脉冲,同时可以利用系统脉冲进行循环选择SEL来进行循环扫码。程序如下 always @(posedge CLK) begin cnt=cnt+1; if (cnt==200) begin clk1=1'b1; cnt=0; end

else clk1=1'b0; if (sel<2) sel=sel+1; else sel=0;

选择模块由M选择,M为1时模是30,M为0时模为100。 always @(M) if (M) model=12'b000000110000; else model=12'b000100000000; 计数模块

计数模块如下,由于q为16进制数,我们需要的输出为BCD码,故进行调整。平常时q来一个脉冲加1,当加到个位为9时,也就是1001,将其加7变为16也就是0,实现了个位由9到0的BCD计数,同时也会向十位进1。当十位和个位同时,为9时,再加上个位向十位进的1就是加7,q位加96也就是十位加6,

十位会清零同时个位也会清零,同时向百位进1,实现了正常的十进制BCD码计数。Rst则为清零信号,en为使能信号。 always @(posedge CLK or negedge rst) begin if(!rst) q=0;else if(en) begin if(q

if (gw==9) begin q=q+7; if (sw==9) q=q+96; end else q=q+1; end else q=0;end End

当计数到顶后有个标志位d标志是否计到顶。 always @(q) begin

if(q

循环扫码模块如下,由于sel的变化频率和系统时钟相同,所以肉眼辨别不出来在跳动,可以通过其分别选择数码管并将个位十位百位呈现在数码管上,同时配

有译码程序。 always @(sel) begin case (sel) 0: a=bw; 1: a=sw; 2: a=gw; default: a=0; endcase case (a)

0:SG<=8'b00111111; 1:SG<=8'b00000110; 2:SG<=8'b01011011; 3:SG<=8'b01001111; 4:SG<=8'b01100110; 5:SG<=8'b01101101; 6:SG<=8'b01111101; 7:SG<=8'b00000111;

(五) 实验截图

仿真时用CLK代替分频频率便于观察.总体图

Rst可以实现计数的清零。

当M为1时实现了模30的计数,同时标志位为1

当M为0时实现了模100的计数,同时标志位为1

使能信号en为0时计数保持不变

(六) 实验总结

初步进行了自己设计程序和仿真一系列工作,加深了对设计过程和语句使用的理解。进而对软硬件的操作使用都有了进一步的熟练,遇到的基础问题也能想办法去解决了,不像第一次那样手足无措了。语法语句也大概有了了解。


南昌大学eda实验报告(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:土壤微生物的分离鉴定

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: