⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csa6.v

📁 完整的jpeg encoder verilog code,DCT部分採用1991 IEEE transection paper,利用skew circular convolution來實現精簡電路
💻 V
字号:
`timescale 1ns/10ps     

`define width 15
module csa6(//input
             a1,a2,a3,a4,a5,a6,
             
            //output 
             sum);

input  [`width-4:0] a1,a2,a3,a4,a5,a6;
output [`width:0] sum;


wire [`width:0] cr_tmp;
wire [`width:0] sr_tmp;     
wire [`width:0] cl_tmp;
wire [`width:0] sl_tmp;             

wire [`width:0] a1m=(a1[`width-4]==1)? { {4{1'b1}},a1}:{4'b0,a1};
wire [`width:0] a2m=(a2[`width-4]==1)? { {4{1'b1}},a2}:{4'b0,a2};
wire [`width:0] a3m=(a3[`width-4]==1)? { {4{1'b1}},a3}:{4'b0,a3};
wire [`width:0] a4m=(a4[`width-4]==1)? { {4{1'b1}},a4}:{4'b0,a4};
wire [`width:0] a5m=(a5[`width-4]==1)? { {4{1'b1}},a5}:{4'b0,a5};
wire [`width:0] a6m=(a6[`width-4]==1)? { {4{1'b1}},a6}:{4'b0,a6};
 
assign sr_tmp= a1m ^ a2m ^ a3m;
assign cr_tmp= (a1m & a2m) | (a1m & a3m) | (a2m & a3m);
 

wire [`width:0] cr={cr_tmp,1'b0};
wire [`width:0] sr={1'b0,sr_tmp};
//for test purpose mark it after ok!
wire [`width:0] test0={cr_tmp,1'b0}+{1'b0,sr_tmp};

 
assign  sl_tmp= a4m ^ a5m ^ a6m;
assign  cl_tmp= (a4m & a5m) | (a4m & a6m) | (a5m & a6m) ;
  
 
wire [`width:0] cl={cl_tmp,1'b0};
wire [`width:0] sl={1'b0,sl_tmp};
wire [`width:0] test1=cl+sl;

wire [`width:0] c_tmp1;
wire [`width:0] s_tmp1;

assign  s_tmp1= sr ^ cr ^ sl;
assign  c_tmp1= (sr & cr) | (sr & sl) | (cr & sl);
     

wire [`width:0] c_tmp3={c_tmp1,1'b0};
wire [`width:0] s_tmp3={1'b0,s_tmp1};
wire  [`width:0]  c_tmp4;
wire  [`width:0]  s_tmp4;
 
assign  s_tmp4=cl ^ c_tmp3 ^ s_tmp3;
assign  c_tmp4=(cl & c_tmp3) | (cl & s_tmp3) | (c_tmp3 & s_tmp3);
 
wire [`width:0] c_tmp5={c_tmp4,1'b0};
wire [`width:0] s_tmp5={1'b0,s_tmp4};
wire [`width:0] sum=c_tmp5+s_tmp5;
 

endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -