IC知识积累
俺是菜鸡
我要学好IC设计
展开
-
IC知识积累——07_if else在组合逻辑块中的应用
代码来源于PULpino译码器generate if (APU == 1) begin : apu_op_preparation if (APU_NARGS_CPU >= 1) assign apu_operands[0] = alu_operand_a; if (APU_NARGS_CPU >= 2) assign apu_operands[1] = alu_operand_b; if (APU_NARGS_CPU >=原创 2020-11-20 12:11:19 · 654 阅读 · 0 评论 -
IC知识积累——06_RISCV寄存器组的代码
RISCV寄存器组代码// Copyright 2017 ETH Zurich and University of Bologna.// Copyright and related rights are licensed under the Solderpad Hardware// License, Version 0.51 (the \u201cLicense\u201d); you may not use this file except in// compliance with the Lic原创 2020-11-20 10:46:01 · 433 阅读 · 0 评论 -
IC知识积累——05_for循环的使用
for的使用示例: genvar i,l; generate //----------------------------------------------------------------------------- //-- WRITE : Write operation //----------------------------------------------------------------------------- always_ff @(posedg原创 2020-11-16 10:39:30 · 151 阅读 · 0 评论 -
IC知识积累——04_localparam的使用
Localparam的使用除了常规用法外,localparam还可以添加一些逻辑运算代码,示例如下: // number of integer registers localparam NUM_WORDS = 2**(ADDR_WIDTH-1); // number of floating point registers localparam NUM_FP_WORDS = 2**(ADDR_WIDTH-1); localparam NUM_TOT_WORDS原创 2020-11-16 10:29:29 · 1437 阅读 · 0 评论 -
IC知识积累——03_ASSIGN语句的用法
ASSIGN也可以写在判断语句里示例如下: if (FPU == 1) begin assign rdata_a_o = raddr_a_i[5] ? mem_fp[raddr_a_i[4:0]] : mem[raddr_a_i[4:0]]; assign rdata_b_o = raddr_b_i[5] ? mem_fp[raddr_b_i[4:0]] : mem[raddr_b_i[4:0]]; assign rdata_c_o = raddr_c_i[5]原创 2020-11-16 10:24:43 · 1920 阅读 · 0 评论 -
IC知识积累——02_SystemVerilog unique 和 priority
unique使用方法:unique case(<case_expression>)...//条件选项endcase其作用等效于同时使用verilog中的full_case及parallel_case。**parallel_case:**在Verilog中使用的方式是case (CASE_SIGNL) // synopsys parallel_case上述语句是告诉综合器,不需要产生优先级逻辑,从而缩小了硬件的规模。缺点是,设计者要保证所有的case不会同时发生,否则cas原创 2020-11-13 11:12:50 · 1483 阅读 · 0 评论 -
IC知识积累——01_SystemVerilog结构体的创建与使用
system verilog中增加了类似C语言中的结构体类型,可以表示相关的信号的组合。结构体声明:1、变量声明:var struct { // 通过var进行结构体变量声明 logic [31:0] a, b; logic [ 7:0] opcode;} Instruction_Word_var;2、wire类型结构体声明//结构体线网声明,定义为线网类型时,结构体的所有成员必须都是四态类型的 wire struct { logic [31:0] a, b; logic原创 2020-11-12 16:29:20 · 1419 阅读 · 0 评论