M
magma1981
Guest
Jeg gjorde en Programm om DDS
modulen dds7 (fc, PC, clk, rstn, sinout, out, cosout);
output [7:0] sinout, cosout;
output [9:0] out;
input [9:0] fc; / / fc er freq.kontrolleres ordet
input [7:0] PC; / / pc er fase kontrollert ordet
skriving clk, rstn;
reg [7:0] sinout, cosout;
reg [9:0] acc0, acc1, ACC2, acc5;
reg [7:0] acc3, acc4, acc6, acc7, temp, temp1;
reg [0:0] msb, smsb, spipe, spipe1;
reg [0:0] cmsb, csmsb, cpipe, cpipe1;
alltid @ (posedge clk)
begynne
if (! rstn)
begynne
acc0 <= 10'b0000000000;
acc1 <= 10'b0000000000;
ACC2 <= 10'b0000000000;
acc3 <= 8'b00000000;
acc6 <= 8'b00000000;
msb <= 1'b0;
smsb <= 1'b0;
cmsb <= 1'b0;
csmsb <= 1'b0;
spipe <= 1'b0;
cpipe <= 1'b0;
spipe1 <= 1'b0;
cpipe1 <= 1'b0;
slutt
ellers
begynne
acc0 <= acc1 fc;
acc1 <= acc0;
ACC2 <= acc1 PC;
acc5 <= ACC2 256;
acc6 <= acc5 [7:0];
acc3 <= ACC2 [7:0];
spipe <= ACC2 [9];
spipe1 <= spipe; / / avsluttet rørledning
msb <= spipe1;
smsb <= ACC2 [8];
cpipe <= acc5 [9];
cpipe1 <= cpipe;
cmsb <= cpipe1;
csmsb <= acc5 [8];
slutt
slutt
alltid @ (posedge clk)
begynne
if (smsb)
begynne
if ((ACC2 == 256) | | (ACC2 == 768))
begynne
acc4 <= ~ acc3;
slutt
ellers
begynne
acc4 <= ~ acc3 1;
slutt
slutt
ellers
begynne
acc4 <= acc3;
slutt
if (msb)
begynne
sinout <= ~ temp 1;
slutt
ellers
begynne
sinout <= temp;
slutt
if (csmsb)
begynne
if ((acc5 == 256) | | (acc5 == 768))
begynne
acc7 <= ~ acc6;
slutt
ellers
begynne
acc7 <= ~ acc6 1;
slutt
slutt
ellers
begynne
acc7 <= acc6;
slutt
if (cmsb)
begynne
cosout <= ~ temp1 1;
slutt
ellers
begynne
cosout <= temp1;
slutt
slutt
romsin sin (. adresse (acc4). inclock (clk). q (temp));
romsin cos (. adresse (acc7). inclock (clk). q (temp1));
endmodule
antall rom var 2 ^ 8, ca 1 / 4 sinus
sinus data ble fikk med matlab x = 0:2 * pi/1024: 2 * 255 * pi/1024;
y = round (sin (x) * 127)
når simulert i bølgeform, fant jeg ut at utganger av sinus og cos var ikke min trenger når ACC2 var lik 256 eller 768; når ACC2 er lik 256, utdataene for sinus var 127 og 0, men det jeg trenger bør
127127 ;
det vil si det er noe probloms med Programm, men jeg vet ikke hvordan man skal håndtere problemet
plz.hjelp meg, Takk
modulen dds7 (fc, PC, clk, rstn, sinout, out, cosout);
output [7:0] sinout, cosout;
output [9:0] out;
input [9:0] fc; / / fc er freq.kontrolleres ordet
input [7:0] PC; / / pc er fase kontrollert ordet
skriving clk, rstn;
reg [7:0] sinout, cosout;
reg [9:0] acc0, acc1, ACC2, acc5;
reg [7:0] acc3, acc4, acc6, acc7, temp, temp1;
reg [0:0] msb, smsb, spipe, spipe1;
reg [0:0] cmsb, csmsb, cpipe, cpipe1;
alltid @ (posedge clk)
begynne
if (! rstn)
begynne
acc0 <= 10'b0000000000;
acc1 <= 10'b0000000000;
ACC2 <= 10'b0000000000;
acc3 <= 8'b00000000;
acc6 <= 8'b00000000;
msb <= 1'b0;
smsb <= 1'b0;
cmsb <= 1'b0;
csmsb <= 1'b0;
spipe <= 1'b0;
cpipe <= 1'b0;
spipe1 <= 1'b0;
cpipe1 <= 1'b0;
slutt
ellers
begynne
acc0 <= acc1 fc;
acc1 <= acc0;
ACC2 <= acc1 PC;
acc5 <= ACC2 256;
acc6 <= acc5 [7:0];
acc3 <= ACC2 [7:0];
spipe <= ACC2 [9];
spipe1 <= spipe; / / avsluttet rørledning
msb <= spipe1;
smsb <= ACC2 [8];
cpipe <= acc5 [9];
cpipe1 <= cpipe;
cmsb <= cpipe1;
csmsb <= acc5 [8];
slutt
slutt
alltid @ (posedge clk)
begynne
if (smsb)
begynne
if ((ACC2 == 256) | | (ACC2 == 768))
begynne
acc4 <= ~ acc3;
slutt
ellers
begynne
acc4 <= ~ acc3 1;
slutt
slutt
ellers
begynne
acc4 <= acc3;
slutt
if (msb)
begynne
sinout <= ~ temp 1;
slutt
ellers
begynne
sinout <= temp;
slutt
if (csmsb)
begynne
if ((acc5 == 256) | | (acc5 == 768))
begynne
acc7 <= ~ acc6;
slutt
ellers
begynne
acc7 <= ~ acc6 1;
slutt
slutt
ellers
begynne
acc7 <= acc6;
slutt
if (cmsb)
begynne
cosout <= ~ temp1 1;
slutt
ellers
begynne
cosout <= temp1;
slutt
slutt
romsin sin (. adresse (acc4). inclock (clk). q (temp));
romsin cos (. adresse (acc7). inclock (clk). q (temp1));
endmodule
antall rom var 2 ^ 8, ca 1 / 4 sinus
sinus data ble fikk med matlab x = 0:2 * pi/1024: 2 * 255 * pi/1024;
y = round (sin (x) * 127)
når simulert i bølgeform, fant jeg ut at utganger av sinus og cos var ikke min trenger når ACC2 var lik 256 eller 768; når ACC2 er lik 256, utdataene for sinus var 127 og 0, men det jeg trenger bør
127127 ;
det vil si det er noe probloms med Programm, men jeg vet ikke hvordan man skal håndtere problemet
plz.hjelp meg, Takk