基于FPGA的DES加密系统设计与实现(7)

2019-04-21 17:44

图3-I l整体设计顶层框图

DES加密系统顶层设计模块的源代码:

module top( clk, TX_ reset, RX_reset, RXD, TXD, RX, RX_done, TX_ena,

DECRYPT, CLKLXENABLE,Display, Control);

input clk;

input TX_ reset: input RX_reset: //input DES_ reset; input RXD; input RX; input TX_ena; input DECRYPT;

output TXD: output RX_done;

output CLKLXENABLE; output [6:0] Display; output [3:0] Control; //output flag;

reg [6:0] Display; reg [3:0] Control;

reg [1:0] LED_ Flag; //reg flag;

wire [7:0] SENDDATA; wire [7:0] DOUT;

wire [] DATAREADY; wire [11:0] FRAME_COUNTER; wire [11:0] DISPLAY_COUNTER; wire E_DATA_RDY; wire [63:0] DATA_IN64; wire [63:0] DATA_OUT64; wire rstn; wire [7:0] DIN;

wire [11:0] TOTAL_FRAME; wire [8:0] RAM_ADDR;

wire [8:0] BLOCK_COUNTER; wire MODESEL;

wire DATA_IN64_EN; wire [63:0] TEST_OUT_REG; //wire DES_reset_buf;

assign E_DATA_ RDY=1' b 1;

assign DIN[7:0]= { DOUT[0],DOUT[1],DOUT[2],DOUT[3],DOUT[4],DOUT[5],DOUT[6],DOUT [ 7]};

assign RAMADDR=FRAME_COUNTER[11:3]; assign LED4=4' b0000;

//assign RAM_ADDR=FRAME_COUNTER[11:3]; assign MODESEL=1' b 1; assign

DISPLAY_COUNTER=RX?(FRAME_COUNTER+1):(FRAME_COUNTER-8); pram

Ipram(.clk(clk),.clk_slow(CLK16X),.data_in8(DIN),.data_in64(DATA_IN64),.modesel(MODESEL),.data_in8_ en(DATAREADY),.data_in64_ en(DATA_IN64_ EN),.addr_a(FRAME_COUNTER[11:3]),.addr_b(BLOCK_COUNTER),.ramsel(FRAME_COUNTER[2:0]),.data_ out8 (SENDDATA[7:0]),.data out64(DATA_OUT64));

//IBUF rstpad(.I(DES_ reset),.O(DES_reset_ buf)); uartnew

Iuartnew(.RX(RX),.senddata(SENDDATA),.sendenable(TX_ena),.dout(DOUT),.dataready(DATAREADY),.rxd(RXD),.txd(TXD),.stdclk(clk),.rst(RX_reset),.rst2(TX_reset),.frame_counter(FRAME_COUNTER[11:0]),.RX_done(RX_done),.test(CLKLXENABLE),.total_frame(TOTALFRAME),.clkl6x (CLK16X));

des

Ides(.reset(RX),.clk (clk),.data_ bus (DATA_OUT64),.TEST_OUT

(TEST_OUT_REG),.e_data_rdy(E_DATA_RDY),.key(DATA_OUT64),.decrypt(DECRYPT),.data out(DATA_IN64),.d_ data_ rdy(DATA_IN64_ EN),.block_ counter (BLOCK_ COUNTER),.total_block(TOTAI-FRAME[11:3]));

//always @(posedge clk) // begin

// if (DES_ reset_ buf) // flag<=0' b0; // else

// flag<=0' b 1; // end

/*********七段数码管显示***********/ /*********译码部分**************/

wire[6:0] DisplayAl,DisplayA2,DisplayBl,DisplayB2;

HEX2LED myHLAl(DISPLAY_COUNTER[3:0],DisplayAl); HEX2LED myHLA2(DISPLAY_COUNTER[7:4],DisplayA2); HEX2LED myHLBl(DISPLAY一OUNTER[11:8],DisplayBl); HEX2LED myHLB2(LED4,DisplayB2);

/*******为七段码显示生成一个快时钟********/

wire clk_ LED;

wire [25:0] time_ seed;

assign time_seed=26' d50000; //综合下载时 d=26' d25_ 000_ 000; assign rstn=RX_reset; //仿真时assign d=26' d00_ 005; Freq_Div myFreq_Div( .Clk_sys(clk), .Div(time_seed), .Reset (rstn),

.Clk_user(clk_ LED)

);

/********七段码输出控制状态机*************/ always@(posedge clk_LED or negedge rstn)

begin

if(!rstn) begin

Display<=0; Control<=0; LED_ Flag<=0;

end else

begin

if(LED_Flag===2' b00)

begin

Display<=DisplayAl: Control<=4' b0111; LED Flag<=2' b01; end

else if(LED_Flag==2' b01)

begin

Display<=DisplayA2; Control<=4' b1011; LEDes Flag<=2' b 10; end

else if(LED_Flag==2' b10)

begin

Display<=DisplayBl; Control<=4' b1101; LEDes Flag<=2' b 11; end

else if(LED_Flag====2' b 11)

begin

Display<=DisplayB2; Control<=4' b1110; LED_ Flag<=2' b00; end else

LED_Flag<=2' b00;

end end

endmodule

DES加密系统顶层设计中,des. v, pram. v, uartnew. v, HEX2LED. v为系统调用函数。

FrecLDiv. v, 3.2.4.2三大模块之间的连接

DES, BLOCKRAM, UART三个模块之间的连接关系如下图所示:

图3-12三大模块连接关系图

3.2.4.3用户约束文件

[定义用户约束文件top_constraints.ucf]

NET \NET \NET \NET \NET \NET \NET \

NET \

NET \ NET \NET \ NET \NET \”; NET \NET \NET \ NET \NET \NET \NET \NET \


基于FPGA的DES加密系统设计与实现(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018学年杭州中考科学模拟卷3 - 图文

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

马上注册会员

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