小编igo*_*gon的帖子

修改verilog模式缩进

我试图使用verilog模式缩进所有使用2个空格除了decls和always.这是我添加到我的.emacs中的内容:

;; `define are not indented                                                                                                                                                                                                                                                    
(setq       verilog-indent-level-directive 0)
;;  always, initial etc not indented                                                                                                                                                                                                                                           
(setq       verilog-indent-level-module    0)
;; logic declarations are not indented                                                                                                                                                                                                                                         
(setq       verilog-indent-level-declaration 0)
;;2 space indent                                                                                                                                                                                                                                                               
(setq       verilog-indent-level             2)
;; no indent on list and no indent when on multiple lines                                                                                                                                                                                                                      
(setq       verilog-indent-lists           nil)
(setq       verilog-cexp-indent              0)
Run Code Online (Sandbox Code Playgroud)

这是测试模块的结果

`ifndef MY_MODULE_SV
`define MY_MODULE_SV

module my_module #(                                                                                                                                                                                                                                                            
parameter MyPar1 = 16,                                                                                                                                                                                                                                                         
parameter MyPar2 = 32                                                                                                                                                                                                                                                          
                   ) (
                   input logic        clk,
                   input logic        reset,
//comment indented weirdly                                                                                                                                                                                                                                                               
                   output logic …
Run Code Online (Sandbox Code Playgroud)

emacs verilog indentation system-verilog emacs24

8
推荐指数
1
解决办法
4178
查看次数

使用参数定义键绑定

我想将Cf Cb映射为文件中固定数量的行向前和向后移动.

我这样做了:

(global-set-key (kbd "C-f") 'next-line)
(global-set-key (kbd "C-b") 'previous-line)
Run Code Online (Sandbox Code Playgroud)

但我不知道如何在next-line命令之前指定一个参数.我想我应该使用,digit-argument但我无法以正确的方式编写命令.

emacs elisp

6
推荐指数
2
解决办法
2266
查看次数

了解在x86微基准测试中退役的装载和存储的数量

我最近一直在使用perf,我得到了一些我无法理解的结果.具体而言,数量或退役货物和商店与我的期望不符.

我编写了一个非常简单的微基准测试代码,看看在一个非常简单的情况下结果是否有意义:

#include <stdio.h>

#define STREAM_ARRAY_SIZE   10000000

static double   a[STREAM_ARRAY_SIZE],
    b[STREAM_ARRAY_SIZE],
    c[STREAM_ARRAY_SIZE];


int main(){

    ssize_t j;

    for (j=0; j<STREAM_ARRAY_SIZE; j++) {
        a[j] = 1.0;
        b[j] = 2.0;
        c[j] = 0.0;
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我用gcc 4.6.3编译:

gcc -Wall -O benchmark.c -o benchmark
Run Code Online (Sandbox Code Playgroud)

并且它确实编译为一个非常简单的程序集(用objdump -d获得)作为main:

00000000004004b4 <main>:
  4004b4:   b8 00 00 00 00          mov    $0x0,%eax
  4004b9:   48 be 00 00 00 00 00    movabs $0x3ff0000000000000,%rsi
  4004c0:   00 f0 3f
  4004c3:   48 b9 00 00 00 00 00    movabs $0x4000000000000000,%rcx
  4004ca:   00 …
Run Code Online (Sandbox Code Playgroud)

c x86 assembly gcc perf

6
推荐指数
1
解决办法
392
查看次数

使用ArrayWritable的序列化似乎以一种有趣的方式工作

我正在使用ArrayWritable,在某些时候我需要检查Hadoop如何序列化ArrayWritable,这是我通过设置得到的job.setNumReduceTasks(0):

0    IntArrayWritable@10f11b8
3    IntArrayWritable@544ec1
6    IntArrayWritable@fe748f
8    IntArrayWritable@1968e23
11    IntArrayWritable@14da8f4
14    IntArrayWritable@18f6235
Run Code Online (Sandbox Code Playgroud)

这是我使用的测试映射器:

public static class MyMapper extends Mapper<LongWritable, Text, LongWritable, IntArrayWritable> {

    public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
        int red = Integer.parseInt(value.toString());
        IntWritable[] a = new IntWritable[100];

        for (int i =0;i<a.length;i++){
            a[i] = new IntWritable(red+i);
        }

        IntArrayWritable aw = new IntArrayWritable();
        aw.set(a);
        context.write(key, aw);
    }
}
Run Code Online (Sandbox Code Playgroud)

IntArrayWritable取自javadoc:ArrayWritable中给出的示例.

import org.apache.hadoop.io.ArrayWritable;
import org.apache.hadoop.io.IntWritable;

public class …
Run Code Online (Sandbox Code Playgroud)

java hadoop mapreduce

5
推荐指数
2
解决办法
6660
查看次数

VHDL中的组件实例化与实体实例化

我有Verilog/SystemVerilog的经验,但我是VHDL的新手,我想弄清楚何时应该使用组件实例化或实体实例化.通过组件实例化,我指的是在实例化实体之前声明实体组件的传统方式.另一方面,VHDL-93引入的实体实例化允许您直接声明实体而无需指定组件. 相关文章

在我看来,实体实例化始终是可取的,除非你还没有实现架构,你只想定义一个黑盒子.

这是我发现的一个相关问题,但它完全解决了我的疑虑.由于可以为任何实体定义通用映射和体系结构:

entity work.MyEntity_E(ARCH) generic map(
...)
port map(
...
);
Run Code Online (Sandbox Code Playgroud)

进行组件实例化的额外灵活性是什么?什么是最简单的示例,显示无法通过实体实例化完成但可以使用组件实例化完成的事情

vhdl

5
推荐指数
1
解决办法
7710
查看次数

限制Condor作业的安排:每台物理机器一个

我需要在每台机器上有多个插槽的群集上启动Condor作业.

我还要求在同一台物理计算机上不能同时放置两个作业.这是由于我无法控制的某些二进制文件执行某些网络(很差).

这是一个有点相关的问题:限制condor安排的并发进程数, 但它并没有完全解决我的问题.我理解我可以通过以下方式限制作业可以运行的位置:Requirements = (name == "slot1@machine1") || (name == "slot1@machine2") ... 但是这太限制了,因为只要两个作业不在同一台机器中,我就不关心作业运行的哪个插槽.

有没有办法实现这个目标?

如果这不可能,我怎么能告诉神鹰挑选有最多可用插槽的机器?

networking cluster-computing job-scheduling condor

5
推荐指数
1
解决办法
221
查看次数

传递模块名称作为参数

我想为我正在编写的模块创建通用包装。包装程序应具有将这些模块连接到不同类型的NoC的能力,而不必更改内部模块的行为。

我认为实现此目标的一种方法如下。考虑一个非常简单的模块来包装:

module add #(                                                                                                                       
             parameter COLUMN_WIDTH     = 32                                                                                        
             )

   (
    //data in                                                                                                                       
    input logic [COLUMN_WIDTH-1:0]  col_1,
    input logic [COLUMN_WIDTH-1:0]  col_2,
    //data out                                                                                                                      
    output logic [COLUMN_WIDTH-1:0] col_o

    );

   assign col_o = col_1 + col_2;

endmodule
Run Code Online (Sandbox Code Playgroud)

包装器应为以下内容:

module wrapper #(                                                                                                                   
                 parameter COLUMN_WIDTH     = 32,                                                                                   
                 parameter WRAPPED_MODULE   = add                                                                                   
             )
   (
    //data in                                                                                                                       
    input logic [COLUMN_WIDTH-1:0]  col_1,
    input logic [COLUMN_WIDTH-1:0]  col_2,
    //data out                                                                                                                      
    output logic [COLUMN_WIDTH-1:0] col_o,
    /* std signals */
    input logic                     clk,
    input logic                     reset_i // reset everything                                                                     
    );

   logic …
Run Code Online (Sandbox Code Playgroud)

hardware verilog register-transfer-level system-verilog

4
推荐指数
1
解决办法
1399
查看次数