2008年F题 简易多功能计数器 - 图文(7)

2018-12-29 19:24

real[1]='.'; j=2;

for(i=0;i<6;i++) {

real[j++]=sig_dig[i]; } }

else if(pos==-1) {

real[0]='0'; real[1]='.'; real[2]='0'; j=3;

for(i=0;i<6;i++) {

real[j++]=sig_dig[i]; } }

else if(pos==-2) {

real[0]='0'; real[1]='.'; real[2]='0'; real[4]='0'; j=3;

for(i=0;i<6;i++) {

real[j++]=sig_dig[i]; } } }

Verilog HDL部分源代码

/*====================================================== 文件名:spi_interface_out_final.v 功能:SPI通信接口

======================================================*/

module spi_interface_out_final(load,cs,sclk,mosi,miso,lat,

dat0,dat1,dat2,dat3,dat4,dat5,dat6,dat7,

dat8,dat9,dat10,dat11,dat12,dat13,dat14,dat15, dat16,dat17,dat18,dat19,dat20,dat21,dat22,dat23, dat24,dat25,dat26,dat27,dat28,dat29,dat30,dat31 );

input sclk,mosi,cs,load,lat; input [7:0] dat0; input [7:0] dat1; input [7:0] dat2; input [7:0] dat3; input [7:0] dat4; input [7:0] dat5; input [7:0] dat6; input [7:0] dat7; input [7:0] dat8; input [7:0] dat9; input [7:0] dat10; input [7:0] dat11; input [7:0] dat12; input [7:0] dat13; input [7:0] dat14; input [7:0] dat15; input [7:0] dat16; input [7:0] dat17; input [7:0] dat18; input [7:0] dat19; input [7:0] dat20; input [7:0] dat21; input [7:0] dat22; input [7:0] dat23; input [7:0] dat24; input [7:0] dat25; input [7:0] dat26; input [7:0] dat27; input [7:0] dat28; input [7:0] dat29; input [7:0] dat30; input [7:0] dat31; output miso;

reg [15:0] spi_reg; reg [1:0] sel; reg [7:0]

reg0,reg1,reg2,reg3,reg4,reg5,reg6,reg7,reg8,reg9,reg10,reg11,reg12,reg13,reg14,reg15; reg [7:0]

reg16,reg17,reg18,reg19,reg20,reg21,reg22,reg23,reg24,reg25,reg26,reg27,reg28,reg29,reg30,reg31; assign miso=spi_reg[15];

always @ (negedge lat) begin

reg0<=dat0; reg1<=dat1; reg2<=dat2; reg3<=dat3; reg4<=dat4; reg5<=dat5; reg6<=dat6; reg7<=dat7; reg8<=dat8; reg9<=dat9; reg10<=dat10; reg11<=dat11; reg12<=dat12; reg13<=dat13; reg14<=dat14; reg15<=dat15; reg16<=dat16; reg17<=dat17; reg18<=dat18; reg19<=dat19; reg20<=dat20; reg21<=dat21; reg22<=dat22; reg23<=dat23; reg24<=dat24; reg25<=dat25; reg26<=dat26; reg27<=dat27; reg28<=dat28; reg29<=dat29; reg30<=dat30; reg31<=dat31; end

always @ (negedge load or posedge sclk) begin

if(!load) begin

case(spi_reg[4:0])

0:spi_reg[15:8]<=reg0; 1:spi_reg[15:8]<=reg1; 2:spi_reg[15:8]<=reg2; 3:spi_reg[15:8]<=reg3; 4:spi_reg[15:8]<=reg4; 5:spi_reg[15:8]<=reg5; 6:spi_reg[15:8]<=reg6; 7:spi_reg[15:8]<=reg7; 8:spi_reg[15:8]<=reg8; 9:spi_reg[15:8]<=reg9; 10:spi_reg[15:8]<=reg10; 11:spi_reg[15:8]<=reg11; 12:spi_reg[15:8]<=reg12; 13:spi_reg[15:8]<=reg13; 14:spi_reg[15:8]<=reg14; 15:spi_reg[15:8]<=reg15; 16:spi_reg[15:8]<=reg16; 17:spi_reg[15:8]<=reg17; 18:spi_reg[15:8]<=reg18; 19:spi_reg[15:8]<=reg19; 20:spi_reg[15:8]<=reg20; 21:spi_reg[15:8]<=reg21; 22:spi_reg[15:8]<=reg22; 23:spi_reg[15:8]<=reg23; 24:spi_reg[15:8]<=reg24; 25:spi_reg[15:8]<=reg25; 26:spi_reg[15:8]<=reg26; 27:spi_reg[15:8]<=reg27; 28:spi_reg[15:8]<=reg28; 29:spi_reg[15:8]<=reg29; 30:spi_reg[15:8]<=reg30; 31:spi_reg[15:8]<=reg31;

default: spi_reg[15:8]<=reg0; endcase end

else if(cs==0) spi_reg<={spi_reg[14:0],mosi}; else spi_reg<=spi_reg; end

endmodule

/*====================================================== 文件名:control.v

功能:频率计的门控模块

======================================================*/ module control(clk_2hz,en,clr,lat); input clk_2hz;

output clr,en,lat;

reg [3:0] CS,NS; reg en,clr,lat;

parameter state1=4'b0001; parameter state2=4'b0010; parameter state3=4'b0100; parameter state4=4'b1000;

always @ (posedge clk_2hz) begin CS<=NS; end

always @ (CS) begin case(CS)

state1:NS=state2; state2:NS=state3; state3:NS=state4; state4:NS=state1; default:NS=state1; endcase end

always @ (CS) begin case(CS)

state1:{clr,en,lat}=3'b001; state2:{clr,en,lat}=3'b111; state3:{clr,en,lat}=3'b110; state4:{clr,en,lat}=3'b101; default:{clr,en,lat}=3'b001; endcase end


2008年F题 简易多功能计数器 - 图文(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:七年级数学

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

马上注册会员

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