mal

DSB Partners with SBDC to Support Small Business Loan Program

DSB has given the SBDC $675,423 in funding to provide Technical Assistance to small business owners for the State Small Business Credit Initiative (SSBCI). SSBCI is a federal program aimed at supporting both small and early-stage businesses who are having challenges obtaining a traditional bank loan, as well as those that are owned by socially and economically disadvantaged persons.




mal

DSB Highlights Activities for National Small Business Week/Month 2024

There are nearly 28-thousand small businesses in the State of Delaware. Each year, the month of May is set aside as a special time to celebrate small businesses, their courage, community efforts, and hard work. The Delaware Division of Small Business (DSB) is highlighting activities that do this taking place during National Small Business Month, and National Small Business Week (NSBW April 28 – May 4, 2024).




mal

AG Jennings Announces Formal Murder Charge in Killing of Cpl. Keith Heacook

Attorney General Kathy Jennings announced Tuesday that the Department of Justice has secured the indictment of Randon Wilkerson for the murder of Cpl. Keith Heacook of the Delmar Police Department. Wilkerson will face two counts of Murder First Degree, two counts of Possession of a Deadly Weapon During the Commission of a Felony, and 11 […]



  • Department of Justice
  • Department of Justice Press Releases
  • News

mal

Delaware Sees Increase in Potbellied Pigs Running At Large, Owners Reminded to Secure Animals

Delaware has been experiencing a significant increase in potbellied pigs running at large in residential and rural areas, including on state lands. Running at large, these pigs pose a nuisance to landowners, increase the threat of establishing feral pig populations, damage natural resources, and risk carrying endemic diseases that can spread to both people and animals.




mal

Delaware Potbellied Pig Owners Have 30 Days to Apply for an Invasive Animal Permit

On June 1, a new regulation was published in the Delaware Register of Regulations (Volume 26, Issue 12) listing potbellied pigs and feral swine of any kind as invasive. The Delaware Department of Agriculture (DDA) is providing a 30-day grace period for potbellied pig owners to apply for an Invasive Animal Permit. Owners have until August 12 to submit an application and comply with 3 DE Admin. Code 906 Possession, Sale, or Exhibition of Non-Native and Invasive Animal Species.




mal

Governor Carney Formally Extends Public Health Emergency

WILMINGTON, Del. – Governor John Carney on Friday formally extended the Public Health Emergency order another 30 days to allow the State of Delaware and medical providers to continue COVID-19 vaccination and testing programs, and issued the following statement:    “It’s important that we continue to stay one step ahead of COVID-19,” said Governor Carney. “Keep doing the things we […]



  • Division of Public Health
  • Governor John Carney
  • News
  • Office of the Governor
  • DE Division of Public Health
  • John Carney
  • public health emergency

mal

Delaware Animal Services Seeks Tips In Dog Abandonment Case Resulting In Death

***WARNING: GRAPHIC IMAGE BELOW. MAY TRIGGER.***       DOVER, DE (Aug. 5) – The Office of Animal Welfare’s (OAW) Delaware Animal Services (DAS) is seeking the public’s help with providing any information that may lead to identifying the person responsible for abandoning a dog that was found clinging to life earlier this week. The […]




mal

Governor Carney Formally Extends Public Health Emergency

WILMINGTON, Del. – Governor Carney on Friday formally extended the Public Health Emergency order another 30 days to allow the State of Delaware and medical providers to continue COVID-19 vaccination and testing programs, and issued the following statement:    “It’s important that we continue to stay one step ahead of COVID-19,” said Governor Carney. “Keep doing the things we know […]



  • Division of Public Health
  • Governor John Carney
  • News
  • Office of the Governor

mal

Governor Carney Formally Extends Public Health Emergency

WILMINGTON, Del. – Governor Carney on Thursday formally extended the Public Health Emergency order another 30 days to allow the State of Delaware and medical providers to continue COVID-19 vaccination and testing programs. Under Delaware law, Public Health Emergency declarations must be renewed every 30 days. Visit Governor Carney’s website to view the Public Health Emergency […]




mal

Governor Carney Formally Extends Public Health Emergency

WILMINGTON, Del. – Governor Carney on Thursday formally extended the Public Health Emergency order another 30 days to allow the State of Delaware and medical providers to continue COVID-19 vaccination and testing programs.   “It’s important that we keep doing the things we know that work,” said Governor Carney. “Stay home if you’re sick and get tested. Get vaccinated and […]




mal

Governor Carney Formally Extends Public Health Emergency

WILMINGTON, Del. – Governor Carney on Thursday formally extended the Public Health Emergency order another 30 days to allow the State of Delaware and medical providers to continue COVID-19 vaccination and testing programs.   “As we enter the holiday season, it’s important that we keep doing the things we know that work,” said Governor Carney. “Stay home if you’re sick. Get vaccinated […]




mal

Governor Carney Formally Extends Public Health Emergency

WILMINGTON, Del. – Governor Carney on Friday formally extended the Public Health Emergency order another 30 days to allow the State of Delaware and medical providers to continue COVID-19 vaccination and testing programs. “Let’s keep doing the things we know that work,” said Governor Carney. “Stay home if you’re sick. Get vaccinated and boosted when you’re eligible. And get your flu shot […]




mal

Delaware Office of Animal Welfare, Delaware State Police Rescue 14 Dogs; 5 Residents Face Felony Dog Fighting Charges

DOVER, DE (Jan. 11, 2023) –   The Delaware Division of Public Health’s (DPH) Office of Animal Welfare (OAW) and the Delaware State Police (DSP) responded to a complaint of suspicious activity at a Seaford residence over the weekend resulting in charges related to dog fighting and the rescue of 14 dogs. One dog died from the […]




mal

DPH’s Office of Animal Welfare Announces Sixth Arrest In Connection With January 8th Dog Fighting Bust; 4 Dogs Rescued

DOVER, DE (Jan. 20, 2023) –   The Delaware Division of Public Health’s (DPH) Office of Animal Welfare (OAW) announces the arrest of a sixth man involved in a Seaford dog fighting incident from January 8. OAW charged Laurel, DE, resident Ronnell Jacobs, age 45, with three felony counts related to dog fighting, and two misdemeanor counts […]




mal

Delaware Animal Services Seeks Tips Regarding Dog Found Dead in Canary Creek

LEWES, Del. (March 29, 2023) – The Delaware Division of Public Health Office of Animal Welfare’s Delaware Animal Services (DAS) is seeking the public’s help with providing any information that may lead to an arrest in an act of animal cruelty. On the afternoon of Friday, March 24, DAS was contacted by Lewes Police who […]



  • Delaware Health and Social Services
  • Division of Public Health
  • News
  • Delaware Animal Services
  • Dog

mal

DPH’s Office of Animal Welfare Announces 2 Arrests in Connection with Lewes Dog Cruelty Case; 14 More Dogs Rescued 

Delaware Animal Services (DAS), the enforcement unit within the Office of Animal Welfare, announces the arrest of a man and a woman involved in an animal cruelty case.  On Aug. 25, 2023, Delaware State Police (DSP) Troop 7 received a tip from a concerned citizen that Dillon Hensey, age 32, and his wife, Chelsie Puckett, age 33, were seen […]



  • Delaware Health and Social Services
  • Division of Public Health
  • animal cruelty
  • DE Division of Public Health
  • Delaware Department of Health and Social Services
  • Delaware Division of Public Health

mal

Delaware Office of Animal Welfare Rescues 76 Animals from Felton Home

Animal welfare officers rescued 76 animals from a mobile home in Felton after being found living in cramped, unsanitary conditions. The Office of Animal Welfare (OAW)’s Delaware Animal Services (DAS) received a call from Delaware State Police about a potential animal cruelty case. Animal welfare officers arrived at the home to investigate, discovering 66 small breed dogs, 9 cats and 1 bird living in inhumane conditions.



  • Delaware Health and Social Services
  • Division of Public Health
  • News

mal

Rep. Kimberly Williams and Sen. Jack Walsh Honor the Office of Animal Welfare with a Tribute for 10 Years of Service

On Tuesday, January 23, 2024, the Office of Animal Welfare (OAW) was recognized by the 152nd General Assembly, with House Concurrent Resolution 81 sponsored by Rep. Kimberly Williams, (D-19), and Sen. Jack Walsh, (D-9). November 2023 marked 10 years since the OAW was established under the Delaware Division of Public Health (DPH). The OAW is […]





mal

Office of the Marijuana Commissioner (OMC) is accepting public comment for Informal Regulation Review until March 29

The Delaware Marijuana Control Act, 4Del. C. Chapter 13 legalized the use of recreational marijuana for individuals 21 and older. The newly created OMC has the responsibility to adopt rules and regulations necessary for the implementation of this law.




mal

The Office of the Marijuana Commissioner (OMC) has released additional sections of the informal draft regulations.

The Office of the Marijuana Commissioner (OMC) has released additional sections of the informal draft regulations for review. The sections of draft regulations released today include the sections related to tracking, product health standards, packaging and labeling requirements, and advertising. The Informal Comment Period on the OMC website omc.delaware.gov will close on March 29, 2024. […]



  • Department of Safety and Homeland Security
  • Kent County
  • New Castle County
  • News
  • Sussex County
  • The Office of the Marijuana Commissioner
  • Delaware Department of Safety and Homeland Security
  • Marijuana
  • Office of the Marijuana Commissioner
  • Rules and Regulations

mal

The Office of the Marijuana Commissioner released additional sections of the informal draft regulations for review.

The Office of the Marijuana Commissioner (OMC) has released additional sections of the informal draft regulations for review. The sections of draft regulations released today include the sections related to testing, sampling, waste, disposal, appeals, variances, and fee schedules. The Informal Comment Period on the OMC website omc.delaware.gov will close on March 29, 2024. Once this informal […]



  • Department of Safety and Homeland Security
  • The Office of the Marijuana Commissioner
  • Cannabis
  • Legalization
  • Marijuana
  • Office of the Marijuana Commissioner
  • Rules and Regulations

mal

Delaware Small Business Summit to detail new opportunities

The State of Delaware prides itself on its business friendliness and willingness to provide opportunities and access to the small business sector.




mal

EDGE Competition Reaches Milestone – 100 Small Businesses Awarded Grants Since 2019

A State of Delaware program that helps small businesses start or grow during the first few years of operation hit a major milestone Thursday. The Delaware Division of Small Business announced the most recent grant awards for the Encouraging Development, Growth and Expansion (EDGE) competition on May 23rd in Dover. The awards given to 10 Delaware small businesses for the spring 2024 round, bring the total number of businesses awarded funds under the EDGE program to 100.




mal

DNREC Invites Youngsters to Enjoy ‘Small Fry Adventures’ at Aquatic Resources Education Center

DNREC encourages families with children 4 to 7 to enjoy exciting “Small Fry Adventures,” a free program about tidal salt marsh and the critters that live there, being held this summer at the Aquatic Resources Education Center near Smyrna.



  • Department of Natural Resources and Environmental Control
  • Division of Fish and Wildlife
  • News
  • Aquatic Resources Education Center
  • children
  • education
  • fish
  • outdoors and recreation
  • Small Fry Adventures

mal

DPH Cautions Public to Watch for Rabid Animals During Active Season

DOVER, DEL. (June 26, 2024) – With the weather warming up, the Delaware Division of Public Health (DPH) urges the public to take precautions to avoid exposure to rabies and to be on the lookout for rabid animals during this active season. Rabies is endemic in Delaware, meaning it occurs regularly within the state’s wildlife populations. […]



  • Delaware Health and Social Services
  • Division of Public Health
  • DE Division of Public Health
  • Delaware Department of Health and Social Services
  • Delaware Division of Public Health
  • Delaware rabies
  • DPH Rabies Program
  • rabies

mal

Bridgeville Couple Charged with Animal Cruelty

DOVER, DEL. (August 20, 2024) – The Division of Public Health (DPH) Office of Animal Welfare’s (OAW) Delaware Animal Services (DAS) announces the arrest of a man and woman after 20 dogs were rescued from a home in Bridgeville. Ray Anderson, age 42, and Melissa Layton, age 40, of Bridgeville were arraigned Aug. 15. DAS […]



  • Delaware Health and Social Services
  • Division of Public Health
  • animal cruelty
  • DE Division of Public Health
  • Delaware Animal Services
  • Delaware Division of Public Health
  • Office of Animal Welfare

mal

DOJ secures conviction in the killing of Cynthia Amalfitano 

A Wilmington man has been convicted in the 2023 murder of Cynthia Amalfitano. On November 1, 2024, Stephen Heck, 67, was convicted of Murder 1st Degree by a New Castle County Superior Court jury. The conviction follows an investigation into the disappearance and death of then 64-year-old Cynthia Amalfitano, Heck’s former partner, whose body was discovered in […]



  • Department of Justice Press Releases

mal

The New Normal of Fraud

When we think of something “new”, we tend to picture something clean, shiny, or efficient. The new normal of fraud only checks one of those boxes, and unfortunately, that’s “efficient.” Today, scams and cyber attacks are persistent, and part of a larger ecosystem of phishing and hacking attacks by both [...]

The post The New Normal of Fraud appeared first on Government Data Connection.




mal

All About Kamala Harris: Life, Family, Wealth And Her Impact On US Politics

Kamala Devi Harris was born on October 20, 1964, in Oakland, California, to immigrant parents.




mal

μWaveRiders: Thermal Analysis for RF Power Applications

Thermal analysis with the Cadence Celsius Thermal Solver integrated within the AWR Microwave Office circuit simulator gives designers an understanding of device operating temperatures related to power dissipation. That temperature information can be introduced into an electrothermal model to predict the impact on RF performance.(read more)




mal

Conformal LEC can't finish at analyze abort step. How do I proceed?

Hi Cadence & forumers, 

I am running a conformal LEC with a flattened netlist against RTL. 

The run hang for 5 days at the "analyze abort" step which is automatically launched by the compare. 

The netlist is flattened at some levels so hierarchical flow which I tried didn't help much. The flattened/highly optimized netlist is from customer and the ultimate goal. How shall I proceed now? 

On the a side note, a test run with a hierarchical netlist from a simple DC "compile -map_effort medium" command finished after 1 day or so. 

Thank you! 

// Command: vpx compare -verbose -ABORT_Print -NONEQ_Print -TIMEstamp
// Starting multithreaded comparison ...
Comparing 241112 points in parallel.

// Multithreading Overhead: 38% Gates: 8501606/6168138
// Multithreaded processing completed.
================================================================================
Compared points PO DFF DLAT BBOX CUT Total
--------------------------------------------------------------------------------
Equivalent 1025 241638 30 75 21 242789
--------------------------------------------------------------------------------
Abort 0 124 0 0 0 124
================================================================================
Compare results of instance/output/pin equivalences and/or sequential merge
================================================================================
Compared points DFF Total
--------------------------------------------------------------------------------
Equivalent 204 204
================================================================================
// Warning: 512 DFFs/DLATs have 1 disabled clock port: skipped data cone comparison
// Resolving aborts by analyze abort...




mal

Conformal CEC checking

Below is showing my Master.v

********************************************************************************************************************************************************************************************************************

///////ALU
module ALU (
    input [31:0] A,B,
    input[3:0] alu_control,
    output reg [31:0] alu_result,
    output reg zero_flag
);
    always @(*)
    begin
        // Operating based on control input
        case(alu_control)

        4'b0001: alu_result = A+B;
        4'b0010: alu_result = A-B;
        4'b0011: alu_result = A*B;
        4'b0100: alu_result = A|B;
        4'b0101: alu_result = A&B;
        4'b0110: alu_result = A^B;
        4'b0111: alu_result = ~B;
        4'b1000: alu_result = A<<B;
        4'b1001: alu_result = A>>B;
        4'b1010: begin
            if(A<B)
            alu_result = 1;
            else
            alu_result = 0;
        end
        default: alu_result = A+B;

        endcase

        // Setting Zero_flag if ALU_result is zero
        if (alu_result)
            zero_flag = 1'b1;
        else
            zero_flag = 1'b0;   
    end
endmodule


/////CONTROL UNIT
/*
Control unit controls takes opcode, funct7, funct3 of the instruction code to determine
and control regwrite in IFU, alu control in ALU to execute proper instruction
*/
/*
Control unit controls takes opcode, funct7, funct3 of the instruction code to determine
and control regwrite in IFU, alu control in ALU to execute proper instruction
*/
module CONTROL(
    input [4:0] opcode,
    output reg [3:0] alu_control,
    output reg regwrite_control,memread_control,memwrite_control
);
    always @(opcode)
    begin
       case(opcode)
        5'b00001: begin alu_control=4'b0001;  //add
        regwrite_control=1; memread_control=0; memwrite_control=0;
        end
        5'b00010: begin alu_control=4'b0010;  ///sub
        regwrite_control=1; memread_control=0; memwrite_control=0;
        end
        5'b00011: begin alu_control=4'b0011;  //mul
        regwrite_control=0; memread_control=0; memwrite_control=1;
        end
        5'b00100: begin alu_control=4'b0100;  ///OR
        regwrite_control=0; memread_control=0; memwrite_control=1;
        end
        5'b00101: begin alu_control=4'b0101;  ///AND
        regwrite_control=1; memread_control=0; memwrite_control=0;
        end
        5'b00110: begin alu_control=4'b0110;  ///XOR
        regwrite_control=0; memread_control=0; memwrite_control=1;
        end
        5'b00111: begin alu_control=4'b0111;  ///NOT
        regwrite_control=0; memread_control=0; memwrite_control=1;
        end
        5'b01000: begin alu_control=4'b1000;  //SL
        regwrite_control=1; memread_control=1; memwrite_control=0;
        end
        5'b11001: begin alu_control=4'b1001;  //SR
        regwrite_control=1; memread_control=1; memwrite_control=0;
        end
        5'b01010: begin alu_control=4'b1010;  //COMPARE
        regwrite_control=1; memread_control=1; memwrite_control=0;
        end
        //5'b11010: begin ALU_control=4'b0000;  //SW
        //regwrite_control=1; memread_control=0; memwrite_control=0;
        //end
        //5'b01010: begin ALU_control=4'bxxxx;  //LW
        //regwrite_control=0; memread_control=0; memwrite_control=1;
        //end
        default : begin alu_control = 4'b0001;
        regwrite_control=1; memread_control=0; memwrite_control=0;
        end
        endcase  
    end
endmodule



//////DATA MEMORY
module Data_Mem(
input clock, rd_mem_enable, wr_mem_enable,
input [11:0] address,
input [31:0] datawrite_to_mem,
output reg [31:0] dataread_from_mem );

reg [31:0] Data_Memory[8:0];

initial begin
    Data_Memory[0] = 32'hFFFFFFFF;
    Data_Memory[1] = 32'h00000001;
    Data_Memory[2] = 32'h00000005;
    Data_Memory[3] = 32'h00000003;
    Data_Memory[4] = 32'h00000004;
    Data_Memory[5] = 32'h00000000;
    Data_Memory[6] = 32'hFFFFFFFF;
    Data_Memory[7] = 32'h00000000;
    //Data_Memory[8] = 32'h00000008;
    //Data_Memory[9] = 32'h00000009;
    //Data_Memory[10] = 32'h0000000A;
    //Data_Memory[11] = 32'h0000000B;
    //Data_Memory[12] = 32'h0000000C;
    //Data_Memory[13] = 32'h0000000D;
    //Data_Memory[14] = 32'h0000000E;
    //Data_Memory[15] = 32'h0000000F;
    //Data_Memory[16] = 32'h00000010;
    //Data_Memory[17] = 32'h00000011;
    //Data_Memory[18] = 32'h00000012;
    //Data_Memory[19] = 32'h00000013;
    //Data_Memory[20] = 32'h00000014;
    //Data_Memory[21] = 32'h00000015;
    //Data_Memory[22] = 32'h00000016;
    //Data_Memory[23] = 32'h00000017;
    //Data_Memory[24] = 32'h00000018;
    //Data_Memory[25] = 32'h00000019;
    //Data_Memory[26] = 32'h0000001A;
    //Data_Memory[27] = 32'h0000001B;
    //Data_Memory[28] = 32'h0000001C;
    //Data_Memory[29] = 32'h0000001D;
    //Data_Memory[30] = 32'h0000001E;
    Data_Memory[31] = 32'h0000001F;
       
    end
    always@(posedge clock) begin
       if(wr_mem_enable) begin
            Data_Memory[address] <= datawrite_to_mem;
       end
       else if(rd_mem_enable) begin
               dataread_from_mem <= Data_Memory[address];
       end
       else begin
               dataread_from_mem <= 32'h00000000;
       end
    end
endmodule   



/////INST MEM
/*

*/
module INST_MEM(
    input [31:0] PC,
    input reset,
    output [31:0] Instruction_Code
);
    reg [7:0] Memory [43:0]; // Byte addressable memory with 32 locations

    
    assign Instruction_Code = {Memory[PC+3],Memory[PC+2],Memory[PC+1],Memory[PC]};

    
    
    initial begin
            // Setting 32-bit instruction: add t1, s0,s1 => 0x00940333
            Memory[3] = 8'b0000_0000;
            Memory[2] = 8'b0000_0001;
            Memory[1] = 8'b0111_1100;
            Memory[0] = 8'b0000_0001;
            // Setting 32-bit instruction: sub t2, s2, s3 => 0x413903b3
            Memory[7] = 8'b0000_0000;
            Memory[6] = 8'b0000_0110;
            Memory[5] = 8'b1000_1111;
            Memory[4] = 8'b1110_0010;
            // Setting 32-bit instruction: mul t0, s4, s5 => 0x035a02b3
            Memory[11] = 8'b0000_0000;
            Memory[10] = 8'b0000_0101;
            Memory[9] = 8'b0111_1100;
            Memory[8] = 8'b0000_0011;
            // Setting 32-bit instruction: or t3, s6, s7 => 0x017b4e33
            Memory[15] = 8'b1111_1111;
            Memory[14] = 8'b1111_0100;
            Memory[13] = 8'b1010_0000;
            Memory[12] = 8'b1010_0100;
            // Setting 32-bit instruction: and
            Memory[19] = 8'b0000_0000;
            Memory[18] = 8'b0010_1001;
            Memory[17] = 8'b0001_1101;
            Memory[16] = 8'b0010_0101;
            // Setting 32-bit instruction: xor
            Memory[23] = 8'b0000_0000;
            Memory[22] = 8'b0001_1000;
            Memory[21] = 8'b0000_1101;
            Memory[20] = 8'b0110_0110;
            // Setting 32-bit instruction: not
            Memory[27] = 8'b0000_0000;
            Memory[26] = 8'b0010_1001;
            Memory[25] = 8'b0011_1101;
            Memory[24] = 8'b1100_0111;
            // Setting 32-bit instruction: shift left
            Memory[31] = 8'b0000_0000;
            Memory[30] = 8'b0101_0111;
            Memory[29] = 8'b1100_0110;
            Memory[28] = 8'b0000_1000;
            // Setting 32-bit instruction: shift right
            Memory[35] = 8'b0000_0000;
            Memory[34] = 8'b0110_1010;
            Memory[33] = 8'b1101_0010;
            Memory[32] = 8'b0111_1001;
            /// Setting 32-bit instruction: Campare
            Memory[39] = 8'b0000_0000;
            Memory[38] = 8'b0111_1010;
            Memory[37] = 8'b1101_0010;
            Memory[36] = 8'b0110_1010;
            /// Setting 32-bit instruction:
            Memory[43] = 8'b0000_0000;
            Memory[42] = 8'b0111_0111;
            Memory[41] = 8'b1101_0010;
            Memory[40] = 8'b0111_0010;
        end
   

endmodule

//IFU
/*
The instruction fetch unit has clock and reset pins as input and 32-bit instruction code as output.
Internally the block has Instruction Memory, Program Counter(P.C) and an adder to increment counter by 4,
on every positive clock edge.
*/
module IFU(
    input clock,reset,
    output [31:0] Instruction_Code
);
reg [31:0] PC = 32'b0;  // 32-bit program counter is initialized to zero

    
    always @(posedge clock, posedge reset)
    begin
        if(reset == 1)  //If reset is one, clear the program counter
        PC <= 0;
        else
        PC <= PC+4;   // Increment program counter on positive clock edge
    end
    // Initializing the instruction memory block
    INST_MEM instr_mem(.PC(PC),.reset(reset),.Instruction_Code(Instruction_Code));

endmodule


///MUX

module Mux_2X1 (
    input mem_rd_select, // rd_mem_enable
    input wire [31:0] dataread_from_mem, regdata2,

    output reg [31:0] mux_out
);

always @(mem_rd_select or dataread_from_mem or regdata2) begin
    if (mem_rd_select == 1)
        mux_out <= dataread_from_mem ;
    else
        mux_out <= regdata2;
    end
endmodule

//DFlipFlop
module DFlipFlop(D,clock,Q);
input D; // Data input
input clock; // clock input
output reg Q; // output Q
always @(posedge clock)
begin
 Q <= D;
end
endmodule

///DATA path


module DATAPATH(
    input [4:0]Read_reg_add1,
    input [4:0]Read_reg_add2,
    input [4:0]Reg_write_add,
    input [3:0]Alu_control,
    input [11:0]Address,
    input Wr_reg_enable,Wr_mem_enable,Rd_mem_enable,
    input clock,
    input reset,
    output OUTPUT
    );

    // Declaring internal wires that carry data
    wire zero_flag;
    wire [31:0]Dataread_from_mem;
    wire [31:0]read_data1;
    wire [31:0]read_data2;
    wire [31:0]Mux_out;
    wire [31:0]Alu_result;
    //wire [31:0]datawrite_to_reg;

    // Instantiating the register file
    REG_FILE reg_file_module(.reg_read_add1(Read_reg_add1),.reg_read_add2(Read_reg_add2),.reg_write_add(Reg_write_add),.datawrite_to_reg(Alu_result),.read_data1(read_data1),.read_data2(read_data2),.wr_reg_enable(Wr_reg_enable),.clock(clock),.reset(reset));

    // Instanting ALU
    ALU alu_module(.A(read_data1), .B(Mux_out), .alu_control(Alu_control), .alu_result(Alu_result), .zero_flag(zero_flag));
    
    //Mux
    Mux_2X1 mux(.mem_rd_select(Rd_mem_enable),.dataread_from_mem(Dataread_from_mem),.regdata2(read_data2),.mux_out(Mux_out));

    //Data Memory
    Data_Mem DM(.clock(clock),.rd_mem_enable(Rd_mem_enable),.wr_mem_enable(Wr_mem_enable),.address(Address),.datawrite_to_mem(Alu_result),.dataread_from_mem(Dataread_from_mem));
    
    // Dflipflop
    DFlipFlop DF (.D(zero_flag), .Q(OUTPUT),.clock(clock));
endmodule


/*
A register file can read two registers and write in to one register.
The RISC V register file contains total of 32 registers each of size 32-bit.
Hence 5-bits are used to specify the register numbers that are to be read or written.
*/

/*
Register Read: Register file always outputs the contents of the register corresponding to read register numbers specified.
Reading a register is not dependent on any other signals.

Register Write: Register writes are controlled by a control signal RegWrite.  
Additionally the register file has a clock signal.
The write should happen if RegWrite signal is made 1 and if there is positive edge of clock.
*/
module REG_FILE(
    input [4:0] reg_read_add1,
    input [4:0] reg_read_add2,
    input [4:0] reg_write_add,
    input [31:0] datawrite_to_reg,
    output [31:0] read_data1,
    output [31:0] read_data2,
    input wr_reg_enable,
    input clock,
    input reset
);

    reg [31:0] reg_memory [31:0]; // 32 memory locations each 32 bits wide
    
    initial begin
        reg_memory[0] = 32'h00000000;
        reg_memory[1] = 32'hFFFFFFFF;
        reg_memory[2] = 32'h00000002;
        reg_memory[3] = 32'hFFFFFFFF;
        reg_memory[4] = 32'h00000004;
        reg_memory[5] = 32'h01010101;
        reg_memory[6] = 32'h00000006;
        reg_memory[7] = 32'h00000000;
        reg_memory[8] = 32'h10101010;
        reg_memory[9] = 32'h00000009;
        reg_memory[10] = 32'h0000000A;
        reg_memory[11] = 32'h0000000B;
        reg_memory[12] = 32'h0000000C;
        reg_memory[13] = 32'h0000000D;
        reg_memory[14] = 32'h0000000E;
        reg_memory[15] = 32'h0000000F;
        reg_memory[16] = 32'h00000010;
        reg_memory[17] = 32'h00000011;
        reg_memory[18] = 32'h00000012;
        reg_memory[19] = 32'h00000013;
        reg_memory[20] = 32'h00000014;
        reg_memory[21] = 32'h00000015;
        //reg_memory[22] = 32'h00000016;
        //reg_memory[23] = 32'h00000017;
        //reg_memory[24] = 32'h00000018;
        //reg_memory[25] = 32'h00000019;
        //reg_memory[26] = 32'h0000001A;
        //reg_memory[27] = 32'h0000001B;
        //reg_memory[28] = 32'h0000001C;
        //reg_memory[29] = 32'h0000001D;
        //reg_memory[30] = 32'h0000001E;
        reg_memory[31] = 32'hFFFFFFFF;
    end

    // The register file will always output the vaules corresponding to read register numbers
    // It is independent of any other signal
    assign read_data1 = reg_memory[reg_read_add1];
    assign read_data2 = reg_memory[reg_read_add2];

    // If clock edge is positive and regwrite is 1, we write data to specified register
    always @(posedge clock)
    begin
        if (wr_reg_enable) begin
            reg_memory[reg_write_add] = datawrite_to_reg;
        end     
    else
        reg_memory[reg_write_add] = 32'h00000000;
    end
endmodule


/////PROCESSOR


module PROCESSOR(
    input clock,
    input reset,
    output Output
);

    wire [31:0] instruction_Code;
    wire [3:0] ALu_control;
    wire WR_reg_enable;
    wire WR_mem_enable;
    wire RD_mem_enable;


    IFU IFU_module(.clock(clock), .reset(reset), .Instruction_Code(instruction_Code));
    
    CONTROL control_module(.opcode(instruction_Code[4:0]),.alu_control(ALu_control),.regwrite_control(WR_reg_enable),.memread_control(RD_mem_enable),.memwrite_control(WR_mem_enable));
    
    DATAPATH datapath_module(.Wr_mem_enable(WR_mem_enable),.Rd_mem_enable(RD_mem_enable),.Read_reg_add1(instruction_Code[9:5]),.Read_reg_add2(instruction_Code[14:10]),.Reg_write_add(instruction_Code[19:15]),.Address(instruction_Code[31:20]),.Alu_control(ALu_control),.Wr_reg_enable(WR_reg_enable), .clock(clock), .reset(reset), .OUTPUT(Output));

endmodule

**********************************************************************************************************************************************************

Below is my Synthesis.tcl file for genus synthesis

********************

set_attribute lib_search_path "/home/sameer23185/Desktop/VDF_PROJECT/lib"
set_attribute hdl_search_path "/home/sameer23185/Desktop/VDF_PROJECT"
set_attribute library "/home/sameer23185/Desktop/VDF_PROJECT/lib/90/fast.lib"
read_hdl Master.v
elaborate
read_sdc Min_area.sdc
set_attribute hdl_preserve_unused_register true
set_attribute delete_unloaded_seqs false
set_attribute optimize_constant_0_flops false
set_attribute optimize_constant_1_flops false
set_attribute optimize_constant_latches false
set_attribute optimize_constant_feedback_seqs false
#set_attribute prune_unsued_logic false
synthesize -to_mapped -effort medium
write_hdl > report/HDL_min_Netlist.v
write_sdc > report/constraints.sdc
write_script > report/synthesis.g
report_timing > report/synthesis_timing_report.rep
report_power > report/synthesis_power_report.rep
report_gates > report/synthesis_cell_report.rep
report_area > report/synthesis_area_report.rep
gui_show

**********************************************

WHEN I COMPARING MY GOLDEN.V WITH HDL_min_Netlist.v  during   conformal , I got  these  non-equivalent   point   for   every reg memory and for every data memory. I don't know what to do with these non-equivalent point. I've been stuck here for the past four days. Please help me in this and how can I remove this non- equivalent point , since I am new to this I really don't know what to do.




mal

how to tell conformal to ignore certain combination of input

hi

How can I tell the LEC tool to ignore a combination of Primary input bus in both Golden and revised.

For example in both Golden and revised there is 

input [3:0] data_in

I want LEC not to check the case that data_in[3:0] == 4'b1000




mal

Modern Thermal Analysis Overcomes Complex Design Issues

Melika Roshandell, Cadence product marketing director for the Celsius Thermal Solver, recently published an article in Designing Electronics discussing how the use of modern thermal analysis techniques can help engineers meet the challenges of today’s complex electronic designs, which require ever more functionality and performance to meet consumer demand.

Today’s modern electronic designs require ever more functionality and performance to meet consumer demand. These requirements make scaling traditional, flat, 2D-ICs very challenging. With the recent introduction of 3D-ICs into the electronic design industry, IC vendors need to optimize the performance and cost of their devices while also taking advantage of the ability to combine heterogeneous technologies and nodes into a single package. While this greatly advances IC technology, 3D-IC design brings about its own unique challenges and complexities, a major one of which is thermal management.

To overcome thermal management issues, a thermal solution that can handle the complexity of the entire design efficiently and without any simplification is necessary. However, because of the nature of 3D-ICs, the typical point tool approach that dissects the design space into subsections cannot adequately address this need. This approach also creates a longer turnaround time, which can impact critical decision-making to optimize design performance. A more effective solution is to utilize a solver that not only can import the entire package, PCB, and chiplets but also offers high performance to run the entire analysis in a timely manner.

Celsius Thermal Management Solutions

Cadence offers the Celsius Thermal Solver, a unique technology integrated with both IC and package design tools such as the Cadence Innovus Implementation System, Allegro PCB Designer, and Voltus IC Power Integrity Solution. The Celsius Thermal Solver is the first complete electrothermal co-simulation solution for the full hierarchy of electronic systems from ICs to physical enclosures. Based on a production-proven, massively parallel architecture, the Celsius Thermal Solver also provides end-to-end capabilities for both in-design and signoff methodologies and delivers up to 10X faster performance than legacy solutions without sacrificing accuracy.

By combining finite element analysis (FEA) for solid structures with computational fluid dynamics (CFD) for fluids (both liquid and gas, as well as airflow), designers can perform complete system analysis in a single tool. For PCB and IC packaging, engineering teams can combine electrical and thermal analysis and simulate the flow of both current and heat for a more accurate system-level thermal simulation than can be achieved using legacy tools. In addition, both static (steady-state) and dynamic (transient) electrical-thermal co-simulations can be performed based on the actual flow of electrical power in advanced 3D structures, providing visibility into real-world system behavior.

Designers are already co-simulating the Celsius Thermal Solver with Celsius EC Solver (formerly Future Facilities’ 6SigmaET electronics thermal simulation software), which provides state-of-the-art intelligence, automation, and accuracy. The combined workflow that ties Celsius FEA thermal analysis with Celsius EC Solver CFD results in even higher-accuracy models of electronics equipment, allowing engineers to test their designs through thermal simulations and mitigate thermal design risks.

Conclusion

As systems become more densely populated with heat-dissipating electronics, the operating temperatures of those devices impact reliability (device lifetime) and performance. Thermal analysis gives designers an understanding of device operating temperatures related to power dissipation, and that temperature information can be introduced into an electrothermal model to predict the impact on device performance. The robust capabilities in modern thermal management software enable new system analyses and design insights. This empowers electrical design teams to detect and mitigate thermal issues early in the design process—reducing electronic system development iterations and costs and shortening time to market.

To learn more about Cadence thermal analysis products, visit the Celsius Thermal Solver product page and download the Cadence Multiphysics Systems Analysis Product Portfolio.




mal

Jasper Formal Fundamentals 2403 Course for Starting Formal Verification

The course "Jasper Formal Fundamentals v24.03" introduces formal analysis to those who want to use formal analysis for design or verification. 

To optimally benefit from this course, you must already have sufficient knowledge of the System Verilog assertions to be capable of writing properties for formal verification. Hence, this training provides a module on formal analysis to help cover this essential background. 

In this course, you will learn how to code efficient SVA Properties for formal analysis, understand formal complexity and how to overcome it, and learn the basics of formal coverage.

After completing this course, you will be able to:

  • Define reusable, functionally correct SVA properties that are efficient for formal tools. These shall use abstract auxiliary code to simplify descriptions, make code maintenance easier, reduce debug time, and reduce tool-proof runtime.
  • Set up, run, and analyze results from formal analysis.
  • Identify designs upon which formal is likely to be successful while understanding formal complexity issues and how to identify and overcome them.
  • Use a systematic property development process to approach a completely new verification problem.
  • Understand the basics of formal coverage.

 The most recently updated release includes new modules on:

  • "Basic complexity handling" which discusses the complexity in formal and how to identify and handle them.
  • "Complexity reduction methods” which discusses the complexity reduction methods and which is suitable for which type of complexity problem.
  • “Coverage in formal” which discusses the basics of coverage in formal verification and how coverage can be used in formal.   

Take this course to learn the basics of formal verification. 

What's Next? 

You can check out the complete training: Jasper Formal Fundamentals. There is a free online version of the training available 24/7 for all customers with a Cadence Learning and Support Portal account. If you are interested in an instructor-led version of the training, please contact Cadence Training. And don't forget to obtain your digital badge after completing the training!

You can also check Jasper University page for more materials on formal analysis and Jasper apps. 

Related Trainings 

Jasper Formal Expert Training Course | Cadence

Verilog Language and Application Training Course | Cadence

SystemVerilog for Design and Verification Training Course | Cadence

SystemVerilog Assertions Training Course | Cadence

Related Training Bytes 

Jasper Formal Property Verification (FPV) App: Basic Usage Demo (Video)

Jasper Formal Methodology playlist

Related Training Blogs

It’s the Digital Era; Why Not Showcase Your Brand Through a Digital Badge!

Training Insights: Introducing the C++ Course for All Your C++ Learning Needs!

Training Insights: Reaching Your Verification Closure Using Verisium Manager

Training Insights - Free Online Courses on Cadence Learning and Support Portal




mal

Formal Verification Approach for I2C Slave

Hello,

I am new in formal verification and I have a concept question about how to verify an I2C Slave block.

I think the response should be valid for any serial interface which needs to receive information for several clocks before making an action.

The the protocol description is the following: 

I have a serial clock (SCL), Serial Data Input (SDI) and Serial Data Output (SDO), all are ports of the I2C Slave block.

The protocol looks like this:

The first byte which is received by the slave consists in 7bits of sensor address and the 8th bit is the command 0/1 Write/Read.

After the first 8 bits, the slave sends an ACK (SDO = 1 for 1 clock) if the sensor address is correct.

Lets consider only this case, where I want to verify that the slave responds with an ACK if the sensor address is correct.

The only solution I found so far was to use the internal buffer from the block which saves the received bits during 8 clocks. The signal is called shift_s.

I also needed to use internal chip state (state_s) and an internal counter (shift_count_s).

Instead of doing an direct check of the SDO(sdo_o) depending on SDI (sdi_d_i), I used the internal shift_s register.

My question is if my approach is the correct one or there is a possibility to write the verification at a blackbox level.

Below you have the 2 properties: first checks connection from SDI to internal buffer, the second checks the connection between internal buffer and output.

property prop_i2c_sdi_store;
  @(posedge sclk_n_i)
  $past(i2c_bl.state_s == `STATE_RECEIVE_I2C_ADDR)
    |-> i2c_bl.shift_s == byte'({ $past(i2c_bl.shift_s), $past(sdi_d_i)});
endproperty
APF_I2C_CHECK_SDI_STORE: assert property(prop_i2c_sdi_store);

property prop_i2c_sensor_addr(sens_addr_sel, sens_addr);
@(posedge sclk_n_i) (i2c_bl.state_s == `STATE_RECEIVE_I2C_ADDR) && (i2c_addr_i == sens_addr_sel) && (i2c_bl.shift_count_s == 7)
  ##1 (i2c_bl.shift_s inside {sens_addr, sens_addr+1}) |-> sdo_o;
endproperty
APF_I2C_CHECK_SENSOR_ADDR0: assert property(prop_i2c_sensor_addr(0, `I2C_SENSOR_ADDRESS_A0));
APF_I2C_CHECK_SENSOR_ADDR1: assert property(prop_i2c_sensor_addr(1, `I2C_SENSOR_ADDRESS_A1));
APF_I2C_CHECK_SENSOR_ADDR2: assert property(prop_i2c_sensor_addr(2, `I2C_SENSOR_ADDRESS_A2));
APF_I2C_CHECK_SENSOR_ADDR3: assert property(prop_i2c_sensor_addr(3, `I2C_SENSOR_ADDRESS_A3));

PS: i2c_addr_i is address selection for the slave (there are 4 configurable sensor addresses, but this is not important for the case).

Thank you!




mal

Issue With Loudness Normalization

Hello everyone. In recent days, I'm having a weird problem with sound output on my Windows 10 PC. In fact, I can't control the loudness of it. So is there any possibility of PCB of sound card being damaged?




mal

Transient Simulation waveform abnormal

Hello Everybody

Recently, I want to design a high output Power Amplifier at 2.4GHz using TSMC 1P6M CMOS Bulk Process. I use its nmos_rf_25_6t transistor model to determine the approximate mosfet size

I use the most common Common-Source Differential Amplifier topology with neutralizing capacitor to improve its stability and power gain performance

Because I want to output large power, the size of mosfet is very large, the gate width is about 2mm, when I perform harmonic balance analysis, everything is alright, the OP1dB is about 28dBm (0.63Watt)

But When I perform Transient simulation, the magnitude of voltage and current waveform at the saturation point is too small, for voltgae, Vpeaking is about 50mV, for current, Ipeaking is about 5mA

I assume some reasons: the bsim4 model is not complete/ the virtuoso version is wrong (My virtuoso version is IC6.1.7-64b.500.21)/the spectre version is wrong (spectre version is 15.1.0 32bit)/the MMSIM version is wrong/Transient Simulation setting is wrong (the algorithm is select gear2only, but when I select other, like: trap, the results have no difference), the maxstep I set 5ps, minstep I set 2ps to improve simulation speed, I think this step is much smaller than the fundamental period (1/2.4e9≈416ps)

I have no idea how to solve this problem, please help me! Thank you very very much!




mal

Using "add net constraints" command in Conformal

Hi

I have tried using "add net constraints" command to place one-cold constraints on a tristate enable bus. In the command line we need to specify the "net pathname" on which the constraints are to be enforced.

The bus here is 20-bit. How should the net pathname be specified to make this 20-bit bus signals one_hot or one_cold.

The bus was declared as follows:
ten_bus [19:0]

The command I used was

add net constraints one_hot /ren_bus[19]

What would the above command mean?
Should we not specify all the nets' pathnames on the bus?
Is it sufficient to specify the pathname of one net on the bus?
I could not get much info regarding the functionality of this command. I would be obliged if anyone can throw some light.

Thanks
Prasad.


Originally posted in cdnusers.org by anssprasad




mal

Overcoming Thermal Challenges in Modern Electronic Design

Melika Roshandell talks with David Malinak in a Microwaves & RF QuickChat video about the thermal challenges in today’s complex electronic designs and how the Celsius solver uniquely addresses them.(read more)




mal

Quickchat Video Interview: Introducing Cadence Optimality and OnCloud for Systems Analysis and Signoff

Microwaves & RF's David Maliniak interviews Sherry Hess of Cadence about recently announced products of Optimality and OnCloud.(read more)




mal

Modern Thermal Analysis Overcomes Complex Electronic Design Issues

By combining finite element analysis with computational fluid dynamics, designers can perform complete thermal system analysis using a single tool.(read more)




mal

Transient Simulation waveform abnormal

Hello Everybody

Recently, I want to design a high output Power Amplifier at 2.4GHz using TSMC 1P6M CMOS Bulk Process. I use its nmos_rf_25_6t transistor model to determine the approximate mosfet size

I use the most common Common-Source Differential Amplifier topology with neutralizing capacitor to improve its stability and power gain performance

Because I want to output large power, the size of mosfet is very large, the gate width is about 2mm, when I perform harmonic balance analysis, everything is alright, the OP1dB is about 28dBm (0.63Watt)

But When I perform Transient simulation, the magnitude of voltage and current waveform at the saturation point is too small, for voltgae, Vpeaking is about 50mV, for current, Ipeaking is about 5mA

I assume some reasons: the bsim4 model is not complete/ the virtuoso version is wrong (My virtuoso version is IC6.1.7-64b.500.21)/the spectre version is wrong (spectre version is 15.1.0 32bit)/the MMSIM version is wrong/Transient Simulation setting is wrong (the algorithm is select gear2only, but when I select other, like: trap, the results have no difference), the maxstep I set 5ps, minstep I set 2ps to improve simulation speed, I think this step is much smaller than the fundamental period (1/2.4e9≈416ps)

I have no idea how to solve this problem, please help me! Thank you very very much!




mal

Creating Web/Thermal shape for paste mask

Any tips or SKIL files to help create a thermal shaped openings for paste masks for a donut shaped pin for mics or stand-offs like below?




mal

Optimizing PCB design for thermal performance

Optimizing PCB thermal performance is essential in today’s high-density designs, as it ensures stability, prolongs component life, and prevents potential thermal issues. One of the first steps to achieving this is with strategic component placement. Positioning high-power components—such as regulators, power transistors, or processors—away from heat-sensitive parts can prevent thermal interference, and placing them near the edges of the PCB often helps dissipate heat more effectively. It’s also beneficial to group components by their heat generation, creating dedicated thermal zones that can manage localized heating and reduce impact on other areas of the board.

 

Using thermal vias is another effective technique. By placing thermal vias under components like BGAs or power ICs, heat can be transferred from the surface to internal layers or ground planes. Increasing the size and number of these vias, or using thicker plating, enhances heat conductivity and helps manage heat more evenly across layers in multilayer boards. Increasing copper thickness on the PCB also has a major impact. Opting for thicker copper layers (e.g., 2 oz or even 3 oz copper) significantly boosts the heat dissipation capabilities of power planes and traces, especially in high-current areas. Large copper planes, such as dedicated ground or power planes, are equally effective in spreading heat efficiently. Adding thermal pads directly beneath heat-generating components improves this heat distribution.

 

Thermal relief pads help regulate heat flow for through-hole components by controlling heat transfer, which reduces thermal stress during soldering and prevents excessive heat spread to nearby sensitive areas. Performing thermal analysis with software tools like Celsius can be invaluable, as it allows you to simulate and model heat distribution, spot potential thermal issues, and refine your design before finalizing it.

 

Using heat sinks and thermal pads provides a direct way to draw heat from high-power components. Heat sinks can be attached with thermal adhesives, screws, or clamps, while thermal interface materials (TIMs), such as thermal pads or conductive adhesives, further reduce thermal resistance, enhancing heat-transfer efficiency. Optimizing the PCB layer stackup is also a key factor. Dedicated ground and power layers improve heat conduction across the PCB, enabling heat transfer between layers, particularly in high-density and multilayer PCBs.

 

In designs with high power requirements, active cooling options like fans, blowers, or heat pipes can be essential, helping to direct airflow across the PCB and further improving heat dissipation. Adding ventilation slots around hot zones and considering passive cooling paths enhance natural airflow, making the design more thermally efficient. By combining several of these techniques, you can create a PCB that handles heat effectively, resulting in a robust, long-lasting, and reliable product.

 

Let us know if you’ve had any challenges with thermal management in your designs—I’d be glad to discuss further!




mal

Conformal ECO Designer

Conformal ECO Designer enables you to implement RTL engineering change orders (ECOs) for pre- and post-mask layout and offers early ECO prototyping capabilities for driving critical project decisions.

Conformal ECO compares two designs and generates a functional patch that implements the changes between the two designs.

One major criterion for determining patch quality is whether the patch can meet timing closure. To determine this, you typically need to run the time-consuming process of incremental synthesis and place-and-route. Instead, Conformal can analyze path logic depth changes before and after ECO patch generation. This provides a faster way to evaluate timing impact in patch generation stages.

After the patch is created and applied, it is passed to Genus to optimize the patch.

During patch optimization, you can choose to do many things like:

  • Keeping constants in the patch
  • Allowing tie cell inversion
  • Specifying tie cell types
  • Preserve DFF cells and cell types in the patch
  • Preserve all cells and nets in the patch
  • Preserve clock buffer cell in the patch
  • Turn on/off sequential constant and sequential merge in patch optimization
  • Allowing phase mapping for DFFs
  • Map to spare cells
  • Force fix DRC before timing

What's Next?

Join the Conformal ECO course to:

  • Explore the many options and capabilities of Conformal ECO
  • Use Conformal Engineering Change Order (ECO) for flat and hierarchical designs
  • Generate a functional ECO patch, apply it to a design, optimize it, and map it to a specified technology
  • Run a hierarchical design through ECO and run a comparison to prove the ECO is equivalent
  • Run a postmask ECO using Conformal ECO GXL

Make sure you have experience with Conformal Equivalence Checker or completed the Conformal Equivalence Checking course before taking this course.

The online class is free for all Cadence customers with a Cadence Learning and Support Portal account. If you don’t have a Cadence Support account, go to Registration Help or Register Now and complete the requested information. For instructor-led training sessions "Live" or "Blended" please contact Cadence Training.

Please don't forget to obtain your Digital Badge after completing the training. Add your free digital badge to your email signature or any social media and networking platform to show your qualities and build trust, making you and your projects even more successful.




mal

View from the Middle East & Africa: small steps can have a big impact on tourism

Poor infrastructure and political instability deter tourism, but small and manageable steps to avoid chaos and promote hospitality can work wonders.




mal

Italian company plans tribute to the Maserati Shamal

Maserati Shamal restomod project in the works Restomod will use Biturbo Coupe body and Ghibli S twin-turbocharged V-6 Production to be limited to 33 units The Maserati Shamal launched in 1990 didn't see much success, despite featuring a body penned by the legendary Marcello Gandini, and a twin-turbocharged V-8 under the hood. It was devised when...




mal

Bird flu decimates seals, leaving grim scenes of dead animals

Scientists conducted a genetic analysis and found that avian flu H5N1 evolved and spread efficiently between marine mammals during a recent viral outbreak, revealing a risk to other species.