课程设计报告模板(6)

2019-03-10 18:58

卢思萌 信1411011001频率计设计 第 - 26 - 页 共 46 页

图4.7.2 动态位选模块的仿真波形

4.8 BCD译码模块dispdecoder

BCD译码模块主要实现BCD码到7段数码管显示码字段的转换,同时,考虑到频率测量中的一些“零”的处理,比如选择量程1~999999Hz,但被测信号频率为100Hz,这样在显示的时候就需要将6为数码管的前三位屏蔽。

BCD译码模块的结构框图如图4.7.1所示。

图4.8.1 BCD译码模块的结构框图

根据模块实现的功能设计Verilog HDL源代码如下: module dispdecoder( data_in, disp_select, dp_s1hz,dp_s10hz,dp_s100hz,

Q5,Q4,Q3,Q2,Q1,Q0,counter_out, data_out, dp); output [6:0] data_out; output dp;

input [3:0] data_in; input [2:0] disp_select;

input dp_s1hz,dp_s10hz,dp_s100hz; input [3:0] Q5,Q4,Q3,Q2,Q1,Q0; input counter_out; reg dp;

reg [6:0] data_out; reg hide; initial begin

dp <= 1'b0; hide <= 1'b0; end

- 26 -

卢思萌 信1411011001频率计设计 第 - 27 - 页 共 46 页

(dp_s10hz == 1'b1))||

((disp_select == 3'b101) && (dp_s1hz == 1'b1))) dp <= 1'b1; else

dp <= 1'b0; case(disp_select) 3'b000: begin

if((counter_out == 1'b0) && (Q5 == 4'b0))

hide <= 1'b1; else

hide <= 1'b0; end 3'b001: begin

if((counter_out == 1'b0) && (Q5 == 4'b0) && (Q4 == 4'b0) && (dp_s100hz != 1'b1)) hide <= 1'b1; else

hide <= 1'b0; end 3'b010: begin

if((counter_out ==

1'b0) && (Q5 == 4'b0) && (Q4 == 4'b0) && (Q3 == 4'b0) && (dp_s100hz != 1'b1))

hide <= 1'b1; else

hide <= 1'b0; end 3'b011: begin

if((counter_out ==

1'b0) && (Q5 == 4'b0) && (Q4 == 4'b0) && (Q3 == 4'b0) && (Q2 == 4'b0) && (dp_s100hz != 1'b1)&& (dp_s10hz != 1'b1))

hide <= 1'b1;

- 27 -

//译码显示数据

always @(data_in,hide,data_out) begin

if(hide == 1'b0) begin

case(data_in)

4'b0000 : data_out <= 7'b1111110; //0 4'b0001 : data_out <= 7'b0110000; //1 4'b0010 : data_out <= 7'b1101101; //2 4'b0011 : data_out <= 7'b1111001; //3 4'b0100 : data_out <= 7'b0110011; //4 4'b0101 : data_out <= 7'b1011011; //5 4'b0110 : data_out <= 7'b1011111; //6 4'b0111 : data_out <= 7'b1110000; //7 4'b1000 : data_out <= 7'b1111111; //8 4'b1001 : data_out <= 7'b1110011; //9 default : data_out <= 7'b0000000; endcase end end

//小数点位置与零数字的处理 always

@(disp_select,dp_s1hz,dp_s10hz,dp_s100hz,

Q5,Q4,Q3,Q2,Q1,counter_out,dp,hide) begin

if (((disp_select == 3'b001) && (dp_s100hz == 1'b1))||

((disp_select == 3'b011) &&

卢思萌 信1411011001频率计设计 第 - 28 - 页 共 46 页

else (dp_s100hz != 1'b1)&& hide <= 1'b0; (dp_s10hz != 1'b1)) end hide <= 1'b1; 3'b100: begin else if((counter_out == hide <= 1'b0; 1'b0) && (Q5 == 4'b0) && end (Q4 == 4'b0) && default: hide <= 1'b0; (Q3 == 4'b0) && endcase (Q2 == 4'b0) && end (Q1 == 4'b0) && endmodule

该模块定义输入端口如下: ● data_in:BCD码字输入信号

● disp_select:来自动态显示位模块,实现两者之间的同步

● dp_s1hz,dp_s10hz,dp_s100hz:输入小数点位置控制信号来自门控模块 ● Q5,Q4,Q3,Q2,Q1,Q0:计数器的计数值输入,用来控制“零”显示控制 ● counter_out:计数器计数溢出信号,用来提示用户更换更大量程 该模块定义输出端口如下:

● data_out:经过译码后的7段数码管显示数据输出,可以直接连接到数码管的数据端口

● dp:小数点控制信号

在Altera公司的软件工具QuartusII中编译和波形仿真得到波形如图4.8.2所示。

图4.8.2 BCD译码模块的仿真波形

- 28 -

卢思萌 信1411011001频率计设计 第 - 29 - 页 共 46 页

4.9 顶层电路top

在设计完各个模块后,需要将各个模块有机地组合成一个整体,最后来实现系统的功能。在数字频率计中,同时采用了电路原理图示的设计以及Verilog HDL语言来编写的顶层电路,其中顶层如图4.9.1所示。

图4.9.1 顶层电路top

用Verilog HDL语言描述如下: module main(

Clock, SW2, SW1, SW0, F_in, over_alarm, dp, disp_data, disp_select

);

input Clock; input SW2; input SW1; input SW0; input F_in; output over_alarm; output dp;

output [6:0] disp_data;

- 29 -

卢思萌 信1411011001频率计设计 第 - 30 - 页 共 46 页

output [5:0] disp_select;

wire SYNTHESIZED_WIRE_0; wire SYNTHESIZED_WIRE_1; wire SYNTHESIZED_WIRE_2; wire [3:0] SYNTHESIZED_WIRE_32;

wire [3:0] SYNTHESIZED_WIRE_33;

wire [3:0] SYNTHESIZED_WIRE_34;

wire [3:0] SYNTHESIZED_WIRE_35;

wire [3:0] SYNTHESIZED_WIRE_36;

wire [3:0] SYNTHESIZED_WIRE_37;

wire SYNTHESIZED_WIRE_9; wire SYNTHESIZED_WIRE_10; wire SYNTHESIZED_WIRE_11; wire SYNTHESIZED_WIRE_12; wire SYNTHESIZED_WIRE_13; wire SYNTHESIZED_WIRE_14; wire SYNTHESIZED_WIRE_15; wire [3:0] SYNTHESIZED_WIRE_16;

wire [2:0] SYNTHESIZED_WIRE_38;

wire SYNTHESIZED_WIRE_24;

wire [3:0] SYNTHESIZED_WIRE_25;

wire [3:0] SYNTHESIZED_WIRE_26;

wire [3:0] SYNTHESIZED_WIRE_27;

wire [3:0] SYNTHESIZED_WIRE_28;

wire [3:0] SYNTHESIZED_WIRE_29;

wire [3:0] SYNTHESIZED_WIRE_30;

assign over_alarm = SYNTHESIZED_WIRE_15;

counter

b2v_inst(.EN(SYNTHESIZED_WIRE

_0),

.CLR(SYNTHESIZED_WIRE_1),.F_IN(F_in),.F_OUT(SYNTHESIZED_WIRE_15),.Q0(SYNTHESIZED_WIRE_32),.Q1(SYNTHESIZED_WIRE_33),.Q2(SYNTHESIZED_WIRE_34),.Q3(SYNTHESIZED_WIRE_35),.Q4(SYNTHESIZED_WIRE_36),.Q5(SYNTHESIZED_WIRE_37)

fdiv b2v_inst1(.clk(Clock), .f1hz(SYNTHESIZED_WIRE_9),.f10hz(SYNTHESIZED_WIRE_10),.f100hz(SYNTHESIZED_WIRE_11),.f1khz(SYNTHESIZED_WIRE_24));

- 30 -


课程设计报告模板(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:传染病护理学复习题及答案11

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

马上注册会员

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