资源描述:
《数字电压表的verilog程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、技术资料//*********************************************************//**TLC549控制程序//*********************************************************moduleTLC549(clk,reset,sdata,cs,adc_clk,data_out);inputclk,reset,sdata;outputcs,adc_clk;output[7:0]data_out;regcs;reg[7:0]data_out;reg[7:0]data_o
2、ut_r;reg[7:0]count_clk;regadc_clk_r;regclk_r;regmark;//标识八位数据regflag;//标识八位数据接收完reg[3:0]cnt;//标识八位数的个数parameters0=0,s1=1,s2=2;reg[2:0]c_st;reg[5:0]temp;//1.4us的计数assignadc_clk=adc_clk_r;//assignadc_clk_r=~clk_r;always@(posedgeclk)beginif(count_clk<119)count_clk=count_clk+1;elsebeg
3、incount_clk<=0;clk_r=~clk_r;endendalways@(posedgeclk)beginadc_clk_r=~clk_r;endalways@(posedgeclk_rornegedgereset)beginif(!reset)c_st<=s0;elsecase(c_st)s0:begincs<=1;mark<=0;if(temp==3)beginc_st<=s1;temp<=0;endelsebegintemp<=temp+1;c_st<=s0;end共享知识技术资料ends1:begincs<=0;mark<=1;c_st<
4、=s2;ends2:begincs<=0;mark<=1;if(flag==1)c_st<=s0;elsec_st<=s2;enddefault:c_st<=s0;endcaseendalways@(posedgeadc_clk_r)beginif(mark==1)beginif(flag==1)data_out<=data_out_r;elsebegindata_out_r<={data_out_r[6:0],sdata};endendendalways@(posedgeadc_clk_r)beginif(mark==1)beginif(cnt==8)b
5、egincnt<=0;flag<=1;endelsebegincnt<=cnt+1;flag<=0;endendendendmodule//*********************************************************//**10进制加法器//*********************************************************modulecnt10(V1,V2,q,c_in,c_out);input[3:0]V1,V2;inputc_in;output[3:0]q;outputc_out;r
6、eg[3:0]q;rega,b;regc_out;always@(V1,V2)共享知识技术资料beginif((V1[3:0]+V2[3:0]>9)
7、
8、((V1[3:0]>=8)&&(V2[3:0]>=8))
9、
10、((V1[3:0]>=9)&&(V2[3:0]>=7))
11、
12、((V1[3:0]>=7)&&(V2[3:0]>=9)))a=1;elsea=0;if(V1[3:0]+V2[3:0]==9)b=1;elseb=0;endalways@(V1,V2,c_in,a)beginif(a==1&&c_in==1&&b==0)q[3:0]<=V1[3:0]+V2
13、[3:0]+7;elseif(a==1&&c_in==0&&b==0)q[3:0]<=V1[3:0]+V2[3:0]+6;elseif(a==0&&c_in==1&&b==0)q[3:0]<=V1[3:0]+V2[3:0]+1;elseif(a==0&&c_in==1&&b==1)q[3:0]<=V1[3:0]+V2[3:0]+7;elseq[3:0]<=V1[3:0]+V2[3:0];endalways@(a,V1,V2,c_in)beginif(a==1
14、
15、(V1[3:0]+V2[3:0]==9&&c_in==1))c_out=1;elsec_out=
16、0;endendmodule//*****************