串并转换(可编程逻辑器件编程)

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

//实现串并转换和电机控制

module tiaoshi3(clk,kk,kz,dj
);
input clk;
input kk;
output[3:0] dj;
output[2:0] kz;
//reg k0;
reg[2:0] jc=0;
reg[2:0] cc=0;
reg[2:0] kz=3'b111;
reg[3:0] dj=4'b1111;
FP f0(clk,outclk);
always @(posedge outclk)
begin
if(cc<=2) cc=cc+1;
else cc=0;
case(cc)
2'b01:jc[0]=kk;
2'b10:jc[1]=kk;
2'b11:jc[2]=kk;
default:cc=0;
endcase
if(cc==3)
begin
kz=jc;
cc=0;
end
else kz=kz;
end
always @(posedge clk)
case(kz)
3'b001:dj=4'b1010;//前进
3'b010:dj=4'b0101;//后退
3'b011:dj=4'b0010;//左转
3'b100:dj=4'b1000;//右转
default:dj=4'b0000;//停止
endcase

endmodule




//实现分频50MHz-1Hz
module FP(clk,outclk);
input clk;
output outclk;
reg [31:0] cnt=0;
reg outclk=0;
always @(posedge clk)
begin
if(cnt<=24999999) cnt=cnt+1;
else
begin
outclk=~outclk;
cnt=0;
end
end
endmodule



NET "clk" LOC=B8;
NET "kk" LOC=P11;
NET "kz[2]" LOC=N5;
NET "kz[1]" LOC=N4;
NET "kz[0]" LOC=P4;
NET "dj[3]" LOC=M5;
NET "dj[2]" LOC=M11;
NET "dj[1]" LOC=P7;
NET "dj[0]" LOC=P6;

NET "clk" IOSTANDARD=LVCMOS33;
NET "kk" IOSTANDARD=LVCMOS33;
NET "kz[2]" IOSTANDARD=LVCMOS33;
NET "kz[1]" IOSTANDARD=LVCMOS33;
NET "kz[0]" IOSTANDARD=LVCMOS33;
NET "dj[3]" IOSTANDARD=LVCMOS33;
NET "dj[2]" IOSTANDARD=LVCMOS33;
NET "dj[1]" IOSTANDARD=LVCMOS33;
NET "dj[0]" IOSTANDARD=LVCMOS33;
NET "clk" SLEW=FAST;

相关文档
最新文档