Radix4蝴蝶硬件描述语言(VHDL)的源代码
这个页面的VHDL源代码覆盖Radix4蝴蝶硬件描述语言(vhdl)代码。
硬件描述语言(VHDL)代码
图书馆IEEE;
使用IEEE.STD_LOGIC_1164.ALL;
使用IEEE.STD_LOGIC_ARITH.ALL;
使用IEEE.STD_LOGIC_SIGNED.ALL;
实体radix4_butterfly_r
端口(std_logic clk:;——处理时钟
重置:std_logic;——异步复位信号
ri0: std_logic_vector(15报纸0);——input1实部
ri1: std_logic_vector(15报纸0);——input2实部
ri2: std_logic_vector(15报纸0);——input3实部
ri3: std_logic_vector(15报纸0);——input4实部
ii0: std_logic_vector(15报纸0);——input1虚部
ii1: std_logic_vector(15报纸0);——input2虚部
ii2: std_logic_vector(15报纸0);——input3虚部
ii3: std_logic_vector(15报纸0);——input4虚部
co1: std_logic_vector(15报纸0);——因为angle1
二氧化碳:std_logic_vector(15报纸0);——因为angle2
二氧化碳:std_logic_vector(15报纸0);——因为angle3
si1: std_logic_vector(15报纸0);——angle1的罪
si2: std_logic_vector(15报纸0);——angle2的罪
si3: std_logic_vector(15报纸0);——angle3的罪
ro0: std_logic_vector(15报纸0);——真正的output1的一部分
ro1: std_logic_vector(15报纸0);——真正的output2的一部分
ro2: std_logic_vector(15报纸0);——真正的output3的一部分
ro3: std_logic_vector(15报纸0);——真正的output4的一部分
io0: std_logic_vector(15报纸0);——虚部output1
io1: std_logic_vector(15报纸0);——output2的虚部
io2: std_logic_vector(15报纸0);——output3的虚部
io3: std_logic_vector(15报纸0)——output4的虚部
);
radix4_butterfly_r结束;
架构radix4_butterfly_r的行为
————真正的信号
信号r1: std_logic_vector(15报纸0);
信号r2: std_logic_vector(15报纸0);
信号r3: std_logic_vector(15报纸0);
信号r4: std_logic_vector(15报纸0);
信号r5: std_logic_vector(15报纸0);
信号t1: std_logic_vector(15报纸0);
信号t3: std_logic_vector(15报纸0);
信号sig_ro2: std_logic_vector(31报纸0);
信号sig_ro1: std_logic_vector(31报纸0);
信号sig_ro3: std_logic_vector(31报纸0);
——图像放大信号
s1:信号std_logic_vector(15报纸0);
信号s2: std_logic_vector(15报纸0);
信号s3: std_logic_vector(15报纸0);
信号s4: std_logic_vector(15报纸0);
信号s5: std_logic_vector(15报纸0);
t2信号:std_logic_vector(15报纸0);
信号t4: std_logic_vector(15报纸0);
信号sig_io2: std_logic_vector(31报纸0);
信号sig_io1: std_logic_vector(31报纸0);
信号sig_io3: std_logic_vector(31报纸0);
信号co11 co21 co31: std_logic_vector(15报纸0);
信号si11 si21 si31: std_logic_vector(15报纸0);
信号co12 co22 co32: std_logic_vector(15报纸0);
信号si12 si22 si32: std_logic_vector(15报纸0);
信号mull_r3_co2: std_logic_vector(31报纸0);
信号mull_s3_si2: std_logic_vector(31报纸0);
信号mull_s3_co2: std_logic_vector(31报纸0);
信号mull_r3_si2: std_logic_vector(31报纸0);
信号mull_r4_co1: std_logic_vector(31报纸0);
信号mull_s4_si1: std_logic_vector(31报纸0);
信号mull_s4_co1: std_logic_vector(31报纸0);
信号mull_r4_si1: std_logic_vector(31报纸0);
信号mull_r5_co3: std_logic_vector(31报纸0);
信号mull_s5_si3: std_logic_vector(31报纸0);
信号mull_s5_co3: std_logic_vector(31报纸0);
信号mull_r5_si3: std_logic_vector(31报纸0);
信号ro01: std_logic_vector(15报纸0);
信号io01: std_logic_vector(15报纸0);
开始
过程(时钟、复位)
开始
如果重置= ' 1 '
r1 < =(别人= > ' 0 ');
r2 < =(别人= > ' 0 ');
t1 < =(别人= > ' 0 ');
s1 < =(别人= > ' 0 ');
s2 < =(别人= > ' 0 ');
t2 < =(别人= > ' 0 ');
t4 < =(别人= > ' 0 ');
t3 < =(别人= > ' 0 ');
elsif clk = ' 1 '然后clk 'event
r1 < = ri0 + ri2;
r2 < = ri0 -ri2;
t1 < = ri1 + ri3;
s1 < = ii0 + ii2;
s2 < = ii0 -ii2;
分离t2 < =故+ ii3;
分离t4 < =故-ii3;
t3 < = ri1 - ri3;
如果;
结束过程;
过程(时钟、复位)
开始
如果重置= ' 1 '
r3 < =(别人= > ' 0 ');
s3 < =(别人= > ' 0 ');
r4 < =(别人= > ' 0 ');
r5 < =(别人= > ' 0 ');
s4 < =(别人= > ' 0 ');
s5 < =(别人= > ' 0 ');
co11 < =(别人= > ' 0 ');
co21 < =(别人= > ' 0 ');
co31 < =(别人= > ' 0 ');
si11 < =(别人= > ' 0 ');
si21 < =(别人= > ' 0 ');
si31 < =(别人= > ' 0 ');
co12 < =(别人= > ' 0 ');
co22 < =(别人= > ' 0 ');
co32 < =(别人= > ' 0 ');
si12 < =(别人= > ' 0 ');
si22 < =(别人= > ' 0 ');
si32 < =(别人= > ' 0 ');
ro0 < =(别人= > ' 0 ');
io0 < =(别人= > ' 0 ');
mull_r3_co2 < =(别人= > ' 0 ');
mull_s3_si2 < =(别人= > ' 0 ');
mull_s3_co2 < =(别人= > ' 0 ');
mull_r3_si2 < =(别人= > ' 0 ');
mull_r4_co1 < =(别人= > ' 0 ');
mull_s4_si1 < =(别人= > ' 0 ');
mull_s4_co1 < =(别人= > ' 0 ');
mull_r4_si1 < =(别人= > ' 0 ');
mull_r5_co3 < =(别人= > ' 0 ');
mull_s5_si3 < =(别人= > ' 0 ');
mull_s5_co3 < =(别人= > ' 0 ');
mull_r5_si3 < =(别人= > ' 0 ');
ro01 < =(别人= > ' 0 ');
io01 < =(别人= > ' 0 ');
elsif rising_edge(时钟)
r3 < = r1分;
s3 < = s1 t2;
r4 < = r2 - t4;
r5 < = r2 + t4;
s4 < = s2 + t3;
s5 < = s2 - t3;
co11 < = co1;
co21 < =二氧化碳;
co31 < =二氧化碳;
si11 < = si1;
si21 < = si2;
si31 < = si3;
co12 < = co11;
co22 < = co21;
co32 < = co31;
si12 < = si11;
si22 < = si21;
si32 < = si31;
ro01 < = r1 + t1;
io01 < = s1 + t2;
ro0 < = ro01;
io0 < = io01;
mull_r3_co2 < = r3 * co22;
mull_s3_si2 < = s3 * si22;
mull_s3_co2 < = s3 * co22;
mull_r3_si2 < = r3 * si22;
mull_r4_co1 < = r4 * co12;
mull_s4_si1 < = s4 * si12;
mull_s4_co1 < = s4 * co12;
mull_r4_si1 < = r4 * si12;
mull_r5_co3 < = r5 * co32;
mull_s5_si3 < = s5 * si32;
mull_s5_co3 < = s5 * co32;
mull_r5_si3 < = r5 * si32;
如果;
结束过程;
ro2——真正的操作
sig_ro2 < = (mull_r3_co2) + (mull_s3_si2);
ro2 < = sig_ro2(23报纸8);
io2——图像放大操作
sig_io2 < = (mull_s3_co2)——(mull_r3_si2);
io2 < = sig_io2(23报纸8);
sig_ro1 < = (mull_r4_co1) + (mull_s4_si1);
ro1 < = sig_ro1(23报纸8);
io1——图像放大操作
sig_io1 < = (mull_s4_co1)——(mull_r4_si1);
io1 < = sig_io1(23报纸8);
ro3——真正的操作
sig_ro3 < = (mull_r5_co3) + (mull_s5_si3);
ro3 < = sig_ro3(23报纸8);
io3——图像放大操作
sig_io3 < = (mull_s5_co3)——(mull_r5_si3);
io3 < = sig_io3(23报纸8);
端行为;
使用IEEE.STD_LOGIC_1164.ALL;
使用IEEE.STD_LOGIC_ARITH.ALL;
使用IEEE.STD_LOGIC_SIGNED.ALL;
实体radix4_butterfly_r
端口(std_logic clk:;——处理时钟
重置:std_logic;——异步复位信号
ri0: std_logic_vector(15报纸0);——input1实部
ri1: std_logic_vector(15报纸0);——input2实部
ri2: std_logic_vector(15报纸0);——input3实部
ri3: std_logic_vector(15报纸0);——input4实部
ii0: std_logic_vector(15报纸0);——input1虚部
ii1: std_logic_vector(15报纸0);——input2虚部
ii2: std_logic_vector(15报纸0);——input3虚部
ii3: std_logic_vector(15报纸0);——input4虚部
co1: std_logic_vector(15报纸0);——因为angle1
二氧化碳:std_logic_vector(15报纸0);——因为angle2
二氧化碳:std_logic_vector(15报纸0);——因为angle3
si1: std_logic_vector(15报纸0);——angle1的罪
si2: std_logic_vector(15报纸0);——angle2的罪
si3: std_logic_vector(15报纸0);——angle3的罪
ro0: std_logic_vector(15报纸0);——真正的output1的一部分
ro1: std_logic_vector(15报纸0);——真正的output2的一部分
ro2: std_logic_vector(15报纸0);——真正的output3的一部分
ro3: std_logic_vector(15报纸0);——真正的output4的一部分
io0: std_logic_vector(15报纸0);——虚部output1
io1: std_logic_vector(15报纸0);——output2的虚部
io2: std_logic_vector(15报纸0);——output3的虚部
io3: std_logic_vector(15报纸0)——output4的虚部
);
radix4_butterfly_r结束;
架构radix4_butterfly_r的行为
————真正的信号
信号r1: std_logic_vector(15报纸0);
信号r2: std_logic_vector(15报纸0);
信号r3: std_logic_vector(15报纸0);
信号r4: std_logic_vector(15报纸0);
信号r5: std_logic_vector(15报纸0);
信号t1: std_logic_vector(15报纸0);
信号t3: std_logic_vector(15报纸0);
信号sig_ro2: std_logic_vector(31报纸0);
信号sig_ro1: std_logic_vector(31报纸0);
信号sig_ro3: std_logic_vector(31报纸0);
——图像放大信号
s1:信号std_logic_vector(15报纸0);
信号s2: std_logic_vector(15报纸0);
信号s3: std_logic_vector(15报纸0);
信号s4: std_logic_vector(15报纸0);
信号s5: std_logic_vector(15报纸0);
t2信号:std_logic_vector(15报纸0);
信号t4: std_logic_vector(15报纸0);
信号sig_io2: std_logic_vector(31报纸0);
信号sig_io1: std_logic_vector(31报纸0);
信号sig_io3: std_logic_vector(31报纸0);
信号co11 co21 co31: std_logic_vector(15报纸0);
信号si11 si21 si31: std_logic_vector(15报纸0);
信号co12 co22 co32: std_logic_vector(15报纸0);
信号si12 si22 si32: std_logic_vector(15报纸0);
信号mull_r3_co2: std_logic_vector(31报纸0);
信号mull_s3_si2: std_logic_vector(31报纸0);
信号mull_s3_co2: std_logic_vector(31报纸0);
信号mull_r3_si2: std_logic_vector(31报纸0);
信号mull_r4_co1: std_logic_vector(31报纸0);
信号mull_s4_si1: std_logic_vector(31报纸0);
信号mull_s4_co1: std_logic_vector(31报纸0);
信号mull_r4_si1: std_logic_vector(31报纸0);
信号mull_r5_co3: std_logic_vector(31报纸0);
信号mull_s5_si3: std_logic_vector(31报纸0);
信号mull_s5_co3: std_logic_vector(31报纸0);
信号mull_r5_si3: std_logic_vector(31报纸0);
信号ro01: std_logic_vector(15报纸0);
信号io01: std_logic_vector(15报纸0);
开始
过程(时钟、复位)
开始
如果重置= ' 1 '
r1 < =(别人= > ' 0 ');
r2 < =(别人= > ' 0 ');
t1 < =(别人= > ' 0 ');
s1 < =(别人= > ' 0 ');
s2 < =(别人= > ' 0 ');
t2 < =(别人= > ' 0 ');
t4 < =(别人= > ' 0 ');
t3 < =(别人= > ' 0 ');
elsif clk = ' 1 '然后clk 'event
r1 < = ri0 + ri2;
r2 < = ri0 -ri2;
t1 < = ri1 + ri3;
s1 < = ii0 + ii2;
s2 < = ii0 -ii2;
分离t2 < =故+ ii3;
分离t4 < =故-ii3;
t3 < = ri1 - ri3;
如果;
结束过程;
过程(时钟、复位)
开始
如果重置= ' 1 '
r3 < =(别人= > ' 0 ');
s3 < =(别人= > ' 0 ');
r4 < =(别人= > ' 0 ');
r5 < =(别人= > ' 0 ');
s4 < =(别人= > ' 0 ');
s5 < =(别人= > ' 0 ');
co11 < =(别人= > ' 0 ');
co21 < =(别人= > ' 0 ');
co31 < =(别人= > ' 0 ');
si11 < =(别人= > ' 0 ');
si21 < =(别人= > ' 0 ');
si31 < =(别人= > ' 0 ');
co12 < =(别人= > ' 0 ');
co22 < =(别人= > ' 0 ');
co32 < =(别人= > ' 0 ');
si12 < =(别人= > ' 0 ');
si22 < =(别人= > ' 0 ');
si32 < =(别人= > ' 0 ');
ro0 < =(别人= > ' 0 ');
io0 < =(别人= > ' 0 ');
mull_r3_co2 < =(别人= > ' 0 ');
mull_s3_si2 < =(别人= > ' 0 ');
mull_s3_co2 < =(别人= > ' 0 ');
mull_r3_si2 < =(别人= > ' 0 ');
mull_r4_co1 < =(别人= > ' 0 ');
mull_s4_si1 < =(别人= > ' 0 ');
mull_s4_co1 < =(别人= > ' 0 ');
mull_r4_si1 < =(别人= > ' 0 ');
mull_r5_co3 < =(别人= > ' 0 ');
mull_s5_si3 < =(别人= > ' 0 ');
mull_s5_co3 < =(别人= > ' 0 ');
mull_r5_si3 < =(别人= > ' 0 ');
ro01 < =(别人= > ' 0 ');
io01 < =(别人= > ' 0 ');
elsif rising_edge(时钟)
r3 < = r1分;
s3 < = s1 t2;
r4 < = r2 - t4;
r5 < = r2 + t4;
s4 < = s2 + t3;
s5 < = s2 - t3;
co11 < = co1;
co21 < =二氧化碳;
co31 < =二氧化碳;
si11 < = si1;
si21 < = si2;
si31 < = si3;
co12 < = co11;
co22 < = co21;
co32 < = co31;
si12 < = si11;
si22 < = si21;
si32 < = si31;
ro01 < = r1 + t1;
io01 < = s1 + t2;
ro0 < = ro01;
io0 < = io01;
mull_r3_co2 < = r3 * co22;
mull_s3_si2 < = s3 * si22;
mull_s3_co2 < = s3 * co22;
mull_r3_si2 < = r3 * si22;
mull_r4_co1 < = r4 * co12;
mull_s4_si1 < = s4 * si12;
mull_s4_co1 < = s4 * co12;
mull_r4_si1 < = r4 * si12;
mull_r5_co3 < = r5 * co32;
mull_s5_si3 < = s5 * si32;
mull_s5_co3 < = s5 * co32;
mull_r5_si3 < = r5 * si32;
如果;
结束过程;
ro2——真正的操作
sig_ro2 < = (mull_r3_co2) + (mull_s3_si2);
ro2 < = sig_ro2(23报纸8);
io2——图像放大操作
sig_io2 < = (mull_s3_co2)——(mull_r3_si2);
io2 < = sig_io2(23报纸8);
sig_ro1 < = (mull_r4_co1) + (mull_s4_si1);
ro1 < = sig_ro1(23报纸8);
io1——图像放大操作
sig_io1 < = (mull_s4_co1)——(mull_r4_si1);
io1 < = sig_io1(23报纸8);
ro3——真正的操作
sig_ro3 < = (mull_r5_co3) + (mull_s5_si3);
ro3 < = sig_ro3(23报纸8);
io3——图像放大操作
sig_io3 < = (mull_s5_co3)——(mull_r5_si3);
io3 < = sig_io3(23报纸8);
端行为;
硬件描述语言(VHDL)的有用链接代码
参考以及链接后左侧面板上提到的有用的VHDL代码。
D触发器
T触发器
阅读写内存
4 x1 MUX
4位二进制计数器
Radix4蝴蝶
16 qam调制
2位并行串行
射频和无线教程
无线局域网802.11交流802.11广告wimax无线个域网z - waveGSMLTEUMTS蓝牙超宽频物联网卫星天线雷达